vladimir-rybalko / polar-vector-tiles

Pipline creating vector tiles in polar projection

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Описание проблемы

Для создания векторных плиток удобно использовать стек программного обеспечения openmaptiles, так как он позволяет импортировать данные OSM в БД и подготовить их для дальнейшего использования, например в tileserver-gl. Но такой подход не позволяет изменить проекцию результирующей плитки. Так как OpenLayers умеет перепроецировать только растровые тайлы, то векторные тайлы должны быть подготовлены другим способом. Maptiler заявляют о том что могут готовить плитки в любой произвольной проекции, но как это сделать самостоятельно информации нет, поэтому был принят путь комбинированного подхода. Т.е. импортирование данных ОСМ производится по схеме openmaptiles через imposm, но трансформация и нарезка на плитки делается через t-rex, который понимает произвольные тайловые сетки и проекции.

Окружение

В окружении должно быть установлено следующее ПО:

  1. Docker - инструмент контейнеризации программного обеспечений.
  2. T-rex - сервис для нарезки векторных плиток, может быть установлен через docker.
  3. Mbutil - утилита для импорта и экспорта векторных плиток в mbtiles(NoSQL DB). Используется для простоты переноса векторных плиток.

Скрипты

  1. openmaptiles - в директории находятся конфигурационные файлы из папки build. Так как исходные скрипты содержали триггеры обновления данных, то они были "вырезаны". Также отключена загрузка объектов карты для крупных масштабов.
  2. t-rex - в директории конфиг с описанием тайловой сетки для полярной системы координат.

Последовательность действий

  1. Клонируем репозиторий openmaptiles git clone https://github.com/openmaptiles/openmaptiles
  2. Пересобираем скрипты make
  3. Создаем контейнер с чистым PG make start-db
  4. Заменяем скрипты в директории build на файлы из openmaptiles этого репозиторий.
  5. Импортируем данные naturalearthdata make import-data
  6. Импортируем данные ОСМ. Для этого в папке data должен быть актуальный pbf make import-osm
  7. Импортируем данные wikidata make import-wikidata
  8. Запускаем постобработку данных make import-sql
  9. Запускаем анализ таблиц PG make analyze-db
  10. Запускаем генерацию векторных плиток в полярной проекции t_rex generate -c ./t-rex/3576.toml --maxzoom 14 --minzoom 0 --overwrite true --progress --tileset openmaptiles Предварительно проверяем на каком порту запущен PG и правим строку подключения в ./t-rex/3576.toml
  11. Импортируем данные в mbtiles mb-util /data/openmaptiles/mvtcache osm.mbtiles
  12. Переносим osm.mbtiles в директорию data для tileserver-gl.

About

Pipline creating vector tiles in polar projection


Languages

Language:PLpgSQL 100.0%