使用OSM反向地理编码以获取最近的节点/路径信息

时间:2014-02-12 16:39:56

标签: matlab openstreetmap reverse-geocoding mapquest

我对地理编码很新,并且对所有信息都不知所措。我已经看到了类似的问题,但是我无法弄清楚解决方案。我希望你能提供帮助。

我有一个.csv文件,其中填充了超过一千个坐标(Lat,Long,Alt)。

我希望能够处理开源服务(OSM)上的坐标,以便能够了解车辆的街道类型。

EG。 (53.0066,-2.0031)通过OSM数据库扫描以找到最近的映射坐标:

<node id="781098178" visible="true" version="2" changeset="11563939" timestamp="2012-05-11T00:04:35Z" user="Mauls" uid="24119" lat="53.0002499" lon="-2.0056501"/>

然后标记为<tag k="highway" v="bus_stop"/>

我感兴趣的是高速公路和bus_stop信息作为输出。

我已阅读并使用了MapQuest API,但我无法使反向地理编码显示标记信息而不是整个地址。另外我不确定如何使matlab脚本工作。

我真的希望你能帮忙。对不起,如果我听起来很蠢!

非常感谢你......

1 个答案:

答案 0 :(得分:2)

你需要两个步骤。

第一步是对OSM最受欢迎的地理编码服务Nominatim进行反向地理编码调用。请注意,OSM的官方Nominatim实例具有相当严格的usage policy,因为它运行在受资助的服务器上。但您可以使用MapQuest's Nominatim instance替代install your own instance。由于Nominatim仅存储经过后处理的数据,因此它没有任何有关原始标记的信息。

第二步是提取osm_typeelement的类型,可以是nodewayrelation)和从Nominatim的结果中osm_id(唯一标识元素)。使用这些信息,您必须调用OSM API以获取有关相应元素的所有信息。这包括所有标签。

请注意,有一个类似的Question&Answer platform for OSM,可以让您覆盖OSM社区的更大部分。