| | |
| | | } |
| | | interface tragetPoint { |
| | | position: Cesium.Cartesian3 |
| | | isUseGlobalHeight: boolean, |
| | | eventList: eventParmas[] |
| | | } |
| | | |
| | |
| | | // 记录点位信息 |
| | | let cartesianArr: Cesium.Cartesian3[] = [] |
| | | |
| | | // 绘制路线 |
| | | // 绘制路线 |
| | | // 起飞点 |
| | | // let btmStartPoint: Cesium.Cartesian3 | null = null |
| | | const drawWayline = async (entities?: Cesium.Entity[], kmlStr?: string) => { |
| | | console.log(kmlStr) |
| | | if (!entities && !kmlStr) { |
| | | dataSource.show = false |
| | | } |
| | |
| | | }) |
| | | // 起飞点 |
| | | let btmStartPoint = null |
| | | // 获取文件中的起飞点 |
| | | const startPointRegStr = getKmlParams(kmlRes, true, { |
| | | name: 'takeOffRefPoint', |
| | | findRegx: '([\\s\\S]*?)', |
| | | }) || ['', '0.00000,0.00000,0.00000'] |
| | | const startPointPosition = startPointRegStr[1].split(',') |
| | | btmStartPoint = Cesium.Cartesian3.fromDegrees( |
| | | Number(startPointPosition[1]), |
| | | Number(startPointPosition[0]), |
| | | Number(startPointPosition[2]) |
| | | ) |
| | | // 参考起飞点“海拔高度,与“参考起飞点”中的椭球高度对应 |
| | | // const posterHeightRegStr = getKmlParams(kmlRes, true, { |
| | | // name: 'takeOffRefPointAGLHeight', |
| | | // findRegx: '([\\s\\S]*?)', |
| | | // }) || ['', 0] |
| | | // const posterHeight = Number(posterHeightRegStr[1]) |
| | | // 判断是否存在实体集 |
| | | if (entities) { |
| | | cartesianArr = [] |
| | |
| | | name: 'height', |
| | | findRegx: '([\\s\\S]*?)', |
| | | }) |
| | | // 获取是否使用全局高度 |
| | | const useGlobalHeightRegStr = getKmlParams(point, true, { |
| | | name: 'useGlobalHeight', |
| | | findRegx: '([\\s\\S]*?)', |
| | | }) || ['', '0'] |
| | | const isUseGlobalHeight = Boolean(Number(useGlobalHeightRegStr[1])) |
| | | const AslHeight = Number(getPointHeight[1]) |
| | | const HeaHeight = Number(getHaeHeight[1]) |
| | | entity.position = Cesium.Cartesian3.fromDegrees(longitude, latitude, AslHeight) |
| | | if (i === 0) { |
| | | btmStartPoint = Cesium.Cartesian3.fromDegrees(longitude, latitude, 0) |
| | | } |
| | | // 创建广告牌信息 |
| | | const title = Number(i + 1) === 1 ? 'S' : i |
| | | const billboard = createTriangleMarker(title, '#61d396') |
| | | const title = Number(i + 1) === 1 ? 'S' : i + 1 |
| | | let billboard = null |
| | | if (isUseGlobalHeight) { |
| | | billboard = createTriangleMarker(title, '#61d396') |
| | | } else { |
| | | billboard = createTriangleMarker(title, '#409eff') |
| | | } |
| | | // 修改id |
| | | entity._id = 'tragetPoint' + i |
| | | // 修改广告牌样式 |
| | |
| | | // 当前航线点位事件信息等 |
| | | waylinePointsEvent.value.push({ |
| | | position: entity.position._value, |
| | | isUseGlobalHeight, |
| | | eventList: [], |
| | | }) |
| | | } |