首页 / 浏览问题 / 三维GIS / 问题详情
webgl 加载geojson数据没有贴地
5EXP 2019年06月10日

我有一份geojson数据:

const smc={"type":"FeatureCollection", "features": [
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[119.66253898412081,30.368448359079963],[119.66243188888996,30.368413407509607],[119.66239524553978,30.368497829777414],[119.662502340849,30.36853278137794],[119.66253898412081,30.368448359079963]]]},"properties":{"OBJECTID":1,"Shape_Leng":42.0000000005,"Shape_Area":110.000000003,"FWMC":"混","FWCS":"3","YSDM":"141161","X":119.662467115,"Y":30.3684730944}}
]}

使用Cesium.GeoJsonDataSource加载并且想使数据在地形之上,但是我加载之后数据在地形影像下面,按照官网设置了clampToGround为true也没生效,请问有遇到过这个问题吗?要怎么解决呢?

我的代码如下:

const smcPromise = Cesium.GeoJsonDataSource.load(smc,
          {
            clampToGround: true
          }
        );
        smcPromise.then(dataSource => {
          viewer.dataSources.add(dataSource);
          const entities = dataSource.entities.values;
          for (var i = 0; i < entities.length; i++) {
            var entity = entities[i];
            entity.$name = "smc";
            var color = (color = Cesium.Color.fromRandom({
              alpha: 1.0
            }));
            entity.polygon.material = color;
            entity.polygon.outline = false;
            entity.polygon.extrudedHeight = 10.0;
          }
          viewer.flyTo(smcPromise);
        });

1个回答

您好,我这边测试了一下。设置clampToGround:true是有效果的。

您的代码中entity.polygon.extrudedHeight = 10.0;  改代码对这个面进行了拉伸,变为了三维体,三维体是不可以贴对象的。您把这行代码注释掉就可以了
6,215EXP 2019年06月10日
谢谢您的回答
您问题解决了吗?这样是可以贴地形,但是有些polygon缺失。移动相机会有东西丢失。
...