<html><head></head><body><div style="font-family:verdana, helvetica, sans-serif;font-size:13px;">Hi Roland. Great additions again.<div><div><br></div><div>I cannot access https://dev.overpass-api.de/api_new_feat/ to test.<br></div><div><br></div><div>Hi have the message Forbidden, You don't have permission to access /api_new_feat/
on this server.</div><div><br></div><div><br></div><div class="ydp61afba6fsignature"><span style="font-style:italic;color:rgb(0, 0, 191);font-weight:bold;"> <br><font face="garamond, new york, times, serif">Pierre </font><br></span></div></div>
            <div><br></div><div><br></div>
            
            <div id="ydp54900300yahoo_quoted_6632220230" class="ydp54900300yahoo_quoted">
                <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                    
                    <div>
                        Le vendredi 12 janvier 2018 00:33:33 HNE, Roland Olbricht <roland.olbricht@gmx.de> a écrit :
                    </div>
                    <div><br></div>
                    <div><br></div>
                    <div><div dir="ltr">Hi,<br clear="none"><br clear="none">for the sake of completeness, I would like to give a preview what is in <br clear="none">the development for Overpass API:<br clear="none"><br clear="none">Similar to this one<br clear="none"><br clear="none">> <a shape="rect" href="https://help.openstreetmap.org/questions/54268/search-for-objects-created-after-a-certain-date-with-overpass" rel="nofollow" target="_blank">https://help.openstreetmap.org/questions/54268/search-for-objects-created-after-a-certain-date-with-overpass</a><br clear="none"><br clear="none">you could nowadays search with <a shape="rect" href="https://overpass-turbo.eu/s/uF0" rel="nofollow" target="_blank">https://overpass-turbo.eu/s/uF0</a><br clear="none">for all highways that have changed since the beginning of the year in <br clear="none">and around Antwerp:<br clear="none"><br clear="none">[diff:"2018-01-01T00:00:00Z"];<br clear="none">way[highway]({{bbox}});<br clear="none">out geom;<br clear="none"><br clear="none">I suggest the "out geom" mode over recursing to the nodes. Overpass <br clear="none">Turbo can handle both, but the "out geom" means that there is exactly <br clear="none">one item per object in question. No unchanged nodes get involved.<br clear="none"><br clear="none">The above result is bloated by objects like<br clear="none"><a shape="rect" href="https://www.openstreetmap.org/way/469659128/history" rel="nofollow" target="_blank">https://www.openstreetmap.org/way/469659128/history</a><br clear="none">It has no change to its highway value but just lost the unrelated tag <br clear="none">"horse=no".<br clear="none"><br clear="none">Here comes a feature in the staging area for the next version into play. <br clear="none">We do not ask for all changes but just for changes that affect the tag <br clear="none">"highway": <a shape="rect" href="https://overpass-turbo.eu/s/uF2" rel="nofollow" target="_blank">https://overpass-turbo.eu/s/uF2</a><br clear="none"><br clear="none">[diff:"2018-01-01T00:00:00Z"];<br clear="none">way[highway]({{bbox}});<br clear="none">compare(delta:t[highway]);<br clear="none">out geom;<br clear="none">{{data:overpass,server=<a shape="rect" href="https://dev.overpass-api.de/api_new_feat/" rel="nofollow" target="_blank">https://dev.overpass-api.de/api_new_feat/</a>}}<br clear="none"><br clear="none">The line "compare(delta:t[highway]);" reads as: keep only objects that <br clear="none">have changed in the value "t[highway]". The last line is a directive to <br clear="none">execute the query on the development server.<br clear="none"><br clear="none">We could even drill down further and retrieve only objects that have <br clear="none">been created or deleted: <a shape="rect" href="https://overpass-turbo.eu/s/uF4" rel="nofollow" target="_blank">https://overpass-turbo.eu/s/uF4</a><br clear="none"><br clear="none">[diff:"2018-01-01T00:00:00Z"];<br clear="none">way[highway]({{bbox}});<br clear="none">compare(delta:0);<br clear="none">out geom;<br clear="none">{{data:overpass,server=<a shape="rect" href="https://dev.overpass-api.de/api_new_feat/" rel="nofollow" target="_blank">https://dev.overpass-api.de/api_new_feat/</a>}}<br clear="none"><br clear="none">This is admittedly hacky and the final implementation might have a more <br clear="none">straightforward term. The condition for "compare" always evaluates to <br clear="none">the empty string for non-existing objects. And for existing objects to <br clear="none">"0" as we just have specified, hence it can tell apart existing from <br clear="none">non-existing objects.<br clear="none"><br clear="none">Can we separate the deleted from the created objects? Yes,<br clear="none"><a shape="rect" href="https://overpass-turbo.eu/s/uF7 " rel="nofollow" target="_blank">https://overpass-turbo.eu/s/uF7 </a>delivers only created objects:<br clear="none"><br clear="none">[diff:"2018-01-01T00:00:00Z"];<br clear="none">way[highway]({{bbox}});<br clear="none">compare(delta:0)<br clear="none">(<br clear="none">   way._(newer:"2018-01-01T00:00:01Z");<br clear="none">   out geom;<br clear="none">);<br clear="none">{{data:overpass,server=<a shape="rect" href="https://dev.overpass-api.de/api_new_feat/" rel="nofollow" target="_blank">https://dev.overpass-api.de/api_new_feat/</a>}}<br clear="none"><br clear="none">And <a shape="rect" href="https://overpass-turbo.eu/s/uFa " rel="nofollow" target="_blank">https://overpass-turbo.eu/s/uFa </a>delivers only deleted objects:<br clear="none"><br clear="none">[diff:"2018-01-01T00:00:00Z"];<br clear="none">way[highway]({{bbox}});<br clear="none">compare(delta:0)<br clear="none">(<br clear="none">   ( ._; - way._(newer:"2018-01-01T00:00:01Z"); );<br clear="none">   out geom;<br clear="none">);<br clear="none">{{data:overpass,server=<a shape="rect" href="https://dev.overpass-api.de/api_new_feat/" rel="nofollow" target="_blank">https://dev.overpass-api.de/api_new_feat/</a>}}<br clear="none"><br clear="none">Please note that these are not yet in a published release because there <br clear="none">may come up a reason to change the syntax. If that happens, I will write <br clear="none">a mail here again. For example, it might be more concise to do these <br clear="none">tasks with a three argument "changed" condition. But I have not <br clear="none">evaluated yet whether this leads to a logically sound syntax.<br clear="none"><br clear="none">Best regards,<br clear="none">Roland<div class="ydp54900300yqt2001828072" id="ydp54900300yqtfd72759"><br clear="none"><br clear="none"><br clear="none">_______________________________________________<br clear="none">talk mailing list<br clear="none"><a shape="rect" href="mailto:talk@openstreetmap.org" rel="nofollow" target="_blank">talk@openstreetmap.org</a><br clear="none"><a shape="rect" href="https://lists.openstreetmap.org/listinfo/talk" rel="nofollow" target="_blank">https://lists.openstreetmap.org/listinfo/talk</a><br clear="none"></div></div></div>
                </div>
            </div></div></body></html>