| | |
| | | <div class="photo-setting common"> |
| | | <div class="title">拍照设置</div> |
| | | <ul class="select-box"> |
| | | <li class="select-item" v-for="item in photoSetting" :key="item.value" :style="{ |
| | | '--settingColor': xmlTemplate.Folder.payloadParam?.imageFormat['#text'] |
| | | .split(',') |
| | | .includes(item.value) |
| | | ? '#409eff' |
| | | : '#3c3c3c', |
| | | }" @click="selectPhotoSetting(item.value)"> |
| | | <li |
| | | class="select-item" |
| | | v-for="item in photoSetting" |
| | | :key="item.value" |
| | | :style="{ |
| | | '--settingColor': xmlTemplate.Folder.payloadParam?.imageFormat['#text'] |
| | | .split(',') |
| | | .includes(item.value) |
| | | ? '#409eff' |
| | | : '#3c3c3c', |
| | | }" |
| | | @click="selectPhotoSetting(item.value)"> |
| | | {{ item.title }}照片 |
| | | </li> |
| | | </ul> |
| | |
| | | <li @click="numberControls(true, 100, 'takeOffSecurityHeight')">+100</li> |
| | | <li @click="numberControls(true, 10, 'takeOffSecurityHeight')">+10</li> |
| | | <li class="parameter-input"> |
| | | <a-input-number :min="2" :max="1500" |
| | | v-model:value="xmlTemplate.missionConfig.takeOffSecurityHeight['#text']"></a-input-number>m |
| | | <a-input-number |
| | | :min="2" |
| | | :max="1500" |
| | | v-model:value="xmlTemplate.missionConfig.takeOffSecurityHeight['#text']"></a-input-number |
| | | >m |
| | | </li> |
| | | <li @click="numberControls(false, 100, 'takeOffSecurityHeight')">-100</li> |
| | | <li @click="numberControls(false, 10, 'takeOffSecurityHeight')">-10</li> |
| | |
| | | </div> |
| | | <!-- 高度模式 --> |
| | | <div class="height-mode common"> |
| | | <a-tooltip placement="right" |
| | | <a-tooltip |
| | | placement="right" |
| | | :title="tipDescriptionEnums[xmlTemplate.Folder.waylineCoordinateSysParam.heightMode['#text']]"> |
| | | <div class="title">航线高度模式</div> |
| | | <div class="mode-box"> |
| | | <a-radio-group v-model:value="xmlTemplate.Folder.waylineCoordinateSysParam.heightMode['#text']" |
| | | <a-radio-group |
| | | v-model:value="xmlTemplate.Folder.waylineCoordinateSysParam.heightMode['#text']" |
| | | button-style="solid"> |
| | | <a-radio-button v-for="item in heightModeSetting" :key="item.value" :value="item.value">{{ |
| | | item.title |
| | | }}</a-radio-button> |
| | | item.title |
| | | }}</a-radio-button> |
| | | </a-radio-group> |
| | | </div> |
| | | <div class="parameter-tool"> |
| | |
| | | <li @click="numberControls(true, 100, 'globalHeight')">+100</li> |
| | | <li @click="numberControls(true, 10, 'globalHeight')">+10</li> |
| | | <li class="parameter-input"> |
| | | <a-input-number :min="0" :max="10000" |
| | | v-model:value="xmlTemplate.Folder.globalHeight['#text']"></a-input-number>m |
| | | <a-input-number |
| | | :min="0" |
| | | :max="10000" |
| | | v-model:value="xmlTemplate.Folder.globalHeight['#text']"></a-input-number |
| | | >m |
| | | </li> |
| | | <li @click="numberControls(false, 100, 'globalHeight')">-100</li> |
| | | <li @click="numberControls(false, 10, 'globalHeight')">-10</li> |
| | |
| | | <div class="speed-box"> |
| | | <div class="subtract" @click="numberControls(false, 1, 'autoFlightSpeed')">-</div> |
| | | <div class="text"> |
| | | <a-input-number v-model:value="xmlTemplate.Folder.autoFlightSpeed['#text']" :min="1" :max="15" |
| | | <a-input-number |
| | | v-model:value="xmlTemplate.Folder.autoFlightSpeed['#text']" |
| | | :min="1" |
| | | :max="15" |
| | | class="value"> |
| | | </a-input-number> |
| | | m / s |
| | |
| | | import { reactive, defineProps } from 'vue' |
| | | import { tipDescriptionEnums } from './enums' |
| | | import useKmzTsa, { kmlStr, template as xmlTemplate } from '/@/utils/cesium/use-kmz-tsa' |
| | | import useMapDraw from '/@/utils/cesium/use-map-draw' |
| | | import useMapDraw, { kmlEntities as globalEntities } from '/@/utils/cesium/use-map-draw' |
| | | import { getKmlParams } from '/@/utils/cesium/kmz' |
| | | import { cesiumOperation } from '/@/hooks/use-cesium-tsa' |
| | | import { message } from 'ant-design-vue' |
| | |
| | | |
| | | const mapDraw = useMapDraw('', '', '', global) |
| | | const { removeAllDataSource, removeAllPoint } = cesiumOperation() |
| | | const kmzUtils = useKmzTsa() |
| | | |
| | | interface setting { |
| | | imageFormat: string[] |
| | |
| | | |
| | | // 计算 |
| | | const numberControls = (isAdd: boolean, computeVal: number, key: string) => { |
| | | let obj = { '#text': 0 } |
| | | let obj = { '#text': '0' } |
| | | if (key === 'takeOffSecurityHeight') { |
| | | obj = xmlTemplate.value.missionConfig.takeOffSecurityHeight |
| | | } |
| | |
| | | } else { |
| | | value -= computeVal |
| | | } |
| | | obj['#text'] = value |
| | | obj['#text'] = value.toString() |
| | | if (key === 'globalHeight') { |
| | | const placemarkArr = xmlTemplate.value.Folder.Placemark |
| | | placemarkArr.forEach((placemark: { useGlobalHeight: { [x: string]: any }; height: { [x: string]: string } }) => { |
| | | if (Reflect.has(placemark, 'useGlobalHeight')) { |
| | | placemark.height['#text'] = value.toString() |
| | | } |
| | | }) |
| | | const xmlString = kmzUtils.generateXML(xmlTemplate.value) |
| | | mapDraw.drawWayline(globalEntities.value, xmlString) |
| | | } |
| | | } |
| | | |
| | | // 拍照选择 |
| | |
| | | |
| | | :deep() { |
| | | .ant-popover-content { |
| | | |
| | | .ant-popover-arrow, |
| | | .ant-popover-inner { |
| | | background-color: #101010; |