吉安感知网项目-前端
罗广辉
2026-01-12 2dbd3103d91934a6ec6ef48baa288b56a4843472
applications/drone-command/src/utils/cesium/mapUtil.js
@@ -346,31 +346,24 @@
   return new Promise((resolve, reject) => {
      if (!data || !data.length) {
         resolve([])
         return
      }
      // 假设 viewer 已经初始化并且 terrainProvider 是有效的
      const terrainProvider = viewer?.terrainProvider
      // 创建 Cartographic 对象
      const cartographics = data.map(item => {
         const { lng, lat } = item
         return Cesium.Cartographic.fromDegrees(Number(lng), Number(lat))
      })
      // 获取地形数据的Promise
      const promise = Cesium.sampleTerrainMostDetailed(terrainProvider, cartographics)
      // 使用 Cesium.when 处理 Promise
      promise
         .then(function (updatedPositions) {
            // updatedPositions 是一个数组,包含更新后的 Cartographic 对象
            //  是一个数组,包含更新后的 Cartographic 对象
            const newPosition = updatedPositions.map((item, index) => {
               const longitude = Cesium.Math.toDegrees(item.longitude)
               const latitude = Cesium.Math.toDegrees(item.latitude)
               let pointData = {
                  ...data[index],
                  longitude,
@@ -378,18 +371,14 @@
                  ASL: Number(item.height),
                  customHeight: Number(item.height),
               }
               if (droneHeight) pointData.TH = Number(item.height) + Number(droneHeight)
               return pointData
            })
            resolve(newPosition)
            // 在这里,你可以使用 height 值进行后续操作
         })
         .catch(function (error) {
            // console.error('获取高程时发生错误:', error);
            reject(error)
            console.log('获取高程时发生错误:', error)
            resolve(data.map(item => ({ ...item, ASL: 0, customHeight: 0, longitude: item.lng, latitude: item.lat })))
         })
   })
}