# mapConfig说明
在创建地图对象过程中,为了实现地图对象的灵活、可配置、易修改,我们经常会传入一个Object类型的参数,参数中包含了各种各样的属性,以下是对各个属性的说明。
{
baseServer: "http://localhost:1119/",
map: {
cameraView: {
"x": 117.24473608316538,
"y": 31.473304123104246,
"z": 50127.83549149741,
"heading": 4.01216132021934,
"pitch": -54.02598589122648,
"roll": 359.9967116865769,
duration: 0
},
brightness: 1.0, // 亮度设置
errorRender: true, // 是否开启崩溃刷新
debugShowFramesPerSecond: false, // 是否显示帧数
worldAnimate: false,
lnglatNavigation: true, // 经纬度及相机位置提示
rightTool: true, // 是否开启右键功能
popupTooltipTool: true, // 是否开启气泡窗
navigationTool: true, // 导航球及比例尺
depthTestAgainstTerrain: true, // 是否开启深度监测
viewer: {
"animation": false,
"baseLayerPicker": false,
"fullscreenButton": false,
"geocoder": false,
"homeButton": false,
"infoBox": false,
"sceneModePicker": false,
"selectionIndicator": false,
"timeline": false,
"navigationHelpButton": false,
"scene3DOnly": true,
"useDefaultRenderLoop": true,
"showRenderLoopErrors": false,
"terrainExaggeration": 1
},
terrain: {
url: "http://data.marsgis.cn/terrain",
show: true,
},
},
baseLayers: [
{
name: "单张地图",
type: "singleImage",
url: img_world,
iconImg: img_world,
show: false,
alpha: 1,
rectangle: [-180, -90, 180, 90],
},
{
name: "电子底图",
type: "mapserver",
iconImg: img_arcgis,
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
show: true,
},
{
name: "彩色底图",
type: "mapserver",
iconImg: img_caise,
url: "https://services.arcgisonline.com/arcgis/rest/services/World_Physical_Map/MapServer",
show: false,
},
{
name: "蓝黑底图",
type: "mapserver",
iconImg: img_geoq,
url: "http://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer",
show: false,
},
{
name: "天地图",
type: "tdt",
layerName: "img",
show: false,
iconImg: img_tdt,
key: "a217b99b7be68b98104548d78e9a679a",
},
{
name: "腾讯地图",
type: "tencent",
layerType: "1",
iconImg: img_tencent,
show: false
},
{
name: "百度地图",
type: "baidu",
iconImg: img_baidu,
show: false
},
{
name: "高德地图(影像)",
type: "urltemplate",
iconImg: img_gaode,
url: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
// url: "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}", 矢量
// url: "http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8", 注记
// minimumLevel: 3,
// maximumLevel: 18,
show: false
}
],
operateLayers: [
{
name: "测试影像",
type: "group",
open: true,
children: [
{
name: "无人机航飞(1)",
type: "xyz",
show: false,
url: "http://localhost/layer/testTiff/{z}/{x}/{y}.png",
}
]
},
{
name: "倾斜摄影(osgb)",
type: "group",
open: true,
children: [
{
name: "地块(3)",
type: "3dtiles",
url: "http://mapgl.com/data/model/dikuai/tileset.json",
center: {
z: 440
},
show: true,
maximumScreenSpaceError: 16
},
{
name: "寺庙",
type: "3dtiles",
url: "http://mapgl.com/data/model/qx-simiao/tileset.json",
center: {
z: 120,
},
alpha: .5,
show: true,
maximumScreenSpaceError: 1,
},
{
name: "大雁塔",
type: "3dtiles",
url: "http://mapgl.com/data/model/qx-dyt/tileset.json",
center: {
z: 423,
},
show: false,
maximumScreenSpaceError: 1,
}
],
},
{
name: "手工建模",
type: "group",
open: true,
children: [
{
name: "石化企业(3dmax)",
type: "3dtiles",
url: "http://mapgl.com/data/model/max-shihua/tileset.json",
show: false,
center: {
z: 80,
},
maximumScreenSpaceError: 16,
}
]
},
{
name: "点云模型",
type: "group",
open: true,
children: [
{
name: "植被",
type: "3dtiles",
url: "http://localhost/model/las/zhibei/tileset.json",
show: false,
maximumScreenSpaceError: 16,
}
]
}
],
}
使用方式:
let mapViewer = (window.mapViewer = new this.vis3d.MapViewer(
"mapContainer",
mapConfig
));
# baseServer
此属性为了统一配置下方baseLayers以及operateLayers中各服务的地址前缀,当baseLayers或者operateLayers中的服务的url包含{baseServer}时,在创建viewer对象的同时,会将url中的{baseServer}替换为此处baserver配置。内部代码如下:
layer.url.replace("${baseServer}", baseServer);
# map
// 进入后,地图的初始化视角。当构建地图时,开启了右键菜单(rightTool:true),可通过鼠标右键获取此参数。
cameraView: {
"x": 117.24473608316538,
"y": 31.473304123104246,
"z": 50127.83549149741,
"heading": 4.01216132021934,
"pitch": -54.02598589122648,
"roll": 359.9967116865769,
duration: 0
},
// 场景亮度
brightness: 1.0,
// 是否开启崩溃刷新,当开启后,系统webgl崩溃时,会自动刷新页面
errorRender: true,
// 是否显示fps帧数
debugShowFramesPerSecond: false,
// 是否开启地球自转动画,开启时,在地图加载时会进行地球自转
worldAnimate: false,
// 是否开启界面底部的经纬度及相机参数的实时显示
lnglatNavigation: true,
// 是否开启鼠标的右键菜单
rightTool: true, // 是否开启右键功能
// 是否开启气泡窗,开启后,可直接给entity以及primitive绑定tooltip以及popup属性
popupTooltipTool: true,
// 是否开启导航球及比例尺
navigationTool: true,
// 是否开启深度监测
depthTestAgainstTerrain: true,
// viewer对象参数,详细可参阅Cesium.Viewer中的参数
viewer: {
"animation": false,
"baseLayerPicker": false,
"fullscreenButton": false,
"geocoder": false,
"homeButton": false,
"infoBox": false,
"sceneModePicker": false,
"selectionIndicator": false,
"timeline": false,
"navigationHelpButton": false,
"scene3DOnly": true,
"useDefaultRenderLoop": true,
"showRenderLoopErrors": false,
"terrainExaggeration": 1
},
// 地形配置
terrain: {
url: "http://data.marsgis.cn/terrain",
show: true,
}
# baseLayers
地图的地图配置参数。此处为一个数组。当配置此属性时,在创建MapViewer对象时,通过baseLayerTool(LayerTool类型)来加载此数组中的配置的各地图服务。 注:baseLayers数据中,仅可配置其中一个地图服务的show为true,当配置多个为true时,仅展示第一个。 若在项目内部想控制底图,可通过以下方式:
- 拿到MapViewer对象的baseLayerTool属性
- baseLayerTool为LayerTool类型对象,通过LayerTool对象的方法来进行操作 如下为设置图层的显隐性:
window.mapViewer.baseLayerTool.showById(id);
# operateLayers
配置方式和baseLayers中类似,但若要获取其操作对象,需通过operatePlotTool。
# baseLayers以及operateLayers中图层类型说明
当前支持的type类型有:xyz、wfs、geojson、mapserver、arcgiscache、tdt、singleImage、tms、3dtiles、wms、grid