# 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时,仅展示第一个。 若在项目内部想控制底图,可通过以下方式:

  1. 拿到MapViewer对象的baseLayerTool属性
  2. 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