地图创建分为几个步骤:
输入地理数据(具有适当标签的点,线和面)
样式(在地图上指定地图项外观)
渲染为栅格图像(使用渲染软件将地理数据和样式转换为图像)
您需要一个能够在易于使用的UI之后为您完成所有怪癖的工具。但不幸的是,没有这样的工具(希望会有)。因此,您必须为每个步骤选择一个专用工具。
我使用以下工具/工作流程的组合:
输入/下载地理数据
JOSM编辑器:
从osm服务器下载地图
编辑地图
将您的更改上传到osm服务器(为什么不共享您的工作?)
将地图保存到* .osm文件
PostGIS / osm2pgsql
根据需要更新导入样式文件
将地图导入本地服务器
如果您不想共享您的工作,则可以设置本地OSM服务器并使其与JOSM一起使用(无需将映射保存到* .osm文件,而无需使用osm2pgsql)。但是,如果您使用OSM数据的一部分,请注意该许可证。
造型
样式包括两个步骤:
设置层/数据源
自定义线条/多边形/点/文本输出。
有两种样式来设置地图样式:“原始” mapnik样式文件和CartoCSS。
Mapnik是为OSM网站提供动力的渲染库。
设置和编辑mapnik样式文件
在mapnik查看器中打开样式文件
“原始” Mapnik样式文件难以编辑,而CartoCSS则更简单。CartoCSS(以前为Cascadenik)可转换为mapnik样式文件。Tilemill是我用来编辑/预览CartoCSS的工具。
瓦工。
在Tilemill中样式/预览地图
导出到mapnik * .xml文件。
渲染图
Mapnik的自定义python脚本
更新边界框/缩放级别/大小
将地图渲染为* .png文件。
[可选]使您的地图在线
当然,您可以在地图上使用较大的* .png文件,但请想象下载该文件需要多长时间!因此,您可以将地图分成不同缩放级别的图块。
Tilemill-> Mapnik-> MBTiles-> Mapbox
您可以使用Tilemill和MapBox将地图联机。
不幸的是,要根据新的OSM编辑来更新地图,您仍然必须在本地下载和渲染。
因此,有一个更好的解决方案:CartoDB。CartoDB支持CartoCSS。有了它,您不需要在本地安装任何东西。只需将您的数据导入其中,使用CartoCSS设置样式,然后单击共享按钮即可。但是有一个免费的数据库大小限制。但是由于它是开源的,所以您可以自己托管它。还有另一个限制:您只能可视化点,线或多边形。
聚苯乙烯
每个工具都有其自身的局限性,因此请尝试进行实验。