husq
2023-09-13 4473382ddd15af3767edf0b4c8becd8ffbd186f9
src/hooks/use-center-point.ts
@@ -10,7 +10,7 @@
  })
}
// 绘制点
function addPoint (viewer: any, id: string, longitude: number, latitude: number, label: string) {
export function addPoint (viewer: any, id: string, longitude: number, latitude: number) {
  const entity = viewer.entities.add({
    position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
    id,
@@ -35,7 +35,6 @@
  const handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
  handler.setInputAction(function (click: any) {
    const pickedObject = viewer.scene.pick(click.position)
    console.log(pickedObject, 'pickObject')
    if (Cesium.defined(pickedObject)) {
      const list = longitudeList.filter((v: { id: string, longitude: number; latitude: number; }) => v.id === pickedObject.id.id)
      if (pickedObject.id.label) {
@@ -57,10 +56,39 @@
}
// 飞到项目中心点
export function flyTo (viewer: any, longitude: number, latitude: number) {
  // console.log()
  const targetPosition = { longitude, latitude }
export function flyTo (viewer: any, longitude: number, latitude: number, height: number = 5000) {
  const targetPosition = { longitude, latitude, height }
  viewer.camera.flyTo({
    destination: targetPosition,
    destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),
    duration: 2
  })
}
// 通过经纬度判断当前地图上是否有实体
export function isEntityExist (viewer: any, longitude: number, latitude: number) {
  const position = Cesium.Cartesian3.fromDegrees(longitude, latitude)
  const pickedObject = viewer.scene.pick(position)
  console.log(pickedObject, 'pickedObject')
  if (Cesium.defined(pickedObject)) {
    return true
  } else {
    return false
  }
}
// 清除地图上的点
export function clearAllPoint (viewer:any) {
  // 获取Cesium场景对象
  const scene = viewer.scene
  // 获取场景中的所有图元
  const primitives = scene.primitives
  // 遍历图元数组
  primitives.forEach(function (primitive: any) {
  // 判断图元是否为点集合
    if (primitive instanceof Cesium.PointPrimitiveCollection) {
    // 移除所有点
      primitive.removeAll()
    }
  })
}