Hi Roland. Great additions again.
I cannot access https://dev.overpass-api.de/api_new_feat/ to test.

Hi have the message Forbidden, You don't have permission to access 
/api_new_feat/on this server.

 
Pierre 
 

    Le vendredi 12 janvier 2018 00:33:33 HNE, Roland Olbricht 
<roland.olbri...@gmx.de> a écrit :  
 
 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@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk
  
_______________________________________________
talk mailing list
talk@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk

Reply via email to