首页 / 浏览问题 / 三维GIS / 问题详情
线的geojson怎么贴地形
23EXP 2022年07月03日

问题详细信息填写请严格参照如下示例内容填写,否则有被封禁的危险:
使用产品:SuperMap iClient3D for WebGL 操作系统:windows10
 问题详细描述:怎么实现线要素的geojson贴地形?
问题重现步骤:如下代码,加载geojson的线数据报错,报错如下截图,但是去掉clampToGround: true可以,但是线不贴地形。另外,官方demo是加载kml,可以实现贴地(http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#KML_beijing),怎么实现加载geojson贴地?

            let promise = new Cesium.GeoJsonDataSource("形").load(

              "./徐家棚街道主要道路.json",

              {

                clampToGround: true,

                stroke: Cesium.Color.YELLOW,

                fill: Cesium.Color.YELLOW,

                strokeWidth: 8,

              }

            );

            promise.then((dataSource) => {

              viewer.dataSources.add(dataSource);              

            });

报错的截图:

1个回答

您好,从您这个报错信息来看,有可能是引用的时候报错的。您使用的是哪个版本的webgl呢?能否提供一下控制台的截图以及请求上的报错信息呢?
4,151EXP 2022年07月04日
控制台的报错和这个是一样的,使用的webgl版本怎么查看,cesium使用的事1.54版本

您好,在控制台输入: Cesium.SuperMapVersion即可查看版本。

另外,您检查一下是否是电脑的问,http://ask.supermap.com/48870

Cesium.SuperMapVersion为undefined,不是电脑的问题,加载面贴地是可以的,线贴地不行。如下图

面贴地的效果如下:

代码截图如下:

如果是版本显示是未知,那么应该是没有关联上本地的Cesium,您也可以在代码里进行输出。

然后您看一下您本地的webgl包里该路径下文件是否正常,是否存在该文件,是否有加载成功?

回答您第一个问题:没有关联上本地的Cesium是什么意思?如果没有关联上,cesium初始化都不能用吧,其他功能都是正常的啊。

回答您第二个问题:目录下存在这个文件,怎么判断是否加载,难道不是引入cesium.js就自动引入这个文件吗。
我指的是浏览器的控制台获取不到Cesium。如果您是真的控制台能获取到Cesium还获取不到版本号的话,建议您这边更换为1.67的Cesium包进行尝试,或者提供数据验证。

判断是否加载,在请求当中抓取查看即可。
...