[OSM-talk] Tool for tag tracking
Marco
constable13 at gmail.com
Fri Jan 12 18:36:54 UTC 2018
Wow, that's nice, thanks!
Il 12/01/2018 06:31, Roland Olbricht ha scritto:
> Hi,
>
> for the sake of completeness, I would like to give a preview what is
> in the development for Overpass API:
>
> Similar to this one
>
>> https://help.openstreetmap.org/questions/54268/search-for-objects-created-after-a-certain-date-with-overpass
>>
>
> you could nowadays search with https://overpass-turbo.eu/s/uF0
> for all highways that have changed since the beginning of the year in
> and around Antwerp:
>
> [diff:"2018-01-01T00:00:00Z"];
> way[highway]({{bbox}});
> out geom;
>
> I suggest the "out geom" mode over recursing to the nodes. Overpass
> Turbo can handle both, but the "out geom" means that there is exactly
> one item per object in question. No unchanged nodes get involved.
>
> The above result is bloated by objects like
> https://www.openstreetmap.org/way/469659128/history
> It has no change to its highway value but just lost the unrelated tag
> "horse=no".
>
> Here comes a feature in the staging area for the next version into
> play. We do not ask for all changes but just for changes that affect
> the tag "highway": https://overpass-turbo.eu/s/uF2
>
> [diff:"2018-01-01T00:00:00Z"];
> way[highway]({{bbox}});
> compare(delta:t[highway]);
> out geom;
> {{data:overpass,server=https://dev.overpass-api.de/api_new_feat/}}
>
> The line "compare(delta:t[highway]);" reads as: keep only objects that
> have changed in the value "t[highway]". The last line is a directive
> to execute the query on the development server.
>
> We could even drill down further and retrieve only objects that have
> been created or deleted: https://overpass-turbo.eu/s/uF4
>
> [diff:"2018-01-01T00:00:00Z"];
> way[highway]({{bbox}});
> compare(delta:0);
> out geom;
> {{data:overpass,server=https://dev.overpass-api.de/api_new_feat/}}
>
> This is admittedly hacky and the final implementation might have a
> more straightforward term. The condition for "compare" always
> evaluates to the empty string for non-existing objects. And for
> existing objects to "0" as we just have specified, hence it can tell
> apart existing from non-existing objects.
>
> Can we separate the deleted from the created objects? Yes,
> https://overpass-turbo.eu/s/uF7 delivers only created objects:
>
> [diff:"2018-01-01T00:00:00Z"];
> way[highway]({{bbox}});
> compare(delta:0)
> (
> way._(newer:"2018-01-01T00:00:01Z");
> out geom;
> );
> {{data:overpass,server=https://dev.overpass-api.de/api_new_feat/}}
>
> And https://overpass-turbo.eu/s/uFa delivers only deleted objects:
>
> [diff:"2018-01-01T00:00:00Z"];
> way[highway]({{bbox}});
> compare(delta:0)
> (
> ( ._; - way._(newer:"2018-01-01T00:00:01Z"); );
> out geom;
> );
> {{data:overpass,server=https://dev.overpass-api.de/api_new_feat/}}
>
> Please note that these are not yet in a published release because
> there may come up a reason to change the syntax. If that happens, I
> will write a mail here again. For example, it might be more concise to
> do these tasks with a three argument "changed" condition. But I have
> not evaluated yet whether this leads to a logically sound syntax.
>
> Best regards,
> Roland
>
>
> _______________________________________________
> talk mailing list
> talk a openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk
More information about the talk
mailing list