可以创建自己的OSM XML文件吗?如果是这样,如何使用<关系>标签?

时间:2017-05-24 21:52:38

标签: xml openstreetmap

如您所知,OpenStreetMap(OSM)数据集是公开可用的,但仅包含由志愿者上传的随机标记的节点/坐标。我有一个包含节点和方式的干净的城市级数据集(例如,在" Main Street",路段内有几个坐标),我想建立一个自己的OSM XML文件研究项目。有可能吗?

在提出问题之前,我找到了此链接(http://wiki.openstreetmap.org/wiki/OSM_XML),并制作了一个仅包含< node >< way >标记的OSM XML文件。但是,当我调用osrm-extract时,我得到XML解析错误,该错误会抛出osmium::xml_error的实例。如果是由于没有< relation >引起的,在这种情况下我是否需要使用此标记?如何为我自建的OSM XML文件构建关系?

提前感谢您的回答:-)

2 个答案:

答案 0 :(得分:2)

这首先与关系无关。您的节点看起来很奇怪,需要修复。正确的属性名称为lat / lon ,而不是示例中的lat / lng 。有了这个改变,我就可以在JOSM(Java OpenStreetMap Editor)中打开你的文件。

BTW:我的OSRM版本触发了您的示例文件的另一个错误:called after throwing an instance of 'osmium::invalid_location' - 明确指向错误的OSM XML文件格式。不知道为什么你会收到不同的错误信息。

示例:

之前(不正确)

lat="37.7976165" lng="-122.4512781"

之后(更正)

lat="37.7976165" lon="-122.4512781"

请注意将此数据上传到OpenStreetMap,因为版权和机械编辑政策可能存在问题!

答案 1 :(得分:1)

当浏览osmium check-refs时,会发现一些错误:

Found a node after a way.
This command expects the input file to be ordered: First nodes in order of ID,
then ways in order of ID, then relations in order of ID.

Node IDs out of order.
This command expects the input file to be ordered: First nodes in order of ID,
then ways in order of ID, then relations in order of ID.

通过osmium show

lon/lat:   214.7483647,214.7483647 INVALID LOCATION!

正如mmd所指出的,应该使用lat / lon 而不是lat / lng