From 34d03da4ab315d9e107eb021aa92d57a92c76843 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Thu, 10 Jan 2019 11:31:23 +0100
Subject: [PATCH] Include more office-tags (new category: law)

---
 communication.json    | 30 ++++++++++++++++--
 financial.json        | 56 ++++++++++++++++++++++++++++------
 index.json            |  3 ++
 law.json              | 59 +++++++++++++++++++++++++++++++++++
 organisations.json    |  5 +++
 public.json           | 13 ++++----
 tourism_services.json | 71 ++++++++++++++++++++++++++++++++++---------
 7 files changed, 203 insertions(+), 34 deletions(-)
 create mode 100644 law.json

diff --git a/communication.json b/communication.json
index dbdb662..83a90d3 100644
--- a/communication.json
+++ b/communication.json
@@ -25,14 +25,14 @@
             "node[amenity~'^(post_office|internet_cafe)$'];",
             "way[amenity~'^(post_office|internet_cafe)$'];",
             "relation[amenity~'^(post_office|internet_cafe)$'];",
-            "nwr[office~\"^(telecommunication|it)$\"];",
+            "nwr[office~\"^(telecommunication|it|newspaper|publisher|advertising_agency)$\"];",
             ");"
         ],
         "16": [
             "(node[amenity~'^(post_office|internet_cafe|post_box|telephone)$'];",
             "way[amenity~'^(post_office|internet_cafe)$'];",
             "relation[amenity~'^(post_office|internet_cafe)$'];",
-            "nwr[office~\"^(telecommunication|it)$\"];",
+            "nwr[office~\"^(telecommunication|it|newspaper|publisher|advertising_agency)$\"];",
             ");"
         ]
     },
@@ -95,13 +95,37 @@
             "zoom": 13
         },
         "office=telecommunication": {
-            "sign": "<img src='maki:building'>",
+            "sign": "<i class='fas fa-mobile-alt'></i>",
             "zoom": 13
         },
         "office=it": {
             "sign": "<i class='fas fa-desktop'></i>",
             "zoom": 13
         },
+        "office=newspaper": {
+            "sign": "<i class='fas fa-newspaper'></i>",
+            "zoom": 13
+        },
+        "office=publisher": {
+            "sign": "<i class='fas fa-book'></i>",
+            "zoom": 13
+        },
+        "office=advertising_agency": {
+            "sign": "<i class='fas fa-sign'></i>",
+            "zoom": 13
+        },
+        "office=public_relations": {
+            "sign": "<i class='fas fa-sign'></i>",
+            "zoom": 13
+        },
+        "office=audiovisual_production": {
+            "sign": "<i class='fas fa-film'></i>",
+            "zoom": 13
+        },
+        "office=film_production": {
+            "sign": "<i class='fas fa-film'></i>",
+            "zoom": 13
+        },
         "amenity=telephone": {
             "sign": "<img src='maki:telephone'>",
             "zoom": 16
diff --git a/financial.json b/financial.json
index b0ea37a..82b3bfb 100644
--- a/financial.json
+++ b/financial.json
@@ -31,37 +31,75 @@
             "node[amenity~\"^(bank|bureau_de_change|atm)$\"];",
             "way[amenity~\"^(bank|bureau_de_change|atm)$\"];",
             "relation[amenity~\"^(bank|bureau_de_change|atm)$\"];",
+            "node[office~\"^(financial|accountant|insurance|tax|tax_advisor)$\"];",
+            "way[office~\"^(financial|accountant|insurance|tax|tax_advisor)$\"];",
+            "relation[office~\"^(financial|accountant|insurance|tax|tax_advisor)$\"];",
             ")"
         ]
     },
     "feature": {
-        "description": "{{ tagTrans('amenity', tags.amenity) }}",
-        "markerSign": "{{ const[tags.amenity].sign|raw }}"
+        "pre": [
+            "{% if tags.amenity %}",
+            "  {% set key = 'amenity' %}",
+            "  {% set value = tags.amenity %}",
+            "{% else %}",
+            "  {% set key = 'office' %}",
+            "  {% set value = tags.office %}",
+            "{% endif %}"
+        ],
+        "description": "{{ tagTrans(key, value) }}",
+        "markerSign": "{{ const[key ~ '=' ~ value].sign|raw }}"
     },
     "info": [
         "<table>",
-        "{% for value, data in const %}",
+        "{% for kv, data in const %}",
         "{% if data.zoom <= map.zoom %}",
         "  <tr>",
         "    <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
-        "    <td>{{ tagTrans('amenity', value) }}</td>",
+        "    <td>",
+        "      {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}",
+        "    </td>",
         "  </tr>",
         "{% endif %}",
         "{% endfor %}",
         "</table>"
     ],
     "const": {
-        "atm": {
-            "sign": "<img src='maki:bank?size=11'>",
+        "amenity=atm": {
+            "sign": "<img data-src='maki:bank?size=11'>",
             "zoom": 15
         },
-        "bank": {
-            "sign": "<img src='maki:building'>",
+        "amenity=bank": {
+            "sign": "<img data-src='maki:building'>",
             "zoom": 14
         },
-        "bureau_de_change": {
+        "amenity=bureau_de_change": {
             "sign": "⇄",
             "zoom": 15
+        },
+        "office=financial": {
+            "sign": "<i class=\"fas fa-coins\"></i>",
+            "zoom": 15
+        },
+        "office=accountant": {
+            "sign": "<i class=\"fas fa-book\"></i>",
+            "zoom": 15
+        },
+        "office=insurance": {
+            "sign": "<i class=\"fas fa-file-signature\"></i>",
+            "zoom": 15
+        },
+        "office=tax": {
+            "sign": "%",
+            "zoom": 15
+        },
+        "office=tax_advisor": {
+            "sign": "<span style='color: green'>%</span>",
+            "zoom": 15
+        },
+        "office=cooperative": {
+            "sign": "<i class=\"fas fa-piggy-bank\"></i>",
+            "zoom": 15
         }
     }
 }
diff --git a/index.json b/index.json
index b2f3364..cff222f 100644
--- a/index.json
+++ b/index.json
@@ -95,6 +95,9 @@
                 {
                     "id": "financial"
                 },
+                {
+                    "id": "law"
+                },
                 {
                     "id": "public"
                 },
diff --git a/law.json b/law.json
new file mode 100644
index 0000000..02beff1
--- /dev/null
+++ b/law.json
@@ -0,0 +1,59 @@
+{
+    "type": "overpass",
+    "name": {
+        "en": "Law"
+    },
+    "query": {
+        "14": [
+            "(",
+            "node[amenity~\"^(courthouse)$\"];",
+            "way[amenity~\"^(courthouse)$\"];",
+            "relation[amenity~\"^(courthouse)$\"];",
+            "node[office~\"^(lawyer|notary)$\"];",
+            "way[office~\"^(lawyer|notary)$\"];",
+            "relation[office~\"^(lawyer|notary)$\"];",
+            ")"
+        ]
+    },
+    "feature": {
+        "pre": [
+            "{% if tags.amenity %}",
+            "  {% set key = 'amenity' %}",
+            "  {% set value = tags.amenity %}",
+            "{% else %}",
+            "  {% set key = 'office' %}",
+            "  {% set value = tags.office %}",
+            "{% endif %}"
+        ],
+        "description": "{{ tagTrans(key, value) }}",
+        "markerSign": "{{ const[key ~ '=' ~ value].sign|raw }}"
+    },
+    "info": [
+        "<table>",
+        "{% for kv, data in const %}",
+        "{% if data.zoom <= map.zoom %}",
+        "  <tr>",
+        "    <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
+        "    <td>",
+        "      {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}",
+        "    </td>",
+        "  </tr>",
+        "{% endif %}",
+        "{% endfor %}",
+        "</table>"
+    ],
+    "const": {
+        "amenity=courthouse": {
+            "sign": "<i class=\"fas fa-gavel\"></i>",
+            "zoom": 14
+        },
+        "office=lawyer": {
+            "sign": "⚖",
+            "zoom": 14
+        },
+        "office=notary": {
+            "sign": "<i class=\"fas fa-file-signature\"></i>",
+            "zoom": 14
+        }
+    }
+}
diff --git a/organisations.json b/organisations.json
index dcc1aa4..a6652b3 100644
--- a/organisations.json
+++ b/organisations.json
@@ -66,6 +66,11 @@
             "sign": "<i class='fas fa-people-carry'></i>",
             "zoom": 13
         },
+        "office=foundation": {
+            "priority": 0,
+            "sign": "<i class='fas fa-people-carry'></i>",
+            "zoom": 13
+        },
         "office=charity": {
             "priority": 0,
             "sign": "<i class='fas fa-hands-helping'></i>",
diff --git a/public.json b/public.json
index 63061c0..956e60a 100644
--- a/public.json
+++ b/public.json
@@ -21,9 +21,9 @@
     "query": {
         "12": [
             "(",
-            "node[amenity~'^(courthouse|embassy|public_building|townhall)$'];",
-            "way[amenity~'^(courthouse|embassy|public_building|townhall)$'];",
-            "relation[amenity~'^(courthouse|embassy|public_building|townhall)$'];",
+            "node[amenity~'^(embassy|public_building|townhall)$'];",
+            "way[amenity~'^(embassy|public_building|townhall)$'];",
+            "relation[amenity~'^(embassy|public_building|townhall)$'];",
             "node[amenity=recycling][recyling_type=centre];",
             "way[amenity=recycling][recyling_type=centre];",
             "relation[amenity=recycling][recyling_type=centre];",
@@ -32,9 +32,9 @@
         ],
         "16": [
             "(",
-            "node[amenity~'^(courthouse|embassy|public_building|townhall|clock|drinking_water|recycling|toilets)$'];",
-            "way[amenity~'^(courthouse|embassy|public_building|townhall|recycling|toilets)$'];",
-            "relation[amenity~'^(courthouse|embassy|public_building|townhall|recycling|toilets)$'];",
+            "node[amenity~'^(embassy|public_building|townhall|clock|drinking_water|recycling|toilets)$'];",
+            "way[amenity~'^(embassy|public_building|townhall|recycling|toilets)$'];",
+            "relation[amenity~'^(embassy|public_building|townhall|recycling|toilets)$'];",
             "node[drinking_water];",
             "nwr[office~\"^(government|administration)$\"];",
             ");"
@@ -80,7 +80,6 @@
         "</table>"
     ],
     "const": {
-        "amenity=courthouse": "⚖",
         "amenity=clock": "<i class='fa fa-clock-o' aria-hidden='true'></i>",
         "amenity=drinking_water": "<img data-src='maki:drinking-water'>",
         "amenity=embassy": "<img data-src='maki:embassy'>",
diff --git a/tourism_services.json b/tourism_services.json
index 721916e..d6e5ad2 100644
--- a/tourism_services.json
+++ b/tourism_services.json
@@ -25,6 +25,7 @@
             "node[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|motel|wilderness_hut)$\"];",
             "way[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|motel|wilderness_hut)$\"];",
             "relation[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|motel|wilderness_hut)$\"];",
+            "nwr[office~\"^(guide|tourism|tourist_accommodation)$\"];",
             ")"
         ],
         "16": [
@@ -32,67 +33,107 @@
             "node[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];",
             "way[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];",
             "relation[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];",
+            "nwr[office~\"^(guide|tourism|tourist_accommodation)$\"];",
             ")"
         ]
     },
     "feature": {
-        "description": "{{ tagTrans('tourism', tags.tourism) }}",
-        "markerSign": "{{ const[tags.tourism].sign|raw }}"
+        "pre": [
+            "{% if tags.tourism %}",
+            "  {% set key = 'tourism' %}",
+            "  {% set value = tags.tourism %}",
+            "{% else %}",
+            "  {% set key = 'office' %}",
+            "  {% set value = tags.office %}",
+            "{% endif %}"
+        ],
+        "description": [
+            "{% if key == 'office' %}",
+            "  {{ keyTrans('office') }} ({{ tagTrans('office', tags.office) }})",
+            "{% else %}",
+            "  {{ tagTrans(key, value) }}",
+            "{% endif %}"
+        ],
+        "markerSign": [
+            "{% set data = const[key ~ '=' ~ value] %}",
+            "{% if data %}",
+            "{{ data.sign|raw }}",
+            "{% endif %}"
+        ]
     },
     "info": [
         "<table>",
-        "{% for value, data in const %}",
+        "{% for kv, data in const %}",
         "{% if data.zoom <= map.zoom %}",
         "  <tr>",
         "    <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
-        "    <td>{{ tagTrans('tourism', value) }}</td>",
+        "    <td>",
+        "      {% if kv|split('=')[0] == 'office' %}",
+        "        {{ keyTrans('office') }}",
+        "        ({{ tagTrans('office', kv|split('=')[1]) }})",
+        "      {% else %}",
+        "        {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}",
+        "      {% endif %}",
+        "    </td>",
         "  </tr>",
         "{% endif %}",
         "{% endfor %}",
         "</table>"
     ],
     "const": {
-        "alpine_hut": {
+        "tourism=alpine_hut": {
             "sign": "🛌",
             "zoom": 13
         },
-        "apartment": {
+        "tourism=apartment": {
             "sign": "🛌",
             "zoom": 13
         },
-        "camp_site": {
+        "tourism=camp_site": {
             "sign": "â›ē",
             "zoom": 13
         },
-        "caravan_site": {
+        "tourism=caravan_site": {
             "sign": "â›ē",
             "zoom": 13
         },
-        "chalet": {
+        "tourism=chalet": {
             "sign": "🛌",
             "zoom": 13
         },
-        "guest_house": {
+        "tourism=guest_house": {
             "sign": "🛌",
             "zoom": 13
         },
-        "hostel": {
+        "tourism=hostel": {
             "sign": "🛌",
             "zoom": 13
         },
-        "hotel": {
+        "tourism=hotel": {
             "sign": "🛌",
             "zoom": 13
         },
-        "motel": {
+        "tourism=motel": {
             "sign": "🛌",
             "zoom": 13
         },
-        "wilderness_hut": {
+        "tourism=wilderness_hut": {
             "sign": "",
             "zoom": 13
         },
-        "information": {
+        "office=tourism": {
+            "sign": "<i class=\"fas fa-info-circle\"></i>",
+            "zoom": 13
+        },
+        "office=guide": {
+            "sign": "<i class=\"fas fa-flag\"></i>",
+            "zoom": 13
+        },
+        "office=tourist_accommodation": {
+            "sign": "🛌",
+            "zoom": 13
+        },
+        "tourism=information": {
             "sign": "â„šī¸",
             "zoom": 16
         }