GeoServer

GeoServer 为例,对常见地图服务标准简要说明以及在 Mapbox GL JS 中的使用。

WMTS

利用 GetTile 操作和指定输出格式即可在 Mapbox GL JS 中使用。

// 栅格瓦片 image/png
'source-id': {
  'type': 'raster',
  'tiles': [
    'https://a.example.com/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&LAYER=example:example&STYLE=&TILEMATRIX=EPSG:900913:{z}&TILEMATRIXSET=EPSG:900913&FORMAT=image/png&TILECOL={x}&TILEROW={y}'
    // 或 geoserver rest 服务
    // 'https://a.example.com/geoserver/gwc/service/wmts/rest/example:example/EPSG:900913/EPSG:900913:{z}/{y}/{x}?format=image/png'
  ]
}

// 矢量瓦片 application/vnd.mapbox-vector-tile
'source-id': {
  'type': 'vector',
  'tiles': [
    'https://a.example.com/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&LAYER=example:example&STYLE=&TILEMATRIX=EPSG:900913:{z}&TILEMATRIXSET=EPSG:900913&FORMAT=application/vnd.mapbox-vector-tile&TILECOL={x}&TILEROW={y}'
    // 或 geoserver rest 服务
    // 'https://a.example.com/geoserver/gwc/service/wmts/rest/example:example/EPSG:900913/EPSG:900913:{z}/{y}/{x}?format=application/vnd.mapbox-vector-tile'
  ]
}

TMS

// 矢量
'source-id': {
  'type': 'vector',
  'tiles': [
    'https://a.example.com/geoserver/gwc/service/tms/1.0.0/example:example@EPSG:900913@pbf/{z}/{x}/{y}.pbf'
  ],
  'scheme': 'tms'
}
// 栅格
'source-id': {
  'type': 'raster',
  'tiles': [
    'https://a.example.com/geoserver/gwc/service/tms/1.0.0/example:example@EPSG:900913@png/{z}/{x}/{y}.png'
  ],
  'tileSize': 256,
  'scheme': 'tms'
}






 








 

WFS

利用 GetFeature 操作和指定输出格式即可在 Mapbox GL JS 中使用。

加载示例(application/json 格式):

'source-id': {
  'type': 'geojson',
  'data': 'https://a.example.com/geoserver/buildings/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=buildings:cq_point&outputFormat=application/json'
}

提示

WMS

利用 GetMap 操作和指定地图边框范围(bbox)和输出格式(format)即可在 Mapbox GL JS 中使用。

加载示例(image/png 格式):

'source-id': {
  'type': 'raster',
  'tiles': [
    'https://a.example.com/geoserver/ows?service=WMS&version=1.3.0&request=GetMap&layers=china_admin:Chongqing&bbox={bbox-epsg-3857}&width=512&height=512&srs=EPSG:3857&format=image/png&TRANSPARENT=TRUE'
  ]
}

提示

注意 url 中的 bbox 参数值 "{bbox-epsg-3857}"。Mapbox GL JS 会自动计算地图范围替换该值,获取地图。