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