GIS开发:mapbox gl几种底图的加载

2,346 阅读1分钟

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

} ]

}

});

//加载天地图的矢量和注记图层

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的坐标系,才能进行访问。