如何基于OSM数据绘制和可视化自定义地图?


35

我希望能够将特定区域的openstreetmap数据用作源,并从基础结构改进的地图(主要是道路)中“借鉴”。

我希望它是自托管的(不破坏真实OSM服务器上的任何数据),希望在编辑过程中具有很大的灵活性和细节级别,并且以一种漂亮的方式呈现它会很好。

我对许多GIS软件不熟悉。实际上,以OSM数据作为源并不重要,它也可以是卫星图像。重要的事情-灵活的绘图必须绑定到地图的真实坐标和可视化。

我从哪里开始?

希望这个问题在这里有意义:)


您在看什么平台?可以使用Google地图绘制形状吗?
Jared Updike 2010年

Jared,您是说Google Maps的简单“我的地图”界面吗?这对我来说还不够:)我需要更多细节。还是您还有其他意思?
arconaut

您想在世界的哪个地方这样做?在世界某些地方,公共领域有很多道路数据。
djq 2010年

Answers:


16

可以解析OpenStreetMap .osm XML数据类型并将其呈现在许多软件包中。对于有些交钥匙的自定义地图瓷砖抽屉,我建议:http : //tiledrawer.com-一种使用Amazon EC2的产品,由Michal Migurski编写,该产品在此线程中提供了其他指针:)

您还可以查看“构建自己的OpenStreetMap服务器” http://weait.com/content/build-your-own-openstreetmap-server。 它使用Ubuntu 10.04 / PostGIS / Mapnik堆栈。

当然,在构建之前,请务必先查看OpenStreetMap许可证。http://wiki.openstreetmap.org/wiki/OpenStreetMap_License


谢谢,我自己遇到过TileDrawer,但是据我了解,我需要为此使用Amazon EC2实例。我暂时不想这样做,也许我太懒了:)
arconaut

我读过您可以使用VirtualBox在自己的计算机上运行EC2映像。
詹姆斯

Tiledrawer的网站被遗弃,Github仓库仍然存在,但也处于非活动状态:github.com/migurski/Tile-Drawer(另请参见OSM Wiki
chrki

11

我确切地找到了我所需要的:Maperitive。该应用程序可以加载OSM数据(* .osm可以由JOSM fi保存),并根据非常灵活和可自定义的规则渲染漂亮的图像。


我发现如果尝试加载.osm.bz2文件或什至是.osm.pbf文件,Mapperitive会挂起。我尝试过的文件大约为185MB,所以我真正需要的不是Planet.osm.bz2文件(19GB!)的大小。您是如何加载文件的?
Drew Noakes

德鲁,我想我只尝试了较小的区域。
arconaut 2012年

Maperitive是封闭源代码,建立在.Net之上,在Linux上不起作用。但是,与Mapnik相比,它绝对具有一个优势:易于设计。
Vanuan

3
我建议将TileMill作为开源替代方案。
Vanuan

9

两种可能性,取决于您要编辑多少OSM数据本身。

一种是托管您自己的OSM服务器,其中包含可以自由编辑的数据副本。用于此目的的软件称为“ The Rails Port”,可在以下位置找到:http : //wiki.openstreetmap.org/wiki/The_Rails_Port

另一个方法是使用OSM的平铺制图作为您自己数据的背景。我没有资格回答这个问题,但是您可能会发现QGIS(http://www.qgis.org)之类的工具可以提供基于OSM基本图的新形状跟踪的功能。


8

地图创建分为几个步骤:

  • 输入地理数据(具有适当标签的点,线和面)
  • 样式(在地图上指定地图项外观)
  • 渲染为栅格图像(使用渲染软件将地理数据和样式转换为图像)

您需要一个能够在易于使用的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设置样式,然后单击共享按钮即可。但是有一个免费的数据库大小限制。但是由于它是开源的,所以您可以自己托管它。还有另一个限制:您只能可视化点,线或多边形。

聚苯乙烯

每个工具都有其自身的局限性,因此请尝试进行实验。



3

如果您正在寻找一个好的自定义地图编辑器,请查看OCAD,它是一个专业的地图绘制软件。下载页面上有免费的旧版本。

它没有对OSM的任何特殊支持,但是您始终可以使用从OSM导出的图像作为背景。


3

您可以使用一个更简单的选项来处理OSM格式的“开放街道地图”数据。您可以从安全软件(www.safe.com)试用FME。

有关更多信息,您可以在此处阅读有关OSM支持的信息:http : //blog.safe.com/2010/03/sharing-your-data-on-openstreetmap/

我已经使用FME几次来创建演示数据集,以使用FME和OSM数据对我的区域进行训练

〜SRG



2

您可以使用Cloudmade(OSM的商业分支)中的样式编辑器

免费注册并个人使用。

有了非常好的用户界面,便可以创建自己的地图样式。使用颜色等自定义地图后,您可以使用它嵌入或创建指向具有自定义地图的页面的链接。

请参阅博客文章 http://mapperz.blogspot.com/2009/03/cloudmade-map-editor.html (此处有更多更新)


Cloudmade不属于OpenStreetMap:CloudMade是否属于OpenStreetMap?
13年

1

正式的OSM地图使用TileMill进行样式设置,并使用Mapnik进行渲染。两种工具都非常强大和灵活。什么对OSM有好处,应该对您有好处!

不幸的是,至少要渲染OSM数据时,TileMillis的设置过程很复杂。对于UbuntuMac有很多描述,但是论坛中的注释显示,该过程在Windows上比较棘手。

您可以在TopoMapCreatorWiki中找到有关在Windows上使用TileMill进行地图渲染的详细说明。

它遵循经典过程:

  • 步骤A:下载并安装所需的软件(主要是Postgresql / PostGis数据库)
  • 步骤B:下载OSM数据并将其导入数据库
  • 步骤C:下载和处理陆地多边形
  • 步骤D:创建TileMill项目
  • 步骤E:使用TileMill设置样式并导出地图

TopoMapCreator Wiki上的更多内容


1

使用OSM数据制作自定义地图的另一种方法是使用Mapsense.js库和Mapsense Earth矢量图块。在http://styler.mapsense.co/上有一个用于选择颜色的UI,在developer.mapsense.co/examples/上有演示CSS和javascript的演示。

这样的API的好处之一是,您可以使用javascript / d3添加其他任何内容(卫星图像,其他geo / topojson等)。

全面披露:我在Mapsense工作。:)


0

如果您只想创建静态地图图像,则可能需要检查这种方法以使用.osm来创建.svg inkscape文件,但是这种方法有点慢。然后,您可以打开.svg,或者要将其转换为其他任何格式(png?),甚至将其加载到3d studio或Blender:)...

(此外,JOSM似乎有一个执行osmarender的插件,但这次我没有设法运行它……)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.