From 2c2bc8614c8ea0ce386369eb4924da1e6aa052d1 Mon Sep 17 00:00:00 2001
From: husq <931347610@qq.com>
Date: Wed, 27 Sep 2023 09:35:57 +0800
Subject: [PATCH] 添加环境配置区分
---
src/hooks/use-center-point.ts | 50 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 44 insertions(+), 6 deletions(-)
diff --git a/src/hooks/use-center-point.ts b/src/hooks/use-center-point.ts
index a068a2a..2ee5f2f 100644
--- a/src/hooks/use-center-point.ts
+++ b/src/hooks/use-center-point.ts
@@ -5,12 +5,12 @@
// 删除地图中所有标识点
viewer.entities.removeAll()
if (longitudeList.length === 0) return
- longitudeList.forEach((item: { id:string, longitude: number; latitude: number, label: string }) => {
+ longitudeList.forEach((item: { id: string, longitude: number; latitude: number, label: string }) => {
addPoint(viewer, item.id, item.longitude, item.latitude, item.label)
})
}
// 绘制点
-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,
@@ -36,7 +36,7 @@
handler.setInputAction(function (click: any) {
const pickedObject = viewer.scene.pick(click.position)
if (Cesium.defined(pickedObject)) {
- const list = longitudeList.filter((v: { id:string, longitude: number; latitude: number; }) => v.id === pickedObject.id.id)
+ const list = longitudeList.filter((v: { id: string, longitude: number; latitude: number; }) => v.id === pickedObject.id.id)
if (pickedObject.id.label) {
pickedObject.id.label = null
} else {
@@ -47,10 +47,48 @@
}
}
- // const point = pickedObject.id.point
- //
+ // const point = pickedObject.id.point
+ //
}
}
, Cesium.ScreenSpaceEventType.LEFT_CLICK)
- handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
+ // handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
+}
+
+// 飞到项目中心点
+export function flyTo (viewer: any, longitude: number, latitude: number, height: number = 5000) {
+ const targetPosition = { longitude, latitude, height }
+ viewer.camera.flyTo({
+ 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()
+ }
+ })
}
--
Gitblit v1.9.3