| | |
| | | * |
| | | * @param { 单点航线 相关功能} url |
| | | */ |
| | | export const initPointWayline = (url) => { |
| | | export const initPointWayline = () => { |
| | | |
| | | let viewer = window.$viewer; |
| | | let viewer = null; |
| | | |
| | | |
| | | // 解析kmz文件 |
| | | const parsingFiles = async (url) => { |
| | | const { fileInfoObj } = analyzeKmzFile(`${url}?_t=${new Date().getTime()}`); |
| | | const xmlStr = fileInfoObj['wpmz/template.kml'] |
| | | const xmlJson = XMLToJSON(xmlStr)?.['Document'] |
| | | const parsingFiles = async (url,viewer) => { |
| | | viewer = viewer; |
| | | console.log('initPointWayline', viewer); |
| | | const res = await analyzeKmzFile(`${url}?_t=${new Date().getTime()}`) |
| | | const waylinesXML = await res.fileInfoObj['wpmz/waylines.wpml'] |
| | | const xmlJson = XMLToJSON(waylinesXML)?.['Document']; |
| | | if (xmlJson.Folder.Placemark.length) return; |
| | | drawWayline(xmlJson) |
| | | }; |
| | | // 在地图上画线 |
| | | const drawWayline = (xmlJson) => { |
| | | const points = xmlJson?.['Folder']?.['Placemark']; |
| | | let positions = []; |
| | | // 获取点的位置 |
| | | const points = xmlJson.Folder.Placemark; |
| | | console.log('points', points); |
| | | getPositionsHeight(points, viewer, 100).then((result) => { |
| | | console.log(result); |
| | | positions = result.map((item) => { |
| | | return Cesium.Cartesian3.fromDegrees( |
| | | Number(item.longitude), |
| | |
| | | }); |
| | | result.forEach((item, index) => { |
| | | let setting = {}; |
| | | setting = { |
| | | id: 'route_point_' + index, |
| | | position: positions[index], |
| | | |
| | | label: { |
| | | text: `${index + 1}`, |
| | | font: 'bold 14px serif', |
| | | style: globalCesium.LabelStyle.FILL, |
| | | verticalOrigin: globalCesium.VerticalOrigin.CENTER, // 垂直居中 |
| | | horizontalOrigin: globalCesium.HorizontalOrigin.CENTER, // 水平居中 |
| | | pixelOffset: new globalCesium.Cartesian2(0, 0), // 根据需要调整偏移量 |
| | | eyeOffset: new globalCesium.Cartesian3(0, 0, -10) // 使标签在点的上方 |
| | | }, |
| | | |
| | | point: { |
| | | pixelSize: 24, |
| | | color: new globalCesium.Color.fromBytes(255, 186, 0, 255), |
| | | }, |
| | | } |
| | | viewer.entities.add(setting) |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | return { parsingFiles }; |
| | | }; |