Как программно отрегулировать высоту элемента в методе обещания Цезия.

Я пытаюсь переместить высоту элемента сущности, которая загружается из файла geojson в caesium.js. Я использую пример файла App.js из Cesium Workshop /

Как бы я изменил код ниже, чтобы отрегулировать высоту объектов данных так, чтобы они были прикреплены к высоте местности. Файл geojson, который у меня есть, имеет значение высоты 0. Эта высота должна соответствовать местности в этом месте. Когда я отображаю эти данные, многие точки находятся под землей. Я предполагаю, что мне также нужно искать высоту ландшафта, преобразовывать данные в декартово-координированные назад и вперед в полярные координаты, чтобы добавить смещение в объект.

var geojsonOptions = {
        clampToGround : true
    };
 
 
 var testLinePromise = Cesium.GeoJsonDataSource.load('./Source/SampleData/testLines.geojson', geojsonOptions);

    // Save an new entity collection of neighborhood data
    var testLines;
    testLinePromise.then(function(dataSource) {
        // Add the new data as entities to the viewer
        viewer.dataSources.add(dataSource);
        testLines = dataSource.entities;

        // Get the array of entities
        var testLineEntities = dataSource.entities.values;
        for (var i = 0; i < testLineEntities.length; i++) {
            var entity = testLineEntities[i];

            if (Cesium.defined(entity.polygon)) {


                // Tells the polygon to color the terrain. ClassificationType.CESIUM_3D_TILE will color the 3D tileset, and ClassificationType.BOTH will color both the 3d tiles and terrain (BOTH is the default)
                entity.polygon.classificationType = Cesium.ClassificationType.TERRAIN;
                // Generate Polygon center
                var polyPositions = entity.polygon.hierarchy.getValue(Cesium.JulianDate.now()).positions;
                var polyCenter = Cesium.BoundingSphere.fromPoints(polyPositions).center;
                polyCenter = Cesium.Ellipsoid.WGS84.scaleToGeodeticSurface(polyCenter);
                entity.position = polyCenter;
                // Generate labels
                entity.label = {
                    text : entity.name,
                    showBackground : true,
                    scale : 0.6,
                    horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
                    verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
                    distanceDisplayCondition : new Cesium.DistanceDisplayCondition(10.0, 8000.0),
                    disableDepthTestDistance : 100.0
                };
            }
        }
    });

Вот файл geojson

    {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "properties": {
            "name": "623dd9c1-26cb-4248-8e41-ebc8c3a16af5",
            "description": "descr A",
            "company": "ACME"
          },
          "geometry": {
            "type": "LineString",
            "coordinates": [
              [
                -114.5305072,
                20.61238237,
                0
              ],
              [
                -111.9486,
                10.46916111,
                0
              ]
            ]
          }
        },
        {
          "type": "Feature",
          "properties": {
            "name": "15966b86-26d0-4e0b-ba6e-7fa0c98bfe5e",
            "description": "descr C",
            "company": "ACME"
          },
          "geometry": {
            "type": "LineString",
            "coordinates": [
              [
                -135.9989702,
                45.7677603,
                0
              ],
              [
                -134.5305072,
                50.61238237,
                0
              ]
            ]
          }
        },
        {
          "type": "Feature",
          "properties": {
            "name": "00ca37f5-de78-4d5b-88b5-d39808ff8143",
            "description": "descr D",
            "company": "ACME"
          },
          "geometry": {
            "type": "LineString",
            "coordinates": [
              [
                -125.9989702,
                65.7677603,
                0
              ],
              [
                -129.0238961,
                67.96685,
                0
              ]
            ]
          }
        },
        {
          "type": "Feature",
          "properties": {
            "name": "22e5e02f-fa43-445e-a2eb-29ad760a964c",
            "description": "descr E",
            "company": "ACME"
          },
          "geometry": {
            "type": "LineString",
            "coordinates": [
              [
                -105.9989702,
                55.7677603,
                0
              ],
              [
                -100.7366501,
                55.67798889,
                0
              ]
            ]
          }
        },
        {
          "type": "Feature",
          "properties": {
            "name": "c4aefe46-a2a6-4a97-ac36-571c9e370d31",
            "description": "descr A",
            "company": "ACME"
          },
          "geometry": {
            "type": "LineString",
            "coordinates": [
              [
                -111.994653,
                78.84398434,
                0
              ],
              [
                -128.4816326,
                16.68839404,
                0
              ]
            ]
          }
        }
      ]
    }

0 ответов

Другие вопросы по тегам