以XYZ格式提供GeoServer瓦片服务

6

我正在使用GeoServer和服务器上的种子瓦片。瓦片已经成功创建,但我不知道目录结构遵循哪种模式...(例如.../EPSG_4326_05/0_0/00_06.png)。 我想在OpenLayers应用程序中使用这些瓦片,并且我想使用一个使用XYZ模式的OSM源,这是通常用作瓦片服务的URL模式。 有没有办法告诉GeoServer应该使用XYZ结构创建瓦片?


在gis.stackexchange.com上发布了问题: https://gis.stackexchange.com/questions/242389/serve-geoserver-tiles-in-xyz-format - Martin Bauer
3个回答

7
酷,我一个小时前也有同样的问题。以下是概要。
注意:
OP所称的XYZ格式是由Google Maps推广的格式,在这个格式中,全局/地图服务被服务器拆分为以{z}/{x}/{y}格式提供,其中缩放、纬度和经度在内部表示[1]。 实际上,提供这种“格式”的服务名称是Tile Map Service(TMS)[2],而GeoServer确实提供了这样的服务[3]。 XYZ只是OpenLayers中用于访问TMS服务器的类名[4]。
话虽如此,下面是你如何使GeoServer和OpenLayers之间运行TMS服务的方法:
检查你的GeoServer的Caching Defaults是否启用了GeoWebCache和TMS服务。 我目前正在使用GS-2.14.3,默认情况下已启用这些服务。
启用GWC和TMS后,您应该可以在http://localhost:8080/gwc/service/tms/1.0.0(或通用情况下,/gmc/service/tms/1.0.0)下看到列出了栅格图层。
然后,你只需要从OpenLayer调用其中一个TileMap即可:
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. Leaflet中的TMS:https://leafletjs.com/examples/wms/wms.html#tms-in-leaflet 4. TMS/XYZ OpenLayers:https://openlayers.org/en/latest/apidoc/module-ol_source_XYZ-XYZ.html

5
这可能有点晚了,但这是我的 XYZ URL 用于 geoserver 图层:
http://localhost/gwc/service/tms/1.0.0/gis:service@EPSG%3A900913@png/{z}/{x}/{-y}.png

当您通过URL请求时,Geoserver将自动缓存瓦片。


你能提供一份文档的指针吗?我需要安装某些扩展来使tms终点可用吗?我已经尝试了不同的URL,但都没有成功,例如http://localhost:8080/geoserver/gwc/tms/http://localhost:8080/geoserver/gwc/ - jgrocha
1
刚刚发现:http://localhost:8080/geoserver/gwc/service/tms/1.0.0。文档可在 https://docs.geoserver.org/stable/en/user/geowebcache/webadmin/defaults.html 上查看。 - jgrocha
抱歉回复晚了。但是,是的,那就是链接 ;) - Anos K. Mhazo

0

GeoServer(实际上是GeoWebCache)可以提供多个端点用于服务瓦片。

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


很重要的一点是只使用我们的nginx服务器作为图片服务来提供瓦片。如果我使用openlayers的WMTS源,那么瓦片的服务将通过geoserver和tomcat完成...我只想将瓦片作为简单的图片进行服务。 - Martin Bauer
我从未尝试过,但我认为OpenLayers使用REST WMTS(或TMS)方案可以直接读取这些瓦片。 - Ian Turton
它现在受支持...就像其他答案所建议的那样。 - Sheece Gardazi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接