应用场景 , 在Cesium球上绘制线 , 根据线的绘制类型不同 , 会有下图三种类型的线
现在要获取的就是其中红线的坐标串 , 具体代码如下
/**
* 获取两点间的测地线坐标
* @param {Cartographic} start 起点
* @param {Cartographic} end 终点
* @returns Array
*/
getPolylineCoor (start , end) {
var geodesic = new Cesium.EllipsoidGeodesic()
geodesic.setEndPoints(start, end)
// 平分测地线距离 , 用于获取点位
var distance = geodesic.surfaceDistance / 10
var result = []
for (let t = 1; t < 10; t++) {
// 根据点在线上离起点的距离获取点位
var cr = geodesic.interpolateUsingSurfaceDistance(distance * t)
let y = Cesium.Math.toDegrees(cr.latitude)
let x = Cesium.Math.toDegrees(cr.longitude)
result.push({x,y})
}
return result
}
经测试 , 效果如下图 , 两条线在Cesium 基本贴合