OpenStreetMap 查询历史?

sup*_*che 2 openstreetmap overpass-api

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

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

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

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

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

sup*_*che 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>
Run Code Online (Sandbox Code Playgroud)

这是 Overpass QL 中的等效项:

[diff:"2012-09-14T15:00:00Z","2014-09-21T15:00:00Z"];
(
  way["highway"]({{bbox}});
);
out body;
>;
out skel qt;
Run Code Online (Sandbox Code Playgroud)