2015-01-19 2 views
1

Я хотел бы получить список изменений в базе данных OSM в данной ограничивающей рамке между двумя заданными датами и воздействовать на заданный набор тегов.Запросы OpenStreetMap по истории?

Кто-нибудь знает, как это сделать?

Любой инструмент командной строки, webapp, такой как Overpass Turbo или API запросов, например XAPI?

Я видел, что можно получить историю карты по ее местоположению и уровню масштабирования (пример: http://www.openstreetmap.org/history#map=16/45.9605/5.3391), но это группы возвратов, которые содержат модификации вне текущей карты).

Я также видел history browser для просмотра истории данного объекта (узла, пути или отношения).

+0

crosspost: https://gis.stackexchange.com/questions/130907/osm-queries-on-history – scai

+0

Вы уже просмотрели API-интерфейс Overpass API [attic] (https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Attic_data_ .28.22date.22.29) и [diff] (https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Delta_between _two_dates_.28.22diff.22.29)? – scai

+0

этот «diff» - это именно то, что я искал, потому что данные, которые я хочу обновить, связаны с сценарием OverpassTurbo. Проблема заключается в том, что мои скрипты находятся в языке Overpass XML, и я не знаю, где написать выражение «diff». Например, у меня есть: <тип запроса = "путь"> <имеет-ку к = "шоссе" /> <режим печать = "тело" /> <рекурсия типа = "вниз" /> <режим печать = "скелет" порядок = "quadtile" /> – superrache

ответ

3

Лучшее решение мы нашли использовать Путепровод-Turbo «дифф» functionnality.

Вот сценарий 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> 

А вот эквивалент в Эстакада QL:

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

Overpass 'Чердак и Функция Delta может вам помочь. Он позволяет запрашивать исторические данные. Вы можете расширить любой стандартный запрос с помощью этих дополнительных фильтров.

Существует некоторая документация по этой теме http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Attic_data_.28.22date.22.29

Смежные вопросы