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