如何在铯1.52.0版中使用Polyline将点与Rhumb线连接?

时间:2019-02-06 19:49:39

标签: javascript maps geojson cesium

我当前正在使用Cesium版本1.52.0,并且目前无法升级。但我的目标是在地图上以rhumb格式显示折线。在1.54.0版中,arcType: Cesium.ArcType.RHUMB是获得大黄线的属性。 在1.52.0版中如何获得相同的结果?

var viewer = new Cesium.Viewer("cesiumContainer" );


viewer.entities.add({
    polyline: {
        positions: Cesium.Cartesian3.fromDegreesArrayHeights([-112.3268785,29.1673139,1000,139.1652182,9.6235915,1000,11.4423255,50.0235941,1000,-41.2873034,-5.1132736,1000]),
        width: 8,
        arcType: Cesium.ArcType.RHUMB,
        material: new Cesium.PolylineOutlineMaterialProperty({
            color: Cesium.Color.YELLOW,
            outlineWidth: 4,
            outlineColor: Cesium.Color.BLACK
        })
    }
});
html, body, #cesiumContainer {
  width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
  font-family: sans-serif;
}
<link href="http://cesiumjs.org/releases/1.54/Build/Cesium/Widgets/widgets.css" 
      rel="stylesheet"/>
<script src="http://cesiumjs.org/releases/1.54/Build/Cesium/Cesium.js">
</script>
<div id="cesiumContainer"></div>

1 个答案:

答案 0 :(得分:0)

在1.52版中,可以通过Turf.js-特别是greatCircle function实现。

您只需要为折线的每个线段调用此函数-传入起点和终点坐标即可。

每个函数调用都会为您提供特定段的GeoJSON-将这个GeoJSON链接在一起(Turf为此类操作提供了更多帮助器),瞧-您现在可以通过以下方式将其上传到Cesium: Cesium.GeoJsonDataSource。