【问题标题】:OSM - Extract Street Name, Lat/Long, and CityOSM - 提取街道名称、纬度/经度和城市
【发布时间】:2013-10-10 22:25:54
【问题描述】:

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

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

【问题讨论】:

  • 您是否意识到街道不是由单个纬度/经度坐标组成,而是由多个连续的坐标组成?那街道可能跨越几个城市?

标签: xml json csv openstreetmap


【解决方案1】:

我建议使用您提到的标准工具和osmosis,这对于从导出中选择街道非常方便。

为了将 XML 后处理为 CSV 或其他格式,有多种途径。不久前,我写了一些小而易懂的东西:a simple XSLT transform to extract pub names and lat/lon from an OSM file into a CSV file。它完全符合您的要求,只是它没有为每个点识别城市。

如果您查看其中链接的 XSLT 文件,您会发现有一些硬编码的 pub 相关内容,例如

<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

【讨论】:

    猜你喜欢
    • 2011-06-12
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2011-09-26
    • 1970-01-01
    相关资源
    最近更新 更多