import { useMyStore } from '../store'
|
import * as Cesium from 'cesium'
|
// 绘制项目所有中心点
|
export function pointCenter (viewer: any, longitudeList: any) {
|
// 删除地图中所有标识点
|
viewer.entities.removeAll()
|
if (longitudeList.length === 0) return
|
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) {
|
const entity = viewer.entities.add({
|
position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
|
id,
|
// label: {
|
// text: label,
|
// heightReference: 80,
|
// pixelOffset: new Cesium.Cartesian2(0, -25),
|
// font: '40px'
|
// },
|
point: {
|
pixelSize: 24,
|
color: Cesium.Color.GREEN,
|
outlineColor: Cesium.Color.WHITE,
|
outlineWidth: 2,
|
}
|
})
|
// const label = virw
|
}
|
|
// 点击当前点的事件
|
export function clickPoint (viewer: any, longitudeList: any) {
|
const handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
|
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)
|
if (pickedObject.id.label) {
|
pickedObject.id.label = null
|
} else {
|
pickedObject.id.label = {
|
text: list[0].label,
|
pixelOffset: new Cesium.Cartesian2(0, -25),
|
font: '40px'
|
}
|
}
|
|
// const point = pickedObject.id.point
|
//
|
}
|
}
|
, Cesium.ScreenSpaceEventType.LEFT_CLICK)
|
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
|
}
|