以 XYZ 格式提供 GeoServer Tiles
Posted
技术标签:
【中文标题】以 XYZ 格式提供 GeoServer Tiles【英文标题】:Serve GeoServer Tiles in XYZ format 【发布时间】:2017-05-31 14:13:37 【问题描述】:我在我的服务器上使用 GeoServer 和种子图块。瓷砖已成功创建,但我不知道目录结构遵循哪种模式...(即.../EPSG_4326_05/0_0/00_06.png) 我想在 OpenLayers 应用程序中使用磁贴,并且我想使用 OSM 源,它使用通常用作磁贴服务的 URL 模式的 XYZ 模式。 有没有办法告诉地理服务器它应该创建具有 XYZ 结构的瓦片?
【问题讨论】:
在 gis.stackexchange.com 上发布了问题:gis.stackexchange.com/questions/242389/… 【参考方案1】:太好了,一小时前我也有同样的问题。总结一下。
注意:
OP 所称的
XYZ
格式是由 Google 地图推广的格式,其中全局/底图在服务器端拆分并作为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)
希望对您有所帮助。 干杯。
参考:
-
谷歌/TMS 格式:https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection/
TMS 规范:https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification
传单中的 TMS:https://leafletjs.com/examples/wms/wms.html#tms-in-leaflet
TMS/XYZ 开放层:https://openlayers.org/en/latest/apidoc/module-ol_source_XYZ-XYZ.html
【讨论】:
【参考方案2】:这可能为时已晚,这是我的地理服务器层的 XYZ URL:
http://localhost/gwc/service/tms/1.0.0/gis:service@EPSG%3A900913@png/z/x/-y.png
Geoserver 将在您通过 URL 请求时自动缓存切片。
【讨论】:
你能提供一个指向文档的指针吗?我是否需要一些扩展才能使tms
端点可用?我尝试了不同的网址,但没有成功,例如http://localhost:8080/geoserver/gwc/tms/
、http://localhost:8080/geoserver/gwc/
。
刚刚发现:http://localhost:8080/geoserver/gwc/service/tms/1.0.0
。文档位于:docs.geoserver.org/stable/en/user/geowebcache/webadmin/…。
抱歉这么久才回复。但是是的,这就是链接;)【参考方案3】:
GeoServer(实际上是GeoWebCache)可以提供一个number of end points,可以服务磁贴。
这些都没有使用所谓的 XYZ 系统(因为这不是标准),但 OpenLayers 有一个分块层,可以使用 TileImage source 处理 TMS 和 WMTS 服务器。
【讨论】:
仅使用我们的 nginx-server 将瓦片作为图像提供是很重要的。如果我使用 openlayers 的 WMTS 源,则可以通过 geoserver 和 tomcat 提供切片。我只想将切片作为简单图像提供 我从未尝试过,但我认为使用 REST wmts(或 TMS)方案的 OpenLayers 可以直接读取这些图块。以上是关于以 XYZ 格式提供 GeoServer Tiles的主要内容,如果未能解决你的问题,请参考以下文章