外观
config.json文件说明
1177字约4分钟
2023-09-08
Mars3D对地图的初始化进行了封装,提供了Map地图类,通过传入构造参数即可方便的对地图进行初始化。
当前Mars3D开源的功能示例、项目模板中都是用config.json
来传参构造Map类的,这种方式比较方便后期修改和扩展。因为在大部分项目中,地图初始化都是类似的,不同的是一些相关参数和图层不同,我们使用时不用关注内部实现,只用按项目按权限需求修改或使用不同的配置信息即可。
1. 推荐使用config.json
我们强烈建议将Map构造参数通过config.json
静态配置文件或后端接口返回的配置方式进行地图初始化。
该方式的优点:
- Map场景序列化,可复用
- 方便随时修改地图配置,无需修改任何代码,无需重启服务,只需修改配置文件即可。
2. 参数说明
目前平台示例和项目中使用到的config.json 是一个静态 JSON 文件。 文件中配置参数与mars3d.Map类的构造参数是完全相同一致的,代码中加载json后传入到Map类中。
参数名 | 类型 | 参数API | 说明 |
---|---|---|---|
scene | Object | 参数清单 | 场景参数 |
control | Object | 参数清单 | 添加的控件 |
effect | Object | 参数清单 | 添加的特效 |
terrain | Object | 参数清单 | 地形服务配置 |
basemaps | Array | 参数清单 | 底图图层配置 |
layers | Array | 参数清单 | 可以叠加显示的图层配置 |
…… | …… | …… | …… |
更多参数及明细请阅读 API文档 Map类
提示
config.json文件也可以改为在服务端动态根据用户权限动态构造好json格式数据返回的方式。比如在我们场景低代码平台中,就是通过后端接口返回地图初始化配置信息,实现动态配置地图初始化参数。
3. config.json常见修改
config.json也可以通过我们场景低代码平台进行配置后导出配置进行使用,也可以参考API文档进行手动修改,手动修改时:
3.1 修改默认初始视角
scene.center
参数是地图或图层的默认初始视角,该参数不适合手动修改,可以通过map.getCameraView()
方法获取当前视角,或者从地图页面右键菜单中单击相关菜单获取当前视角后拷贝到配置文件中。
提示
layers
图层数组配置的中 相关center参数也类似处理.
3.2 修改默认显示的底图
修改basemaps
数组配置中,将已有的"show": true
的图层,将该值改为"show": false
,并将需要默认需要展示的底图加上"show": true
,
提示
- 注意是否缺少逗号造成json格式错误。
- 注意在basemaps数组中只保留一个
"show": true
的图层。
3.3 不显示地形
修改terrain
配置中,将已有的"show": true
配置,改为"show": false
3.4 瓦片底图服务配置
先在 Cesium官方示例 或 瓦片图层参数调试编辑页面 中调试加载成功(需要有一定的GIS知识储备),再拷贝对应的参数到config.json的layers参数节点配置中。 此问题可能产生的原因有以下几种
- (1)服务本身没允许跨域,瓦片加载失败
- (2)坐标系非墨卡托投影,是WGS84,配置加下: "crs": "EPSG:4326",
- (3)缺少0级时,需要配置 minimumLevel 和 minimumTerrainLevel 参数
- (4)最终配置时建议加下rectangle参数,去掉无效请求,提高效率。
更多可以参考教程加载XYZ数据步骤
3.5 三维模型3dtiles服务配置
在3dtiles模型位置及参数编辑页面中,输入模型的url地址,勾选深度检测后,调试模型的高度或位置等参数。 调试完成后,保存参数后拷贝至config.json
的layers参数节点配置中。
更多可以参考教程在平台中加载模型
提示
- 注意是否缺少逗号造成json格式错误。
- 按需加下name、pid属性来优化在图层管理功能中的展示或层级。