首页 > 其他分享 >mapbox-gl实战教程:加载各种底图技巧

mapbox-gl实战教程:加载各种底图技巧

时间:2023-03-28 17:31:38浏览次数:36  
标签:底图 切片 tms mapbox wmts gl 加载

在地图开发中,加载底图是一个最基本的操作,使用在线开放底图、自己发布的底图、或是客户提供的给底图服务,都存在一定的规律,掌握规律就能顺利的进行底图加载,本文通过以下四个方面,讲一下mapbox-gl加载各种底图技巧。

  • xyz/tms形式的底图加载;
  • wmts形式的底图加载;
  • wms形式底图加载;
  • 使用一张图片做底图;
  • 矢量切片底图加载 mapbox-gl作为一个成熟的前端地图引擎,对于常规的底图服务都能够进行支持,还衍生出来新的矢量切片底图格式,但是,在坐标系支持方面,相比openlayers、leafletjs还是差一些,所以,在专业的、特殊坐标系方面,使用还需谨慎。 一、xyz/tms形式的底图加载

xyz/tms形式的底图服务,是通过x、y、z三个参数,来确定进行底图切片进行加载,典型代表是天地图的底图服务: https://t0.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=<天地图token>

按照{x}{y}{z}设置参数就能达到进行加载;

一般的影像切片尺寸是256256,矢量切片的尺寸是512512;

mapbox-gl默认切片结构是xyz,当服务是tms时,需要在数据源上进行注明,scheme:tms;

xyz和tms的区别是中心点不同,一个在地图的左上角,一个在左下角,两者的x是一致的,只是y不同。

二、wmts形式的底图加载

wmts形式的底图服务,是通过一系列的参数,来确定进行底图切片加载的,常用GIS server都支持wmts服务发布,比如Arcgis Server、超图的iServer、开源的Geoserver等。

在wmst服务的请求中,添加REQUEST=GetCapabilities请求字段,能够返回wmts发布图层的配置信息,作为标准服务,无论何种Server发布都是一样的。

以下是一个wmts服务返回的信息部分截图:

image.png

按照天地图以wmts加载底图的形式:

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>

TileMatrix对应缩放级别(z); TileRow对应列数(tilecol &y); TileCol对应行数(tilerow&x); LAYER获取不同的图层; tileMatrixSet获取不同坐标系; 按照以上的设置方式,mapbox-gl就能够将wmts底图加载上了。

未完下篇继续...

标签:底图,切片,tms,mapbox,wmts,gl,加载
From: https://blog.51cto.com/speciallist/6155197

相关文章