OpenStreetMap 查询历史?

OpenStreetMap queries on history?

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

有人知道怎么做吗?

任何命令行工具、Web 应用程序(例如 Overpass Turbo)或查询 API(例如 XAPI)?

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

我也看到了history browser浏览给定对象(节点、方式或关系)的历史记录。

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

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

我们找到的最佳解决方案是使用 Overpass-Turbo "diff" 功能。

这是 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;