Я хочу добавить изображение карты в pdf файл, используя TCPDF в PHP. Как я могу это сделать? Кроме того, я хочу использовать пользовательский поставщик плитки (Mapnik, German Style). Есть ли какие-либо решения или апробации, чтобы заставить это работать?
Заранее спасибо!
Вы можете сделать это с помощью локальной копии mapnik и Nik4.
Вам понадобиться:
Это довольно сложно, но есть и хорошие новости: вы можете использовать изображение Docker dkiselev/nik4web с предустановленными postgis, mapnik, nik4 и некоторыми другими вещами.
sudo apt-get install docker
# as root
docker pull dkiselev/nik4web
Создайте контейнер и запустите его
docker run -i -t -P dkiselev/nik4web /bin/bash
#from container
startup
После этого откройте localhost/nik4, и вы получите карту с двумя стилями, для одного из штатов в России. Поэтому вам нужно будет изменить стиль и область.
Во-первых, измените стиль
Стиль по умолчанию находится в /home/osm/styles/openstreetmap-carto
. Это в carto css. Так что получите "немецкий стиль", если он в carto css затем скомпилирует его с карточкой.
su - osm
# save default compiled osm style
mv styles/openstreetmap-carto/osm.xml styles/openstreetmap-carto/osm-def.xml
# compile german style
carto german_stye.mml > german_style_mapnik.xml
#replace default osm style
mv -f german_style_mapnik.xml styles/openstreetmap-carto/osm-def.xml
Если он распространен уже как правила отображения mapnik в xml, замените styles/openstreetmap-carto/osm.xml
.
Шаг sencond - загрузить новую территорию с помощью osm2pgsql. Файл стиля osm2pgsql для стандартного стиля osm (я думаю, что немецкий стиль использует тот же самый) - /home/osm/styles/openstreetmap-carto/openstreetmap-carto.style
osm2pgsql --create --slim --cache 1000 --number-processes 2 --hstore --style /home/osm/styles/openstreetmap-carto/openstreetmap-carto.style --multi-geometry --database gis /path/to/osm/data/for/your/region.pbf
Это все. После того, как вы запустите postgresql, apache2 и mapnik (см. /bin/startup
Bin /bin/startup
), вы получите свой собственный osm со своим стилем и с svg, pdf и png export.