以XYZ格式提供GeoServer Tiles

时间:2017-05-31 14:13:37

标签: openlayers-3 tiles geoserver

我在服务器上使用GeoServer和种子图块。瓷砖创建成功但我不知道目录结构遵循哪种模式...(即... / EPSG_4326_05 / 0_0 / 00_06.png) 我想在OpenLayers应用程序中使用切片,并且我想使用OSM源,该源使用XYZ模式,该模式通常用作切片服务的URL模式。 有没有办法告诉地理服务器它应该用XYZ结构创建瓷砖?

3 个答案:

答案 0 :(得分:1)

GeoServer(实际上GeoWebCache)可以提供可以服务器切片的number of end points

这些都不使用所谓的XYZ系统(因为这不是标准),但OpenLayers有一个Tiled Layer,可以使用TileImage source处理TMS和WMTS服务器。

答案 1 :(得分:1)

这可能为时已晚,这是我的geoserver图层的XYZ网址:

http://localhost/gwc/tms/1.0.0/gis:service@EPSG%3A900913@png/{z}/{x}/{-y}.png

Geoserver会在您通过网址请求时自动缓存切片。

答案 2 :(得分:0)

很酷,一个小时前我有同样的问题。摘要如下。

注意:

  

OP所谓的XYZ格式是Google Maps流行的格式,其中全局/底图是服务器端拆分的,并以{z}/{x}/{y}格式用作图块,其中表示了缩放,纬度和经度内部[1]。   实际上,提供这种“格式”的服务的名称为Tile Map Service (TMS) [2],而GeoServer确实提供了这种服务[3]。   XYZ只是OpenLayers中用于访问TMS服务器[4]的类的名称。

话虽这么说,这是在GeoServer和OpenLayers之间运行TMS服务的方法:

  • 检查您的GeoServer的缓存默认值是否已启用GeoWebCache和TMS服务。我目前正在使用GS-2.14.3,并且默认情况下启用了这些功能。

启用GWC和TMS后,您应该看到http://localhost:8080/gwc/service/tms/1.0.0(或通常为<geoserver-path>/gmc/service/tms/1.0.0)下列出的栅格图层。

然后,您只需要从OpenLayer调用其中一个 TileMaps

var tileURL = "<tilemap-from-gwc-list-above>" + "/{z}/{x}/{-y}.jpg" // or '.png'

var map = new ol.Map(<your params here>);

var bm = new ol.layer.Tile({
  source: new ol.source.XYZ({
    url: tileURL
  })
})
map.addLayer(bm)

希望有帮助。 干杯。


参考:

  1. Google / TMS格式:https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection/
  2. TMS规范:https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification
  3. 传单中的
  4. TMS:https://leafletjs.com/examples/wms/wms.html#tms-in-leaflet
  5. TMS / XYZ OpenLayers:https://openlayers.org/en/latest/apidoc/module-ol_source_XYZ-XYZ.html