createMap(container, options) {
const map = new mapboxgl.Map(Object.assign({
container,
hash: process.env.NODE_ENV === 'development',
style: {
version: 8,
glyphs: `${server.url ? server.url : window.location.origin}/iserver/services/map-${process.env.VUE_APP_SERVICE}/rest/maps/${process.env.VUE_APP_MAP}/tileFeature/sdffonts/{fontstack}/{range}.pbf`,
sources: {
vec: {
type: 'raster',
tiles: ['https://t0.tianditu.gov.cn/DataServer?T=vec_c&x={x}&y={y}&l={z}&tk=' + process.env.VUE_APP_TDT_TOKEN],
tileSize: 256,
},
cva: {
type: 'raster',
tiles: ['https://t0.tianditu.gov.cn/DataServer?T=cva_c&x={x}&y={y}&l={z}&tk=' + process.env.VUE_APP_TDT_TOKEN],
tileSize: 256,
},
szvec: {
type: 'raster',
tileSize: 256,
// xyz形式,原生支持
tiles: ['https://zhswtest.hdec.com/arcgis/rest/services/szmap/MapServer/tile/{z}/{y}/{x}'],
minzoom: 18,
maxzoom: 20,
},
sva: {
type: 'raster',
tileSize: 256,
// xyz形式,原生支持
tiles: ['https://zhswtest.hdec.com/arcgis/rest/services/szmap_anno/MapServer/tile/{z}/{y}/{x}'],
minzoom: 18,
maxzoom: 20,
},
img: {
type: 'raster',
tiles: ['https://t0.tianditu.gov.cn/DataServer?T=img_c&x={x}&y={y}&l={z}&tk=' + process.env.VUE_APP_TDT_TOKEN],
// tiles: ['http://localhost:8081/{z}/{x}/{y}.png'],
tileSize: 256,
},
cia: {
type: 'raster',
tiles: ['https://t0.tianditu.gov.cn/DataServer?T=cia_c&x={x}&y={y}&l={z}&tk=' + process.env.VUE_APP_TDT_TOKEN],
tileSize: 256,
},
szimg: {
type: 'raster',
tileSize: 256,
// xyz形式,原生支持
tiles: ['https://zhswtest.hdec.com/arcgis/rest/services/szimage/MapServer/tile/{z}/{y}/{x}'],
minzoom: 18,
maxzoom: 20,
},
},
layers: [
{
id: 'background',
type: 'background',
paint: {
'background-color': '#ffffff'
}
}, {
id: 'vec',
type: 'raster',
source: 'vec',
maxzoom: 17,
layout: {
visibility: 'none'
},
paint: {
'raster-opacity': [
'interpolate', ['linear'], ['zoom'],
4, 1,
12, 0.4
],
'raster-saturation': [
'interpolate', ['linear'], ['zoom'],
4, 0,
12, -0.8
]
}
}, {
id: 'cva',
type: 'raster',
source: 'cva',
maxzoom: 10,
layout: {
visibility: 'none'
},
}, {
id: 'szvec',
type: 'raster',
source: 'szvec',
minzoom: 17,
layout: {
visibility: 'none'
},
paint: {
'raster-opacity': 0.5,
'raster-saturation': -0.8
}
}, {
id: 'sva',
type: 'raster',
source: 'sva',
minzoom: 17,
layout: {
visibility: 'none'
},
}, {
id: 'img',
type: 'raster',
source: 'img',
maxzoom: 17,
layout: {
visibility: 'none'
},
paint: {
// 'raster-opacity': [
// 'interpolate', ['linear'], ['zoom'],
// 4, 1,
// 12, 0.4
// ],
'raster-saturation': [
'interpolate', ['linear'], ['zoom'],
4, 0,
12, -0.5
]
}
}, {
id: 'cia',
type: 'raster',
source: 'cia',
maxzoom: 10,
layout: {
visibility: 'none'
},
}, {
id: 'szimg',
type: 'raster',
source: 'szimg',
minzoom: 17,
layout: {
visibility: 'none'
},
paint: {
// 'raster-opacity': 0.5,
'raster-saturation': -0.5
}
}
]
},
crs: crs.EPSG4490,
center: [114.044, 22.545],
zoom: 12,
minZoom: 4,
maxZoom: 24,
boxZoom: true,
pitchWithRotate: false,
// fadeDuration: 0,
preserveDrawingBuffer: true,
touchZoomRotate: { around: 'center' },
trackResize: false,
locale: {
'FullscreenControl.Enter': '全屏',
'FullscreenControl.Exit': '退出',
'NavigationControl.ResetBearing': '复位',
'NavigationControl.ZoomIn': '放大',
'NavigationControl.ZoomOut': '缩小',
}
}, options));
return map;
}