我正在学习如何使用OpenStreetMaps。我刚刚下载了最新的OSM for Quebec。我想提取街道名称,每个街道名称都有经纬度和城市。我见过一些关于使用osmconvert和osmfilter的文档,但老实说,我的头不能包住它。OSM - 提取街道名称,经纬度和城市
我不介意它输出的格式,不管它是XML,CSV还是JSON(首选JSON)。什么是执行事情的最佳方式?任何帮助表示赞赏!
我正在学习如何使用OpenStreetMaps。我刚刚下载了最新的OSM for Quebec。我想提取街道名称,每个街道名称都有经纬度和城市。我见过一些关于使用osmconvert和osmfilter的文档,但老实说,我的头不能包住它。OSM - 提取街道名称,经纬度和城市
我不介意它输出的格式,不管它是XML,CSV还是JSON(首选JSON)。什么是执行事情的最佳方式?任何帮助表示赞赏!
我会建议使用你提到的标准工具,而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。
您是否意识到街道不是由单个纬度/经度坐标组成的,而是由多个连续的坐标组成的?那街道可能跨越几个城市? – tyr