Подавать плитки GeoServer в формате XYZ

Я использую GeoServer и начальные тайлы на моем сервере. Плитки созданы успешно, но я не знаю, по какому шаблону следует структура каталогов... (т.е. .../EPSG_4326_05/0_0/00_06.png) Я хочу использовать плитки в приложении OpenLayers, и там я хочу использовать Источник OSM, использующий XYZ-шаблон, который обычно используется в качестве шаблона URL для размещения листов. Есть ли способ сообщить геосерверу, что он должен создавать плитки со структурой XYZ?

2 ответа

Круто, у меня был тот же вопрос час назад. Здесь идет резюме.

Замечания:

Что ОП называет XYZ Формат - это формат, популяризируемый Google Maps, где глобальная / базовая карта разделяется на стороне сервера и используется в качестве листов в {z}/{x}/{y} формат, в котором масштаб, широта и долгота представлены внутри [1]. По сути, название службы, предоставляющей такой "формат", Tile Map Service (TMS)[2], и GeoServer предоставляет такую ​​услугу [3]. XYZ это просто имя класса в OpenLayers, используемого для доступа к TMS сервер [4].

При этом, вот как вы должны сделать, чтобы служба TMS работала между вашим GeoServer и OpenLayers:

  • Проверьте, имеет ли GeoServer ' Caching Defaults 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).

Затем вам просто нужно вызвать один из этих TileMaps из OpenLayer:

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)

Надеюсь, это поможет. Приветствия.


Refs:

  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 в Leaflet: https://leafletjs.com/examples/wms/wms.html
  4. TMS / XYZ OpenLayers: https://openlayers.org/en/latest/apidoc/module-ol_source_XYZ-XYZ.html

Это может быть слишком поздно, вот мой XYZ URL для слоя геосервера:

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

Geoserver будет кэшировать плитки автоматически при запросе через URL.

GeoServer (на самом деле GeoWebCache) может предоставить несколько конечных точек, которые могут сервировать плитки.

Ни один из них не использует так называемую систему XYZ (потому что это не стандарт), но OpenLayers имеет Tiled Layer, который может обрабатывать серверы TMS и WMTS с использованием источника TileImage.

Другие вопросы по тегам