xieb
2023-11-14 9ca17378677d6969e5401188a7ff321a7e3335c6
Merge remote-tracking branch 'origin/demo' into demo

# Conflicts:
# src/hooks/use-cesium-tsa.ts
3 files modified
36 ■■■■ changed files
src/api/wayline.ts 4 ●●●● patch | view | raw | blame | history
src/components/g-map/DroneControlPanel.vue 3 ●●●● patch | view | raw | blame | history
src/hooks/use-cesium-tsa.ts 29 ●●●● patch | view | raw | blame | history
src/api/wayline.ts
@@ -221,8 +221,8 @@
  distance?:number
}
export const flyByArea = async function (sn:string,dockPoint:Point,areaList:any[],radius:number): Promise<IWorkspaceResponse<any>> {
  const url = `${HTTP_PREFIX}/workspaces/${sn}/jobs/flyByArea`
export const flyByArea = async function (sn:string,dockPoint:Point,areaList:any[],radius:number,deviceSn:string): Promise<IWorkspaceResponse<any>> {
  const url = `${HTTP_PREFIX}/workspaces/${sn}/jobs/${deviceSn}/flyByArea`
  const result = await request.post(url,{dockPoint:dockPoint,areaList:areaList,radius:radius})
  return result.data
}
src/components/g-map/DroneControlPanel.vue
@@ -496,6 +496,7 @@
    lon: props.deviceInfo.dock.basic_osd.longitude,
    lat: props.deviceInfo.dock.basic_osd.latitude
  })
  const deviceSn = props.deviceInfo.dock.basic_osd.sub_device?.device_sn
  const jsonData = await parseJsonFile('../src/assets/jsonData/图斑_FeaturesToJSON(1).json')
  const sn = props.sn
  const features = jsonData.features
@@ -514,7 +515,7 @@
    list.push(areaList)
  })
  flyByArea(sn, dockPoint, list, radius).then(res => {
  flyByArea(sn, dockPoint, list, radius, deviceSn).then(res => {
    console.log(res, '----------------')
  })
}
src/hooks/use-cesium-tsa.ts
@@ -46,18 +46,18 @@
// 定义全局的viewer变量防止重复生成
// eslint-disable-next-line no-var
var viewer: Cesium.Viewer | null = null
export function cesiumOperation () {
export function cesiumOperation() {
  let handler: Cesium.ScreenSpaceEventHandler
  const TDT_Token = 'c6eea7dad4fa1e2d1e32ec0e7c9735db'
  // 天地图Key
  // 天地图地图
  const TDT_IMG_C = 'https://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
      '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
      '&style=default&format=tiles&tk=' + TDT_Token
    '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
    '&style=default&format=tiles&tk=' + TDT_Token
  // 天地图注记
  const TDT_ZJ = 'https://{s}.tianditu.gov.cn/cia_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
      '&LAYER=cia&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
      '&style=default&format=tiles&tk=' + TDT_Token
    '&LAYER=cia&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
    '&style=default&format=tiles&tk=' + TDT_Token
  // 标准地图注记
  const TID_STAND = 'https://{s}.tianditu.gov.cn/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0' +
    '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
@@ -151,7 +151,7 @@
  }
  // 清除所有标记点
  function removeAllPoint () {
  function removeAllPoint() {
    if (viewer) {
      viewer?.entities?.removeAll()
    }
@@ -194,7 +194,7 @@
  }
  // 通过点ID删除
  function removeById (id:string) {
  function removeById(id: string) {
    viewer?.entities.removeById(id)
    const pointEntity = viewer?.entities.getById(id)
    if (pointEntity && pointEntity !== undefined) {
@@ -202,12 +202,12 @@
    }
  }
  // 通过点ID获取实体
  function getEntityById (id:string) {
  function getEntityById(id: string) {
    const pointEntity = viewer?.entities.getById(id)
    return pointEntity
  }
  // 更新图片实体位置
  function updateEntityPosition (longitude:number, latitude:number, id:string, params?:any) {
  function updateEntityPosition(longitude: number, latitude: number, id: string, params?: any) {
    const entity = getEntityById(id) as Cesium.Entity
    const position = Cesium.Cartesian3.fromDegrees(longitude, latitude)
    const heading = Cesium.Math.toRadians(-params.heading)
@@ -217,7 +217,7 @@
    }
  }
  // 飞行 flyto
  const flyTo = (pointOption: pointOption, time: number = 4, height:number = 3000) => {
  const flyTo = (pointOption: pointOption, time: number = 4, height: number = 3000) => {
    if (!pointOption.longitude && !pointOption.latitude) return
    const destination = Cesium.Cartesian3.fromDegrees(pointOption.longitude, pointOption.latitude, height)
    const duration = time
@@ -252,20 +252,20 @@
  }
  // 地图放大
  const zoonIn = (range:number) => {
  const zoonIn = (range: number) => {
    // 获取当前视角的高度
    const cameraHeight = viewer?.camera.positionCartographic.height
    const amout = Cesium.Math.sign(range) * cameraHeight / Math.log(cameraHeight)
    viewer?.camera.zoomIn(amout)
  }
  // 地图缩小
  const zoonOut = (range:number) => {
  const zoonOut = (range: number) => {
    const cameraHeight = viewer?.camera.positionCartographic.height
    const amout = Cesium.Math.sign(range) * cameraHeight / Math.log(cameraHeight)
    viewer?.camera.zoomOut(amout)
  }
  // 生成或删除路网图层
  const roadPattern = (flag:boolean) => {
  const roadPattern = (flag: boolean) => {
    if (store.state.common.mapSetting.mode === 0) return
    const imageryLayers = viewer?.scene.imageryLayers
    const tdtZwImg_c = imageryLayers?._layers.find(v => v.imageryProvider._layer === 'tdtZwImg_c')
@@ -334,9 +334,8 @@
    getEntityById,
    updateEntityPosition,
    addPolyline,
    addEllipse,
    loadGeoJson,
    removeAllDataSource
    addPolyline,
    addEllipse
  }
}