# 地形服务可以支持多个数据吗?
解决方案:
- 目前 cesium 底层一个 map 只能支持一个地形服务
- 在创建地球后更新 terrainProvider(用 mars3d.layer.createTerrainProvider 工厂方法创建)[目前 1 个球只支持 1 个地形服务]
参考代码:
// 方式2:在创建地球后更新terrainProvider(用 mars3d.layer.createTerrainProvider工厂方法创建)[目前1个球只支持1个地形服务]
map.terrainProvider = mars3d.LayerUtil.createTerrainProvider({
url: "http://data.mars3d.cn/terrain",
});
// 方式3:图层的方式(一般用于图层管理中,多个地形的切换)
const terrainLayer = new mars3d.layer.TerrainLayer({
url: "http://data.mars3d.cn/terrain",
});
map.addLayer(terrainLayer);
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 替换地形数据后,坡度坡向异常(几份地形数据均是一样的效果
替换后进行分析,控制台存在报错:
问题回复:
- arcgis 地形、天地图地形等是 Heightmap-1.0,与 cesium 本身的 terrain 还不一样, 其他地形不支持相关分析和计算
# 火星的标准服务与 arcgis 地形服务精度对比差异
在示例中,火星的地形数据服务,在高视角下会出现经纬度高度值为负数的情况,但是 arcgis 的地形服务,在高视角下,不会出现经纬度高度值为负数的情况,
这种时候,这个地形服务该如何避免负数的情况呢?从数据方向还是代码方向有思路优化避免该情况吗?
回复:
目前代码方面无法处理,数据来源 2021 年下载的谷歌地球,年份也不清楚;支持加载其他的地形服务或自己的高精度地形服务
示例的海拔一直是负数,视高越高,海拔就越不正常也是相似的问题,在高视角下地形精度不准确造成的。如果只是想工具栏不展示这种数据,可以自定义判断下不显示,如果是不拾取数据,目前不行的
# 离线部署地形数据是否有更新?包括精度提高、数据源更新之类
目前这个公开的 12.5 米,很多地图细节不太准确
地形不平坦,有的小山包已经推平盖楼了,这个 12.5 的在该视角下还是一个山包起伏。
map.setCameraView({
lat: 20.056004,
lng: 110.309636,
alt: 251.9,
heading: 60.7,
pitch: -37.9,
});
1
2
3
4
5
6
7
2
3
4
5
6
7
回复:
目前没有更新计划,全国数据 12.5 米目前全网都是同一套公开数据。目前没有其他数据渠道有最新的地形数据。
# 有没有办法将 Mars3d 的 地形夸张,嵌入到 datax ?
- datax 是阿里出的一个开源工具,有个管理界面,datax-admin
回复:不同引擎支持的数据格式不一样,可以查看下 datax 是否支持 terrain 数据
# 屏蔽地形服务
config.json 的 control 节点下修改参数 terrainProviderViewModels:[],支持屏蔽地形服务