guoshilong
2023-11-13 54849757852f6ab40eb17afbd03d1d839b60a38d
src/hooks/use-cesium-tsa.ts
@@ -20,11 +20,17 @@
  outlineWidth: number,
  [key: string]: any
}
interface polyline {
  width?: number
  material?: Cesium.Color
  [key: string]: any
}
interface pointOption {
  longitude: number
  latitude: number
  point?: pointSetting
  billboard?: billboardSetting
  polyline?: polyline
  label?: labelSetting
  id?: string
  heading?: number
@@ -153,6 +159,14 @@
    })
  }
  // 添加线段
  const addPolyline = (pointOption: pointOption) => {
    viewer?.entities.add({
      polyline: pointOption.polyline,
      id: pointOption.id,
    })
  }
  // 通过点ID删除
  function removeById (id:string) {
    viewer?.entities.removeById(id)
@@ -177,9 +191,9 @@
    }
  }
  // 飞行 flyto
  const flyTo = (pointOption: pointOption, time: number = 4) => {
  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, 3000)
    const destination = Cesium.Cartesian3.fromDegrees(pointOption.longitude, pointOption.latitude, height)
    const duration = time
    viewer?.camera.flyTo({
      destination,
@@ -276,6 +290,7 @@
    roadPattern,
    patternMap,
    getEntityById,
    updateEntityPosition
    updateEntityPosition,
    addPolyline
  }
}