以 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的主要内容,如果未能解决你的问题,请参考以下文章

015Geoserver中使用GeoWebCache(GWC))

独立部署GeoWebCache

geoserver 可以发布cad啥格式的文件

Openlayers API-XYZ

Vue中使用geoserver中得wmts

Vue中使用geoserver中的wmts(EPSG:900913)