mapbox gl除了加载客户端可控制样式的底图,也能够加载常规的影像底图。
这里指发布的影像或者矢量地图切片,在线经常使用的有天地图,谷歌地图、高德百度等,底图的加载,mapbox gl中,主要是修改对应的样式style。
//这是加载arcgis server发布的底图切片
var map = new mapboxgl.Map({
container: 'map',
style: {
//目前地图的版本用8
"version": 8,
//数据源,可以设置多个数据源
"sources": {"mapsource": {
//数据源类型是 raster
"type": "raster",
//切片的地址:arcgis server 只有发布了切片才能这样进行访问,具体参照arcgis server的wmts发布
"tiles": ['http://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer/WMTS/tile/1.0.0/ChinaOnlineCommunity/default/default028mm/{z}/{y}/{x}.png']
//切片的尺寸,一般都是256
"tileSize": 256,
}
},
//加载数据源里的图层
"layers": [{
"id": "mapsource",
"type": "raster",
//数据源选择source中的id
"source": "mapsource",
//设置图层的可缩放级别
"minzoom": 0,
"maxzoom": 18
} ]
}
});
</script>
//加载天地图的矢量和注记图层
style: {
"version": 8,
"sources": {
"mapsource": {
"type": "raster",
//天地图的影像切片,现在天地图需要申请token
"tiles":
['http: //t1.tianditu.com/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=vec&tileMatrixSet=w&TileMatrix={z}&TileRow={y}&TileCol={x}&style=default&format=tiles&tk=<your token>'],
"tileSize": 256,
},
//注记的数据源,source中可以添加多个
annotationsource": {
"type": "raster",
"tiles": [' http://t0.tianditu.com/cva_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cva&tileMatrixSet=w&TileMatrix={z}&TileRow={y}&TileCol={x}&style=default&format=tiles&tk=<your token>'],
"tileSize": 256,
}
},
//分别加载多个天地图的图层
"layers": [{
"id": "mapsource",
"type": "raster",
"source": "mapsource",
"minzoom": 0,
"maxzoom": 18
},{
"id": "annotationsource",
"type": "raster",
"source": "annotationsource",
"minzoom": 0,
"maxzoom":18
}]
}
类似于高德、百度的地图,网上搜到这些地图的切片地址,同样也能够进行访问,需要注意的是,切片图层要做成web mecator的坐标系,才能进行访问。