以XYZ格式提供GeoServer Tiles

问题描述 投票:1回答:3

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

openlayers-3 tiles geoserver
3个回答
1
投票

GeoServer(实际上是GeoWebCache)可以提供可以服务器瓷砖的number of end points

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


1
投票

这可能为时已晚,这是我的geoserver层的XYZ URL:

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

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


0
投票

很酷,一个小时前我也有同样的问题。这是总结。

注意:

OP称为XYZ格式的是Google Maps普及的格式,其中全局/底图是服务器端分割的,并以{z}/{x}/{y}格式作为切片,其中缩放,纬度和经度在内部表示[1]。实际上,提供这种“格式”的服务的名称是Tile Map Service (TMS) [2],而GeoServer确实提供了这样的服务[3]。 XYZ只是用于访问TMS服务器的OpenLayers类的名称[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. 传单中的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
© www.soinside.com 2019 - 2024. All rights reserved.