OSM - 提取街道名称,纬度/经度和城市

时间:2013-10-04 02:59:17

标签: xml json csv openstreetmap

我正在学习如何使用OpenStreetMaps。我刚下载了最新的OSM for Quebec。我想提取街道名称,每个都有纬度/经度和城市。我已经看过几个关于使用osmconvert和osmfilter的文档,但老实说无法绕过它。

我不介意它输出的格式,无论是XML,CSV还是JSON(首选JSON)。执行事物的最佳方法是什么?任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

我建议您使用您提到的标准工具,osmosis这样可以方便地从您的导出中选择街道。

对于将XML后处理为CSV或其他内容,有各种路由。不久前我写了一些希望小而且格格不入的东西:a simple XSLT transform to extract pub names and lat/lon from an OSM file into a CSV file。它完全符合您的要求,除了它不能识别每个点的城市。

如果你看一下那里链接的XSLT文件,你会发现有一些硬编码的与酒吧相关的东西,比如

<xsl:when test="tag[@k='amenity'][@v='pub']">

将这些更改为您想要的内容,例如

<xsl:when test="tag[@k='highway'][@v='secondary']">

您将能够使用如下命令提取数据:

xsltproc osm_streets_csv.xslt quebec.xml > quebec_streets.csv

为了找到任何给定纬度/经度的城市,您可以使用MapIt Global service