diff --git a/assets/layers/dogpark/dogpark.json b/assets/layers/dogpark/dogpark.json
new file mode 100644
index 0000000000..dacbfaedef
--- /dev/null
+++ b/assets/layers/dogpark/dogpark.json
@@ -0,0 +1,144 @@
+{
+ "id": "dogpark",
+ "source": {
+ "osmTags": {
+ "or": [
+ "leisure=dog_park",
+ {
+ "and": [
+ "leisure=park",
+ "dog=unleashed"
+ ]
+ }
+ ]
+ }
+ },
+ "minzoom": 10,
+ "presets": [
+ {
+ "title": {
+ "en": "a dog park",
+ "da": "en hundeskov"
+ },
+ "tags": [
+ "leisure=dog_park"
+ ],
+ "description": {
+ "en": "A place for dogs, where they can run unleashed",
+ "da": "En hundeskov eller hundegård beregnet til hunde, hvor de kan løbe uden snor"
+ }
+ }
+ ],
+ "name": {
+ "en": "dog parks",
+ "da": "hundeskove"
+ },
+ "title": {
+ "render": {
+ "en": "dog park",
+ "da": "hundeskov"
+ },
+ "mappings": [
+ {
+ "if": "name~*",
+ "then": {
+ "*": "{name}"
+ }
+ }
+ ]
+ },
+ "mapRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "icon": "./assets/themes/dog/dog-park.svg",
+ "iconSize": "40,40,center",
+ "label": {
+ "mappings": [
+ {
+ "if": "name~*",
+ "then": "
{name}
"
+ }
+ ]
+ }
+ },
+ {
+ "color": "#ff0",
+ "width": 5
+ }
+ ],
+ "tagRenderings": [
+ {
+ "id": "dogpark-fenced",
+ "mappings": [
+ {
+ "if": "barrier=fence",
+ "then": {
+ "en": "This dogpark is fenced all around",
+ "da": "Denne hundskov er indhegnet"
+ }
+ },
+ {
+ "if": "barrier=no",
+ "then": {
+ "en": "This dogpark is not fenced all around",
+ "da": "Denne hundskov er ikke indhegnet"
+ }
+ }
+ ],
+ "question": {
+ "en": "It this dog park fenced in?",
+ "da": "Er denne hundeskov indhegnet?"
+ }
+ },
+ {
+ "id": "smalldogs",
+ "mappings": [
+ {
+ "if": "small_dog=separate",
+ "then": {
+ "en": "Have separate area for puppies and small dogs",
+ "da": "Har en indhegning til hvalpe og små hunde"
+ }
+ },
+ {
+ "if": "small_dog=shared",
+ "then": {
+ "en": "Does not have a separate area for puppies and small dogs",
+ "da": "Har ikke en indhegning til hvalpe og små hunde"
+ }
+ }
+ ],
+ "question": {
+ "en": "Does this dog park have a separate fenced in area for small dogs and puppies?",
+ "da": "Har denne hundeskov et separat indhegnet område for små hunde og hvalpe (hvalpegård)?"
+ }
+ },
+ {
+ "question": {
+ "en": "What is the name of this dog park?",
+ "da": "Hvad hedder denne hundeskov?"
+ },
+ "render": {
+ "en": "The name of this dog park is {name}",
+ "de": "Denne hundeskov hedder {name}"
+ },
+ "freeform": {
+ "key": "name"
+ },
+ "id": "Name"
+ },
+ {
+ "id": "dogarea",
+ "render": {
+ "en": "This dogpark is {_surface:ha} ha big",
+ "da": "Denne hundeskov er på {_surface:ha} hektar"
+ },
+ "condition": "_surface:ha!=0"
+ },
+ "reviews",
+ "images"
+ ]
+}
\ No newline at end of file
diff --git a/assets/layers/veterinary/veterinary.json b/assets/layers/veterinary/veterinary.json
new file mode 100644
index 0000000000..d9eb27b224
--- /dev/null
+++ b/assets/layers/veterinary/veterinary.json
@@ -0,0 +1,93 @@
+{
+ "id": "veterinary",
+ "source": {
+ "osmTags": {
+ "or": [
+ "amenity=veterinary"
+ ]
+ }
+ },
+ "minzoom": 10,
+ "presets": [
+ {
+ "title": {
+ "en": "a veterianarian",
+ "da": "en dyrlæge"
+ },
+ "tags": [
+ "amenity=veterinary",
+ "pet=dog"
+ ],
+ "description": {
+ "en": "a veterianarian, that treats dogs",
+ "da": "En dyrlæge, der behandler hunde"
+ }
+ }
+ ],
+ "name": {
+ "en": "veterinary",
+ "da": "dyrlæge"
+ },
+ "title": {
+ "render": {
+ "en": "Veterinary",
+ "da": "dyrlæge"
+ },
+ "mappings": [
+ {
+ "if": "name~*",
+ "then": {
+ "*": "{name}"
+ }
+ }
+ ]
+ },
+ "mapRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "icon": "./assets/themes/dog/vet.svg",
+ "iconSize": "30,40,center",
+ "label": {
+ "mappings": [
+ {
+ "if": "name~*",
+ "then": "{name}
"
+ }
+ ]
+ },
+ "iconBadges": [
+ {
+ "if": "opening_hours~*",
+ "then": "isOpen"
+ }
+ ]
+ },
+ {
+ "color": "#ff0",
+ "width": 5
+ }
+ ],
+ "tagRenderings": [
+ "website",
+ "reviews",
+ "phone",
+ "opening_hours",
+ {
+ "question": {
+ "en": "What is the name of this veterinarian?",
+ "da": "Hvad hedder denne dyrlæ?"
+ },
+ "render": {
+ "en": "The name of this veterinarian is {name}",
+ "de": "Denne dyrlæ hedder {name}"
+ },
+ "freeform": {
+ "key": "name"
+ },
+ "id": "vetName"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/themes/dog/dog.json b/assets/themes/dog/dog.json
deleted file mode 100644
index c29b167fdb..0000000000
--- a/assets/themes/dog/dog.json
+++ /dev/null
@@ -1,412 +0,0 @@
-{
- "id": "dog",
- "maintainer": "Niels Elgaard Larsen",
- "version": "1",
- "title": {
- "en": "dog POIs",
- "da": "hundesteder"
- },
- "description": {
- "en": "Hundsteder",
- "da": "Hundsteder"
- },
- "icon": "./assets/themes/dog/dog-park.svg",
- "startZoom": 10,
- "startLat": 55,
- "startLon": 12,
- "layers": [
- {
- "id": "dogpark",
- "source": {
- "osmTags": {
- "#": "For a description on which tags are possible, see https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md",
- "or": [
- "leisure=dog_park",
- {
- "and": [
- "leisure=park",
- "dog=unleashed"
- ]
- }
- ]
- }
- },
- "minzoom": 10,
- "presets": [
- {
- "title": {
- "en": "a dog park",
- "da": "en hundeskov"
- },
- "tags": [
- "leisure=dog_park"
- ],
- "description": {
- "en": "A place for dogs, where they can run unleashed",
- "da": "En hundeskov eller hundegård beregnet til hunde, hvor de kan løbe uden snor"
- }
- }
- ],
- "name": {
- "en": "dog parks",
- "da": "hundeskove"
- },
- "title": {
- "render": {
- "en": "dog park",
- "da": "hundeskov"
- },
- "mappings": [
- {
- "if": "name~*",
- "then": {
- "*": "{name}"
- }
- }
- ]
- },
- "mapRendering": [
- {
- "location": [
- "point",
- "centroid"
- ],
- "icon": "./assets/themes/dog/dog-park.svg",
- "iconSize": "40,40,center",
- "label": {
- "mappings": [
- {
- "if": "name~*",
- "then": "{name}
"
- }
- ]
- }
- },
- {
- "#": "Rendering of a line",
- "color": "#ff0",
- "width": 5
- }
- ],
- "tagRenderings": [
- {
- "id": "dogpark-fenced",
- "mappings": [
- {
- "if": "barrier=fence",
- "then": {
- "en": "This dogpark is fenced all around",
- "da": "Denne hundskov er indhegnet"
- }
- },
- {
- "if": "barrier=no",
- "then": {
- "en": "This dogpark is not fenced all around",
- "da": "Denne hundskov er ikke indhegnet"
- }
- }
- ],
- "question": {
- "en": "It this dog park fenced in?",
- "da": "Er denne hundeskov indhegnet?"
- }
- },
- {
- "id": "smalldogs",
- "mappings": [
- {
- "if": "small_dog=separate",
- "then": {
- "en": "Have separate area for puppies and small dogs",
- "da": "Har en indhegning til hvalpe og små hunde"
- }
- },
- {
- "if": "small_dog=shared",
- "then": {
- "en": "Does not have a separate area for puppies and small dogs",
- "da": "Har ikke en indhegning til hvalpe og små hunde"
- }
- }
- ],
- "question": {
- "en": "Does this dog park have a separate fenced in area for small dogs and puppies?",
- "da": "Har denne hundeskov et separat indhegnet område for små hunde og hvalpe (hvalpegård)?"
- }
- },
- {
- "question": {
- "en": "What is the name of this dog park?",
- "da": "Hvad hedder denne hundeskov?"
- },
- "render": {
- "en": "The name of this dog park is {name}",
- "de": "Denne hundeskov hedder {name}"
- },
- "freeform": {
- "key": "name"
- },
- "id": "Name"
- },
- {
- "id": "dogarea",
- "render": {
- "en": "This dogpark is {_surface:ha} ha big",
- "da": "Denne hundeskov er på {_surface:ha} hektar"
- },
- "condition": "_surface:ha!=0"
- },
- "reviews",
- "images"
- ]
- },
- {
- "builtin": "food",
- "override": {
- "id": "dogfoodb",
- "name": {
- "en": "Dog friendly eateries",
- "da": "Hundevenlige madsteder"
- },
- "mapRendering": [
- {
- "location": [
- "point",
- "centroid"
- ],
- "icon": "./assets/themes/dog/dog-food.svg",
- "iconSize": "30,30,center"
- }
- ],
- "=presets": [],
- "source": {
- "=osmTags": {
- "and": [
- {
- "or": [
- "amenity=restaurant",
- "amenity=cafe"
- ]
- },
- {
- "or": [
- "dog=unleashed",
- "dog=leashed",
- "dog=yes"
- ]
- }
- ]
- }
- }
- }
- },
- {
- "builtin": "shops",
- "id": "dogshop",
- "override": {
- "id": "dogshop",
- "name": {
- "en": "dog-friendly shop",
- "da": "hundevenlig butik"
- },
- "title": {
- "render": {
- "en": "dog-friendly shop",
- "da": "hundevenlig butik"
- },
- "mappings": [
- {
- "if": "name~*",
- "then": {
- "*": "{name}"
- }
- }
- ]
- },
- "mapRendering": [
- {
- "location": [
- "point",
- "centroid"
- ],
- "icon": {
- "render": "./assets/themes/dog/dogshop.svg",
- "mappings": [
- {
- "if": {
- "and": [
- "shop=pet"
- ]
- },
- "then": "./assets/themes/dog/petshop.svg"
- }
- ]
- },
- "iconSize": "30,30,center"
- },
- {
- "#": "Rendering of a line",
- "color": "#ff0",
- "width": 5
- }
- ],
- "presets": [
- {
- "tags": [
- "shop=yes",
- "dog=yes"
- ]
- }
- ],
- "source": {
- "=osmTags": {
- "and": [
- "shop~*",
- {
- "or": [
- "dog=leashed",
- "dog=yes",
- "shop=pet"
- ]
- }
- ]
- }
- }
- }
- },
- {
- "id": "veterinary",
- "source": {
- "osmTags": {
- "or": [
- "amenity=veterinary"
- ]
- }
- },
- "minzoom": 10,
- "presets": [
- {
- "title": {
- "en": "a veterianarian",
- "da": "en dyrlæge"
- },
- "tags": [
- "amenity=veterinary",
- "pet=dog"
- ],
- "description": {
- "en": "a veterianarian, that treats dogs",
- "da": "En dyrlæge, der behandler hunde"
- }
- }
- ],
- "name": {
- "en": "veterinary",
- "da": "dyrlæge"
- },
- "title": {
- "render": {
- "en": "Veterinary",
- "da": "dyrlæge"
- },
- "mappings": [
- {
- "if": "name~*",
- "then": {
- "*": "{name}"
- }
- }
- ]
- },
- "mapRendering": [
- {
- "location": [
- "point",
- "centroid"
- ],
- "icon": "./assets/themes/dog/vet.svg",
- "iconSize": "30,40,center",
- "label": {
- "mappings": [
- {
- "if": "name~*",
- "then": "{name}
"
- }
- ]
- },
- "iconBadges": [
- {
- "if": "opening_hours~*",
- "then": "isOpen"
- }
- ]
- },
- {
- "color": "#ff0",
- "width": 5
- }
- ],
- "tagRenderings": [
- "website",
- "reviews",
- "phone",
- "opening_hours",
- {
- "question": {
- "en": "What is the name of this veterinarian?",
- "da": "Hvad hedder denne dyrlæ?"
- },
- "render": {
- "en": "The name of this veterinarian is {name}",
- "de": "Denne dyrlæ hedder {name}"
- },
- "freeform": {
- "key": "name"
- },
- "id": "vetName"
- }
- ]
- },
- {
- "builtin": "food",
- "override": {
- "minzoom": 19,
- "filter": null,
- "name": null
- }
- },
- {
- "builtin": "waste_basket",
- "override": {
- "minzoom": 16,
- "filter": null,
- "name": null
- }
- },
- {
- "builtin": "shops",
- "override": {
- "minzoom": 19,
- "filter": null,
- "presets": [
- {
- "title": {
- "en": "dog-friendly shop",
- "da": "EN hundevenlig butik"
- },
- "tags": [
- "dog=yes",
- "shop=yes"
- ],
- "description": {
- "en": "A shop whery you can bring a dog almost everywhere",
- "da": "En butik hvor man kan tage en hund med næsten overalt"
- }
- }
- ],
- "name": null
- }
- }
- ]
-}
diff --git a/assets/themes/dog/dog-food.svg b/assets/themes/pets/dog-food.svg
similarity index 100%
rename from assets/themes/dog/dog-food.svg
rename to assets/themes/pets/dog-food.svg
diff --git a/assets/themes/dog/dog-park.svg b/assets/themes/pets/dog-park.svg
similarity index 100%
rename from assets/themes/dog/dog-park.svg
rename to assets/themes/pets/dog-park.svg
diff --git a/assets/themes/dog/dogshop.svg b/assets/themes/pets/dogshop.svg
similarity index 100%
rename from assets/themes/dog/dogshop.svg
rename to assets/themes/pets/dogshop.svg
diff --git a/assets/themes/dog/license_info.json b/assets/themes/pets/license_info.json
similarity index 100%
rename from assets/themes/dog/license_info.json
rename to assets/themes/pets/license_info.json
diff --git a/assets/themes/pets/pets.json b/assets/themes/pets/pets.json
new file mode 100644
index 0000000000..deb72f47d9
--- /dev/null
+++ b/assets/themes/pets/pets.json
@@ -0,0 +1,175 @@
+{
+ "id": "pets",
+ "maintainer": "Niels Elgaard Larsen",
+ "version": "1",
+ "title": {
+ "en": "Veterinarians, dog parks and other pet-amenities",
+ "da": "hundesteder"
+ },
+ "description": {
+ "en": "On this map, you'll find various interesting places for you pets: veterinarians, dog parks, pet shops, dog-friendly restaurants, ...",
+ "da": "Hundsteder"
+ },
+ "icon": "./assets/themes/dog/dog-park.svg",
+ "startZoom": 10,
+ "startLat": 55,
+ "startLon": 12,
+ "layers": [
+ "dogpark",
+ {
+ "builtin": "food",
+ "override": {
+ "id": "dogfoodb",
+ "name": {
+ "en": "Dog friendly eateries",
+ "da": "Hundevenlige madsteder"
+ },
+ "mapRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "icon": "./assets/themes/dog/dog-food.svg",
+ "iconSize": "30,30,center"
+ }
+ ],
+ "=presets": [],
+ "source": {
+ "=osmTags": {
+ "and": [
+ {
+ "or": [
+ "amenity=restaurant",
+ "amenity=cafe"
+ ]
+ },
+ {
+ "or": [
+ "dog=unleashed",
+ "dog=leashed",
+ "dog=yes"
+ ]
+ }
+ ]
+ }
+ }
+ }
+ },
+ {
+ "builtin": "shops",
+ "id": "dogshop",
+ "override": {
+ "id": "dogshop",
+ "name": {
+ "en": "dog-friendly shop",
+ "da": "hundevenlig butik"
+ },
+ "title": {
+ "render": {
+ "en": "dog-friendly shop",
+ "da": "hundevenlig butik"
+ },
+ "mappings": [
+ {
+ "if": "name~*",
+ "then": {
+ "*": "{name}"
+ }
+ }
+ ]
+ },
+ "mapRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "icon": {
+ "render": "./assets/themes/dog/dogshop.svg",
+ "mappings": [
+ {
+ "if": {
+ "and": [
+ "shop=pet"
+ ]
+ },
+ "then": "./assets/themes/dog/petshop.svg"
+ }
+ ]
+ },
+ "iconSize": "30,30,center"
+ },
+ {
+ "#": "Rendering of a line",
+ "color": "#ff0",
+ "width": 5
+ }
+ ],
+ "presets": [
+ {
+ "tags": [
+ "shop=yes",
+ "dog=yes"
+ ]
+ }
+ ],
+ "source": {
+ "=osmTags": {
+ "and": [
+ "shop~*",
+ {
+ "or": [
+ "dog=leashed",
+ "dog=yes",
+ "shop=pet"
+ ]
+ }
+ ]
+ }
+ }
+ }
+ },
+ "veterinary",
+ {
+ "builtin": "food",
+ "override": {
+ "minzoom": 19,
+ "filter": null,
+ "name": null
+ }
+ },
+ {
+ "builtin": "waste_basket",
+ "override": {
+ "minzoom": 16,
+ "filter": null,
+ "name": null
+ }
+ },
+ {
+ "builtin": "shops",
+ "override": {
+ "minzoom": 19,
+ "filter": null,
+ "presets": [
+ {
+ "title": {
+ "en": "dog-friendly shop",
+ "da": "EN hundevenlig butik"
+ },
+ "tags": [
+ "dog=yes",
+ "shop=yes"
+ ],
+ "description": {
+ "en": "A shop whery you can bring a dog almost everywhere",
+ "da": "En butik hvor man kan tage en hund med næsten overalt"
+ }
+ }
+ ],
+ "name": null
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/themes/dog/petshop.svg b/assets/themes/pets/petshop.svg
similarity index 100%
rename from assets/themes/dog/petshop.svg
rename to assets/themes/pets/petshop.svg
diff --git a/assets/themes/dog/vet.svg b/assets/themes/pets/vet.svg
similarity index 100%
rename from assets/themes/dog/vet.svg
rename to assets/themes/pets/vet.svg