我想在PHP中使用TCPDF将地图图像添加到pdf文件中。 我怎样才能做到这一点?另外我想使用自定义磁贴提供程序(Mapnik,German Style)。是否有任何解决方案或方法可以使其发挥作用?
提前致谢!
答案 0 :(得分:1)
您可以使用本地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,你就可以获得俄罗斯其中一个州的vith 2样式的地图。因此,您需要改变风格和区域。
首先,改变风格
默认样式位于/home/osm/styles/openstreetmap-carto
子文件夹中。它在carto css中。所以得到"德国风格",如果它在carto css然后用carto编译。
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
如果它已在xml中作为mapnik渲染规则分发,请替换styles/openstreetmap-carto/osm.xml
。
第二步是使用osm2pgsql上传新的区域。默认osm样式的osm2pgsql样式文件(我认为德语样式使用相同的样式)是/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
)后,您将获得自己的风格,并使用svg,pdf和png导出。