我在我的服务器上使用GeoServer和种子图块。瓷砖创建成功,但我不知道目录结构遵循哪种模式...(即... / EPSG_4326_05 / 0_0 / 00_06.png)我想在OpenLayers应用程序中使用瓷砖,我想要使用使用XYZ模式的OSM源,其通常用作用于瓦片服务的URL模式。有没有办法告诉地理服务器它应该用XYZ结构创建瓷砖?
GeoServer(实际上是GeoWebCache)可以提供可以服务器瓷砖的number of end points。
这些都不使用所谓的XYZ系统(因为这不是标准),但OpenLayers有一个Tiled Layer,可以使用TileImage source处理TMS和WMTS服务器。
这可能为时已晚,这是我的geoserver层的XYZ URL:
http://localhost/gwc/tms/1.0.0/gis:service@EPSG%3A900913@png/{z}/{x}/{-y}.png
当您通过URL请求时,Geoserver会自动缓存切片。
很酷,一个小时前我也有同样的问题。这是总结。
注意:
OP称为
XYZ
格式的是Google Maps普及的格式,其中全局/底图是服务器端分割的,并以{z}/{x}/{y}
格式作为切片,其中缩放,纬度和经度在内部表示[1]。实际上,提供这种“格式”的服务的名称是Tile Map Service (TMS)
[2],而GeoServer确实提供了这样的服务[3]。XYZ
只是用于访问TMS
服务器的OpenLayers类的名称[4]。
话虽如此,这里是你如何在你的GeoServer和OpenLayers之间运行TMS服务:
启用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)
希望有所帮助。干杯。
参考文献: