Использую geoserver в docker с подключённым расширением vectortiles, пытался вывести на картах leaflet векторные тайлы с помощью leaflet.vectorgrid, но получил ошибку 400: Problem communicating with GeoServer. В настройках кэширования слоя установлен application/vnd.mapbox-vector-tile.
Документация сгенерированная GeoWebCache для моего слоя tms:
<TileMapService version="1.0.0" services="http://localhost:8080/geoserver/gwc/">
<Title>Tile Map Service</Title>
<Abstract>A Tile Map Service served by GeoWebCache</Abstract>
<TileMaps>
<TileMap title="OtuData" srs="EPSG:4326" profile="local" href="http://localhost:8080/geoserver/gwc/service/tms/1.0.0/postgis%3AOtuData@EPSG%3A4326@pbf"/>
<TileMap title="OtuData" srs="EPSG:4326" profile="local" href="http://localhost:8080/geoserver/gwc/service/tms/1.0.0/postgis%3AOtuData@EPSG%3A4326@png"/>
<TileMap title="OtuData" srs="EPSG:4326" profile="local" href="http://localhost:8080/geoserver/gwc/service/tms/1.0.0/postgis%3AOtuData@EPSG%3A4326@jpeg"/>
<TileMap title="OtuData" srs="EPSG:900913" profile="local" href="http://localhost:8080/geoserver/gwc/service/tms/1.0.0/postgis%3AOtuData@EPSG%3A900913@pbf"/>
<TileMap title="OtuData" srs="EPSG:900913" profile="local" href="http://localhost:8080/geoserver/gwc/service/tms/1.0.0/postgis%3AOtuData@EPSG%3A900913@png"/>
<TileMap title="OtuData" srs="EPSG:900913" profile="local" href="http://localhost:8080/geoserver/gwc/service/tms/1.0.0/postgis%3AOtuData@EPSG%3A900913@jpeg"/>
</TileMaps>
</TileMapService>
пример запроса:
http://localhost:8080/geoserver/gwc/service/tms/1.0.0/postgis%3AOtuData@EPSG%3A900913@pbf/7/110/83.pbf
если в запросе поменять pbf на png, то всё отображается.
Содержание docker-compose:
services:
geoserver:
image: docker.osgeo.org/geoserver:2.27.0
ports:
- "8080:8080"
environment:
- GEOSERVER_ADMIN_USER=admin
- GEOSERVER_ADMIN_PASSWORD=geoserver
- SKIP_DEMO_DATA = true
- POSTGRES_HOST=postgis
- POSTGRES_PORT=5432
- POSTGRES_DB=gis_db
- POSTGRES_USERNAME=user
- POSTGRES_PASSWORD=123
- POSTGRES_JNDI_ENABLED=false
- INSTALL_EXTENSIONS = "true"
- STABLE_EXTENSIONS = "vectortiles"
# Включаем CORS:
- CORS_ENABLED=true
- CORS_ALLOWED_ORIGINS=http://localhost:3000
- CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS
- CORS_ALLOWED_HEADERS=Origin,Accept,Content-Type,Authorization
- CORS_ALLOW_CREDENTIALS=false
- PROXY_BASE_URL=http://localhost:8080/geoserver
volumes:
- ./data_dir:/opt/geoserver_data