Как использовать Polyline в цезиевой версии 1.52.0 для соединения точек с линиями Rhumb? - PullRequest
0 голосов
/ 06 февраля 2019

В настоящее время я использую 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 голосов
/ 13 февраля 2019

Это возможно в версии 1.52 с помощью Turf.js , в частности, функции greatCircle .

Вам просто нужно будет вызвать эту функцию для каждого сегмента вашей ломаной линии - передавая начальную и конечную координаты.

Каждый вызов функции даст вам GeoJSON для определенного сегмента - цепочка этоGeoJSON вместе (есть еще несколько помощников, которые Turf предоставляет для такого рода операций) и вуаля - теперь вы готовы загрузить его в Cesium через Cesium.GeoJsonDataSource.

...