2

我想在给定的边界框中,在两个给定的日期之间获取 OSM 数据库的修改列表,并影响给定的一组标签。

有谁知道如何做到这一点?

任何命令行工具、Webapp(如 Overpass Turbo)或查询 API(如 XAPI)?

我已经看到可以通过其位置和缩放级别获取地图的历史记录(例如:http ://www.openstreetmap.org/history#map=16/45.9605/5.3391 ),但这会返回包含修改的修改组在当前地图之外)。

我还看到了一个历史浏览器来浏览给定对象(节点、方式或关系)的历史。

4

2 回答 2

5

我们找到的最佳解决方案是使用 Overpass-Turbo“差异”功能。

这是我用来在给定边界框中更改道路的 XML 脚本,在 2 个日期之间:

<osm-script date="2014-09-21T15:00:00Z" from="2012-09-14T15:00:00Z">
  <union>
    <query type="way">
      <has-kv k="highway"/>
    <bbox-query {{bbox}}/>
    </query>
  </union>
  <print mode="body"/>
  <recurse type="down"/>
  <print mode="skeleton" order="quadtile"/>
</osm-script>

这是 Overpass QL 中的等价物:

[diff:"2012-09-14T15:00:00Z","2014-09-21T15:00:00Z"];
(
  way["highway"]({{bbox}});
);
out body;
>;
out skel qt;
于 2015-01-28T09:40:23.787 回答
0

Overpass 的阁楼三角洲功能可能会对您有所帮助。它允许您查询历史数据。您可以使用这些附加过滤器扩展任何标准查询。

关于该主题有一些文档http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Attic_data_.28.22date.22.29

于 2015-01-21T10:00:26.553 回答