| | |
| | | const splashedList = type === 'device' |
| | | ? await getDeviceList(areaCode) |
| | | : eventList.map(i=>({eventId:i.id,latitude:Number(i.latitude),longitude:Number(i.longitude),type:'event'})) |
| | | console.log(list, 'list'); |
| | | console.log(splashedList, 'splashedList'); |
| | | const hierarchy = convertToHierarchy(areaCode.slice(0, 6)); |
| | | const jsonPath = hierarchy.join('/'); |
| | | const jsonPathPre = hierarchy.slice(0, hierarchy.length - 1).join('/'); |
| | |
| | | |
| | | //散点机巢 |
| | | function splashed(row) { |
| | | row.splashedList.forEach(item => { |
| | | row.splashedList.forEach((item,index) => { |
| | | viewer.entities.add({ |
| | | id: `aggregation-splashed-${index}`, |
| | | position: Cesium.Cartesian3.fromDegrees(item.longitude, item.latitude), |
| | | label: { |
| | | // 随机整数 |
| | |
| | | } |
| | | }); |
| | | // 遍历特征并添加实体 |
| | | featuresList.forEach(feature => { |
| | | featuresList.forEach((feature,index) => { |
| | | if (!feature.position) return; |
| | | const position = Cesium.Cartesian3.fromDegrees(feature.position[0], feature.position[1]); |
| | | viewer.entities.add({ |
| | | position: position, |
| | | id: `aggregation-name-${index}`, |
| | | label: { |
| | | text: feature.name, |
| | | font: '14pt Source Han Sans CN', |
| | |
| | | }, |
| | | }); |
| | | viewer.entities.add({ |
| | | id: feature.id, |
| | | id: `aggregation-count-${index}`, |
| | | position: position, |
| | | label: { |
| | | text: feature.data.total_device_count.toString(), |
| | | text: (feature.data.total_device_count || 0).toString(), |
| | | font: '12pt Source Han Sans CN', |
| | | fillColor: Cesium.Color.BLACK, |
| | | outlineColor: Cesium.Color.BLACK, |
| | | style: Cesium.LabelStyle.FILL_AND_OUTLINE, |
| | | eyeOffset: new Cesium.Cartesian3(0, 0, -10), // 让label "浮" 在广告牌前面 |
| | | }, |
| | |
| | | // 移除 点 和 gjson 实体 |
| | | const removeEntities = () => { |
| | | viewer.dataSources?.removeAll(true); |
| | | viewer.entities?.removeAll(); |
| | | // viewer.entities?.removeAll(); |
| | | const entitiesIDs = viewer.entities.values.map(i=>i.id) |
| | | entitiesIDs.forEach(item => { |
| | | item.includes('aggregation-') && viewer.entities.removeById(item) |
| | | }) |
| | | }; |
| | | // 移除弹框标签 |
| | | const removeLabel = () => { |
| | |
| | | |
| | | // 移除所有监听事件,变量置空 |
| | | const removeAll = () => { |
| | | if (!viewer) return |
| | | removeEntities(); |
| | | removeLabel(); |
| | | // viewer.camera.moveEnd.removeEventListener(determineScaling); |