基于Cesium获取两点间的测地线(GEODESIC)坐标

应用场景 , 在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 基本贴合

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cesium是一款开源的地理信息处理框架,可以用于可视化地球上的各种数据。在Cesium中,获取坐标点的高程可以通过以下步骤实现。 首先,需要通过Cesium提供的API加载地形数据。地形数据包括数字高程模型(DEM),可以用来获取地球表面各个点的高程信息。Cesium支持多种地形数据格式,如Terrain-Rugged(由高程瓦片组成)和Heightmap(以二维数组形式表示)等。 其次,需要创建一个Viewer实例,用于承载Cesium的场景和数据。Viewer是Cesium的核心组件,负责显示地球和其他地理数据。 然后,可以通过Cesium提供的Entity API创建一个点实体,并指定其位置坐标。点实体可以用来表示特定位置的一组属性和图形元素,其位置可以通过经纬度或笛卡尔坐标来定义。 接下来,可以使用Cesium提供的SampledProperty API将点实体的高程信息与对应的位置关联起来。SampledProperty是一种可变动的属性,可以在时轴上定义位置对应的属性值变化情况。在这里,我们可以通过SampledProperty来记录点实体在不同时或空位置的高程数据。 最后,使用Cesium提供的Visualization API将点实体添加到Viewer的场景中,并通过设置相应的渲染样式来显示点的高程信息。可以通过调整点的颜色或大小等属性来使高程信息在地球上可视化。 综上所述,通过Cesium可以方便地获取坐标点的高程。通过加载地形数据、创建点实体以及使用SampledProperty和Visualization API等功能,我们可以在Cesium中实现对坐标点高程的获取和可视化展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值