| | |
| | | } |
| | | }; |
| | | provide('layerParams', layerParams); |
| | | // onMounted(() => { |
| | | // initMap(); |
| | | // cesiumContextMenu(); |
| | | // getdataFolderApi(); |
| | | // EventBus.on('deleteMapEntityById', deleteMapEntityById); |
| | | // EventBus.on('deleteMapEntitiesByFolderId', deleteMapEntitiesByFolderId); |
| | | // }); |
| | | onMounted(() => { |
| | | initMap(); |
| | | cesiumContextMenu(); |
| | | getdataFolderApi(); |
| | | |
| | | // 新增:监听定位事件 |
| | | EventBus.on('focusOnNode', (nodeData) => { |
| | | focusOnNode(nodeData); |
| | | }); |
| | | |
| | | EventBus.on('deleteMapEntityById', deleteMapEntityById); |
| | | EventBus.on('deleteMapEntitiesByFolderId', deleteMapEntitiesByFolderId); |
| | | }); |
| | | |
| | | // 新增:定位到指定节点 |
| | | const focusOnNode = (nodeData) => { |
| | | if (!viewer || !nodeData?.geo_data) return; |
| | | |
| | | // 解析节点坐标 |
| | | const positions = parseGeoDataToPositions(nodeData.geo_data, nodeData.altitude); |
| | | if (positions.length < 3) return; |
| | | |
| | | // 飞向该节点(保持其他已选中的围栏显示) |
| | | flyVisual({ |
| | | positionsData: positions.map(pos => [pos.lng, pos.lat, pos.height || 0]), |
| | | viewer, |
| | | multiple: 13, // 缩放倍数 |
| | | pitch: -90 |
| | | }); |
| | | }; |
| | | }); |
| | | onBeforeUnmount(() => { |
| | | destroyMap(); |
| | | cesiumContextMenu(false); |