Перейти к основному содержимому

GIS

Сервис ГИС предоставляет собой картографический сервер с целью расширения функциональности Pamir в области СРМ.

Данный сервис включает в себя:

  • тайловый сервер (tileserver), реализующий хостинг наборов векторных и растовых карт (тайлов);
  • вспомогательные утилиты, с помощью которых возможно создавать свои наборы тайлов.

Тайловый сервер устанавливается на тот же сервер, что и Pamir, и обслуживает порт 8080. Таким образом обеспечивается быстрая работа сервиса (сетевые запросы только внутри машины) и удовлетворение политики CORS.

Сервис поставляется со своим собственным Makefile, а управление сервисом осуществляется с помощью команды make.

Ниже описаны основные моменты по работе с сервисом.

Запуск сервиса ГИС

Запуск сервиса ГИС осуществляется в следующей последовательности:

  1. Получить архив с сервисом ГИС и распаковать его
cd /home/pamir # (путь, где будет расположен каталог с pamir-gis)
tar -xzpf pamir-gis.tar.gz
  1. В файле конфигурации стилей заменить адрес, на котором будет запущен сервис ГИС
editor /home/pamir/pamir-gis/build/style/osm-liberty/style.json
Пример
build/style/osm-liberty/style.json
{
"version": 8,
"name": "OSM Liberty",
"metadata": {
"maputnik:license": "https://github.com/maputnik/osm-liberty/blob/gh-pages/LICENSE.md",
"maputnik:renderer": "mbgljs",
"pamir-gis:version": "1.x"
},
"sources": {
"pamir-gis": {
"type": "vector",
"maxzoom": 15,
"tileSize": 512,
"tiles": [
- "http://tileserver.pamir.int/data/russia/{z}/{x}/{y}.pbf"
+ "http://192.168.0.123:8080/data/russia/{z}/{x}/{y}.pbf"
]
},
"natural_earth_shaded_relief": {
"type": "raster",
"maxzoom": 6,
"tileSize": 256,
"tiles": [
- "http://tileserver.pamir.int/data/natural_earth_2_shaded_relief/{z}/{x}/{y}.webp"
+ "http://192.168.0.123:8080/data/natural_earth_2_shaded_relief/{z}/{x}/{y}.webp"
]
}
},
...

Заменить адрес http://tileserver.pamir.int на адрес сервера, например, http://192.168.0.123:8080 и сохранить файл.

  1. Импортировать образы контейнеров в локальный реестр
cd /home/pamir/pamir-gis
docker load -i pamir-gis-tools.tar.gz
docker load -i tileserver-gl.tar.gz
  1. Запустить сервис, используя команду make
make start-tileserver

Остановка сервиса ГИС

Остановка сервиса ГИС (например, для обновления) осуществляется командой:

make stop-tileserver

Настройка проксирования виджета карт на сервис ГИС

  1. Добавить в файл конфигурации vhost правило обработки запросов к ГИС
cd /home/pamir/.pamir
editor data/nginx/vhost/default
data/nginx/vhost/default
location ^~ /styles/osm-liberty/ {
proxy_pass http://localhost:8080/styles/osm-liberty/;
}
  1. Перезапустить сервис frontend, используя утилиту pamirctl
pamirctl restart frontend

Troubleshooting

Автоматический запуск сервиса ГИС после перезапуска сервера

Поведение проявляется на первых инсталляциях сервиса и исправляется следующим образом:

  1. В директории pamir-gis, в файл docker-compose.yml, нужно добавить политику перезапуска restart: unless-stopped
cd /home/pamir/pamir-gis
editor docker-compose.yml
Пример
docker-compose.yml
...
services:
...
tileserver-gl:
+ restart: unless-stopped
image: "pamir.io/tileserver-gl:latest"
command:
- --port
- "${TPORT:-8080}"
- --config
- "/style/config.json"
ports:
- "${TPORT:-8080}:${TPORT:-8080}"
volumes:
- ./data:/data
- ./style:/style
- ./build:/build
...
  1. Перезапустить сервис ГИС
make start-tileserver

После перезапуска машины сервис ГИС запустится автоматически.

Справочная информация

  • тайлы карт хранятся в директории pamir-gis/data (файлы с расширением .mbtiles);
  • шрифты хранятся в директории pamir-gis/data/fonts (если их не будет, make будет пытаться загрузить их из интернета);
  • стили карт (комбинации векторных и/или растовых тайлов) хранятся в директории pamir-gis/build/style (суб-директории с названием стиля);
  • конфигурация Tileserver-Gl хранится в следующем файле pamir-gis/style/config.json, там настраиваются пути к компонентам (тайлам, стилям, шрифтам), домены, настройки форматов, подключаемые стили карт и тайлы, которые будут хоститься сервисом ГИС.