GIS
Сервис ГИС предоставляет собой картографический сервер с целью расширения функциональности Pamir в области СРМ.
Данный сервис включает в себя:
- тайловый сервер (tileserver), реализующий хостинг наборов векторных и растовых карт (тайлов);
- вспомогательные утилиты, с помощью которых возможно создавать свои наборы тайлов.
Тайловый сервер устанавливается на тот же сервер, что и Pamir, и обслуживает порт 8080
. Таким образом обеспечивается
быстрая работа сервиса (сетевые запросы только внутри машины) и удовлетворение политики CORS.
Сервис поставляется со своим собственным Makefile
, а управление сервисом осуществляется с помощью команды make
.
Ниже описаны основные моменты по работе с сервисом.
Запуск сервиса ГИС
Запуск сервиса ГИС осуществляется в следующей последовательности:
- Получить архив с сервисом ГИС и распаковать его
cd /home/pamir # (путь, где будет расположен каталог с pamir-gis)
tar -xzpf pamir-gis.tar.gz
- В файле конфигурации стилей заменить адрес, на котором будет запущен сервис ГИС
editor /home/pamir/pamir-gis/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
и сохранить файл.
- Импортировать образы контейнеров в локальный реестр
cd /home/pamir/pamir-gis
docker load -i pamir-gis-tools.tar.gz
docker load -i tileserver-gl.tar.gz
- Запустить сервис, используя команду
make
make start-tileserver
Остановка сервиса ГИС
Остановка сервиса ГИС (например, для обновления) осуществляется командой:
make stop-tileserver
Настройка проксирования виджета карт на сервис ГИС
- Добавить в файл конфигурации vhost правило обработки запросов к ГИС
cd /home/pamir/.pamir
editor data/nginx/vhost/default
location ^~ /styles/osm-liberty/ {
proxy_pass http://localhost:8080/styles/osm-liberty/;
}
- Перезапустить сервис frontend, используя утилиту
pamirctl
pamirctl restart frontend
Troubleshooting
Автоматический запуск сервиса ГИС после перезапуска сервера
Поведение проявляется на первых инсталляциях сервиса и исправляется следующим образом:
- В директории
pamir-gis
, в файлdocker-compose.yml
, нужно добавить политику перезапускаrestart: unless-stopped
cd /home/pamir/pamir-gis
editor 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
...
- Перезапустить сервис ГИС
make start-tileserver
После перезапуска машины сервис ГИС запустится автоматически.
Справочная информация
- тайлы карт хранятся в директории
pamir-gis/data
(файлы с расширением .mbtiles); - шрифты хранятся в директории
pamir-gis/data/fonts
(если их не будет, make будет пытаться загрузить их из интернета); - стили карт (комбинации векторных и/или растовых тайлов) хранятся в директории
pamir-gis/build/style
(суб-директории с названием стиля); - конфигурация Tileserver-Gl хранится в следующем файле
pamir-gis/style/config.json
, там настраиваются пути к компонентам (тайлам, стилям, шрифтам), домены, настройки форматов, подключаемые стили карт и тайлы, которые будут хоститься сервисом ГИС.