2013-10-04 155 views
1

我正在学习如何使用OpenStreetMaps。我刚刚下载了最新的OSM for Quebec。我想提取街道名称,每个街道名称都有经纬度和城市。我见过一些关于使用osmconvert和osmfilter的文档,但老实说,我的头不能包住它。OSM - 提取街道名称,经纬度和城市

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

+1

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

回答

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

相关问题