Задать вопрос
@Demon_block-sha256

Ошибка 400: Problem communicating with GeoServer при запросе векторных тайлов pbf в Geoserver docker.osgeo.org/geoserver:2.27.0?

Использую 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
  • Вопрос задан
  • 33 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@Demon_block-sha256 Автор вопроса
Вариант решения: установить как дополнительные расширения из локальной папки https://github.com/geoserver/docker?tab=readme-ov-file.
Скачал расширение соответствующее версии geoserer "geoserver-2.27.0-vectortiles-plugin"
Сначала попробовал через имеющийся в контейнере install-extensions.sh загрузить расширение командой
/opt/install-extensions.sh geoserver-2.27.0-vectortiles-plugin.zip

получил в логах
Starting installation of extensions
Finished installation of extensions

но ничего не изменилось
затем пересоздал контейнер добавив в docker-compose
volumes:
      - ./data_dir:/opt/geoserver_data
      - ./geoserver-extensions:/opt/additional_libs

geoserver-extensions - созданная мной папка с распакованными файлами архива.
В логах при запуске сервера нашёл записи
2025-07-12 22:58:26 Starting installation of extensions
2025-07-12 22:58:26 Finished installation of extensions
2025-07-12 22:58:26 Installed 5 JAR extension file(s) from the additional libs folder

Первые 2 записи видимо это всё тот-же установщик из инструкции, а третья - последнее изменение.
Как результат, всё заработало!
Первое что бросилось в глаза это форматы изображений тамилов в параметрах кэша тайлов, записи вверху, как и в документации https://docs.geoserver.org/stable/en/user/extensio...
application/json;type=geojson
application/json;type=topojson
application/json;type=utfgrid
application/vnd.mapbox-vector-tile
Записи application/json;type=geojson и application/vnd.mapbox-vector-tile были сразу но 1 была сверху, 2 снизу.
Как вариант
- INSTALL_EXTENSIONS = "true"
- STABLE_EXTENSIONS = "vectortiles"

ставит не всё и нужно дополнительное расширение или это ошибка данного образа
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы