1<Comment>/* Overpass samples taken from</Comment><br/> 2<Comment> https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL</Comment><br/> 3<Comment> https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_API_by_Example</Comment><br/> 4<Comment></Comment><br/> 5<Normal>*/</Normal><br/> 6<Normal></Normal><br/> 7<Comment>// single line comment with </Comment><Alert Level 2>TODO</Alert Level 2><Comment> alerts</Comment><br/> 8<Normal></Normal><br/> 9<Comment>/* multi-line comment with </Comment><Alert Level 3>###</Alert Level 3><Comment> alerts </Comment><Normal>*/</Normal><br/> 10<Normal></Normal><br/> 11<Normal>[</Normal><Queries>out</Queries><Normal>:json][</Normal><Named Argument>timeout</Named Argument><Normal>:</Normal><Decimal>25</Decimal><Normal>];</Normal><br/> 12<Comment>// gather results</Comment><br/> 13<Normal>(</Normal><br/> 14<Normal> </Normal><Comment>// query part for: “amenity=post_box”</Comment><br/> 15<Normal> </Normal><Queries>node</Queries><Normal>[</Normal><String>"amenity"</String><Normal>=</Normal><String>"post_box"</String><Normal>](</Normal><Float>52.0</Float><Normal>, </Normal><Float>13.0</Float><Normal>, </Normal><Float>54.0</Float><Normal>, </Normal><Float>13.5</Float><Normal>);</Normal><br/> 16<Normal> </Normal><Queries>way</Queries><Normal>[</Normal><String>"amenity"</String><Normal>=</Normal><String>"post_box"</String><Normal>](</Normal><Overpass Turbo Placeholders>{{bbox}}</Overpass Turbo Placeholders><Normal>);</Normal><br/> 17<Normal> </Normal><Queries>relation</Queries><Normal>[</Normal><String>"amenity"</String><Normal>=</Normal><String>"post_box"</String><Normal>](</Normal><Overpass Turbo Placeholders>{{bbox}}</Overpass Turbo Placeholders><Normal>);</Normal><br/> 18<Normal>);</Normal><br/> 19<Comment>// print results</Comment><br/> 20<Queries>out</Queries><Normal> </Normal><Evaluators>body</Evaluators><Normal>;</Normal><br/> 21<Normal>>;</Normal><br/> 22<Queries>out</Queries><Normal> </Normal><Evaluators>skel</Evaluators><Normal> </Normal><Evaluators>qt</Evaluators><Normal>;</Normal><br/> 23<Normal></Normal><br/> 24<Normal></Normal><br/> 25<Normal>[</Normal><Queries>out</Queries><Normal>:csv(::</Normal><Evaluators>type</Evaluators><Normal>, </Normal><String>"de:regionalschluessel"</String><Normal>, name,</Normal><br/> 26<Normal> ::</Normal><Evaluators>count</Evaluators><Normal>, ::</Normal><String>"count:nodes"</String><Normal>, ::</Normal><String>"count:ways"</String><Normal>, ::</Normal><String>"count:relations"</String><Normal>)];</Normal><br/> 27<Normal></Normal><br/> 28<Comment>//All areas with regional key (German: "Regionalschlüssel") starting with 057</Comment><br/> 29<Queries>area</Queries><Normal>[</Normal><String>"de:regionalschluessel"</String><Normal>~</Normal><String>"^057"</String><Normal>];</Normal><br/> 30<Normal></Normal><br/> 31<Comment>// Count the pharmacies in each area</Comment><br/> 32<Keyword>foreach</Keyword><Normal>->.regio(</Normal><br/> 33<Normal> </Normal><Comment>// display details for the current area</Comment><br/> 34<Normal> .regio </Normal><Queries>out</Queries><Normal>;</Normal><br/> 35<Normal></Normal><br/> 36<Normal> </Normal><Comment>// Collect all Nodes, Ways and Relations with amenity=pharmacy in the current area</Comment><br/> 37<Normal> ( </Normal><Queries>node</Queries><Normal>(</Normal><Queries>area</Queries><Normal>.regio)[amenity=pharmacy];</Normal><br/> 38<Normal> </Normal><Queries>way</Queries><Normal>(</Normal><Queries>area</Queries><Normal>.regio)[amenity=pharmacy];</Normal><br/> 39<Normal> </Normal><Queries>rel</Queries><Normal>(</Normal><Queries>area</Queries><Normal>.regio)[amenity=pharmacy];);</Normal><br/> 40<Normal></Normal><br/> 41<Comment>// Count the elements in the current area Area</Comment><br/> 42<Normal> </Normal><Queries>out</Queries><Normal> </Normal><Evaluators>count</Evaluators><Normal>;</Normal><br/> 43<Normal>);</Normal><br/> 44<Normal></Normal><br/> 45<Normal></Normal><br/> 46<Normal>[</Normal><Named Argument>timeout</Named Argument><Normal>:</Normal><Decimal>300</Decimal><Normal>]</Normal><br/> 47<Normal>[</Normal><Named Argument>bbox</Named Argument><Normal>:</Normal><Float>51.08282186160976</Float><Normal>,-</Normal><Float>12.8759765625</Float><Normal>,</Normal><Float>55.986091533808384</Float><Normal>,-</Normal><Float>1.86767578125</Float><Normal>]</Normal><br/> 48<Normal>[</Normal><Queries>out</Queries><Normal>:csv(::</Normal><Evaluators>id</Evaluators><Normal>, ::</Normal><Evaluators>type</Evaluators><Normal>, name, </Normal><String>"name:en"</String><Normal>, </Normal><String>"name:ga"</String><Normal>)];</Normal><br/> 49<Normal></Normal><br/> 50<Normal>( </Normal><Queries>node</Queries><Normal>[name][</Normal><String>"name:en"</String><Normal>][</Normal><String>"name:ga"</String><Normal>](</Normal><Keyword>if</Keyword><Normal>:(t[</Normal><String>"name"</String><Normal>] != t[</Normal><String>"name:en"</String><Normal>]) && (t[</Normal><String>"name"</String><Normal>] != t[</Normal><String>"name:ga"</String><Normal>]));</Normal><br/> 51<Normal> </Normal><Queries>way</Queries><Normal>[name][</Normal><String>"name:en"</String><Normal>][</Normal><String>"name:ga"</String><Normal>] (</Normal><Keyword>if</Keyword><Normal>:(t[</Normal><String>"name"</String><Normal>] != t[</Normal><String>"name:en"</String><Normal>]) && (t[</Normal><String>"name"</String><Normal>] != t[</Normal><String>"name:ga"</String><Normal>]));</Normal><br/> 52<Normal> </Normal><Queries>rel</Queries><Normal>[name][</Normal><String>"name:en"</String><Normal>][</Normal><String>"name:ga"</String><Normal>] (</Normal><Keyword>if</Keyword><Normal>:(t[</Normal><String>"name"</String><Normal>] != t[</Normal><String>"name:en"</String><Normal>]) && (t[</Normal><String>"name"</String><Normal>] != t[</Normal><String>"name:ga"</String><Normal>]));</Normal><br/> 53<Normal>);</Normal><br/> 54<Queries>out</Queries><Normal>;</Normal><br/> 55<Normal></Normal><br/> 56<Normal></Normal><br/> 57<Normal>[</Normal><Queries>out</Queries><Normal>:csv(</Normal><Evaluators>version</Evaluators><Normal>,</Normal><Evaluators>timestamp</Evaluators><Normal>,</Normal><Evaluators>changeset</Evaluators><Normal>,</Normal><Evaluators>count</Evaluators><Normal>)];</Normal><br/> 58<Queries>timeline</Queries><Normal>(</Normal><Queries>relation</Queries><Normal>,</Normal><Decimal>2632934</Decimal><Normal>);</Normal><br/> 59<Keyword>for</Keyword><Normal> (t[</Normal><String>"created"</String><Normal>])</Normal><br/> 60<Normal>{</Normal><br/> 61<Normal> </Normal><Keyword>retro</Keyword><Normal>(_.val)</Normal><br/> 62<Normal> {</Normal><br/> 63<Normal> </Normal><Queries>rel</Queries><Normal>(</Normal><Decimal>2632934</Decimal><Normal>);</Normal><br/> 64<Normal> </Normal><Queries>make</Queries><Normal> stat </Normal><Evaluators>version</Evaluators><Normal>=u(</Normal><Evaluators>version</Evaluators><Normal>()),</Normal><Evaluators>timestamp</Evaluators><Normal>=u(</Normal><Evaluators>timestamp</Evaluators><Normal>()),</Normal><Evaluators>changeset</Evaluators><Normal>=u(</Normal><Evaluators>changeset</Evaluators><Normal>()),</Normal><Evaluators>count</Evaluators><Normal>=u(</Normal><Evaluators>count_members</Evaluators><Normal>());</Normal><br/> 65<Normal> </Normal><Queries>out</Queries><Normal>;</Normal><br/> 66<Normal> }</Normal><br/> 67<Normal>}</Normal><br/> 68<Normal></Normal><br/> 69<Normal></Normal><br/> 70<Normal>[</Normal><Named Argument>timeout</Named Argument><Normal>:</Normal><Decimal>60</Decimal><Normal>];</Normal><br/> 71<Queries>area</Queries><Normal>[</Normal><String>"name"</String><Normal>=</Normal><String>"Mayenne"</String><Normal>]->.boundaryarea;</Normal><br/> 72<Queries>way</Queries><Normal>(</Normal><Queries>area</Queries><Normal>.boundaryarea)[</Normal><String>"building"</String><Normal>=</Normal><String>"church"</String><Normal>];</Normal><br/> 73<Normal> </Normal><Keyword>foreach</Keyword><Normal>(</Normal><br/> 74<Normal> </Normal><Queries>node</Queries><Normal>(w)->.d; </Normal><Comment>// determine all nodes of a way</Comment><br/> 75<Normal> .n </Normal><Queries>is_in</Queries><Normal>->.a;</Normal><br/> 76<Normal> </Normal><Queries>area</Queries><Normal>.a[name][boundary=administrative][admin_level~</Normal><String>"^[2-8]$"</String><Normal>] -> .a;</Normal><br/> 77<Normal> </Normal><Queries>out</Queries><Normal> </Normal><Evaluators>center</Evaluators><Normal>;</Normal><br/> 78<Normal> </Normal><Queries>convert</Queries><Normal> </Normal><Queries>way</Queries><Normal> ::=::,</Normal><br/> 79<Normal> ::</Normal><Evaluators>id</Evaluators><Normal> = </Normal><Evaluators>id</Evaluators><Normal>(),</Normal><br/> 80<Normal> </Normal><Queries>is_in</Queries><Normal>=a.</Normal><Evaluators>set</Evaluators><Normal>(</Normal><String>"{"</String><Normal> + t[</Normal><String>"admin_level"</String><Normal>] + </Normal><String>":"</String><Normal> + t[</Normal><String>"name"</String><Normal>] + </Normal><String>"}"</String><Normal>);</Normal><br/> 81<Normal></Normal><br/> 82<Normal> </Normal><Queries>out</Queries><Normal>;</Normal><br/> 83<Normal>);</Normal><br/> 84