diff --git a/Customizations/AllKnownLayouts.ts b/Customizations/AllKnownLayouts.ts
index 80fc4db..785fa1f 100644
--- a/Customizations/AllKnownLayouts.ts
+++ b/Customizations/AllKnownLayouts.ts
@@ -1,6 +1,5 @@
import {LayerDefinition} from "./LayerDefinition";
import {Layout} from "./Layout";
-import {StreetWidth} from "./Layouts/StreetWidth";
import {FromJSON} from "./JSON/FromJSON";
import * as bookcases from "../assets/themes/bookcases/Bookcases.json";
import * as aed from "../assets/themes/aed/aed.json";
@@ -13,6 +12,7 @@ import * as buurtnatuur from "../assets/themes/buurtnatuur/buurtnatuur.json"
import * as nature from "../assets/themes/nature/nature.json"
import * as maps from "../assets/themes/maps/maps.json"
import {PersonalLayout} from "../Logic/PersonalLayout";
+import {StreetWidth} from "./StreetWidth/StreetWidth";
export class AllKnownLayouts {
@@ -39,24 +39,25 @@ export class AllKnownLayouts {
const layout = FromJSON.LayoutFromJSON(buurtnatuur);
layout.enableMoreQuests = false;
layout.enableShareScreen = false;
+ layout.hideFromOverview = true;
return layout;
}
public static layoutsList: Layout[] = [
new PersonalLayout(),
- // new Natuurpunt(),
- AllKnownLayouts.GenerateCycloFix(),
+
FromJSON.LayoutFromJSON(bookcases),
FromJSON.LayoutFromJSON(aed),
FromJSON.LayoutFromJSON(toilets),
FromJSON.LayoutFromJSON(artworks),
- FromJSON.LayoutFromJSON(cyclestreets),
+ AllKnownLayouts.GenerateCycloFix(),
FromJSON.LayoutFromJSON(ghostbikes),
- AllKnownLayouts.GenerateBuurtNatuur(),
FromJSON.LayoutFromJSON(nature),
+ FromJSON.LayoutFromJSON(cyclestreets),
FromJSON.LayoutFromJSON(maps),
+ AllKnownLayouts.GenerateBuurtNatuur(),
- new StreetWidth(),
+ new StreetWidth(), // The ugly duckling
];
diff --git a/Customizations/JSON/FromJSON.ts b/Customizations/JSON/FromJSON.ts
index 03a427a..2c37b39 100644
--- a/Customizations/JSON/FromJSON.ts
+++ b/Customizations/JSON/FromJSON.ts
@@ -20,6 +20,7 @@ import * as bike_cafes from "../../assets/layers/bike_cafe/bike_cafes.json"
import * as cycling_themed_objects from "../../assets/layers/cycling_themed_object/cycling_themed_objects.json"
import * as bike_shops from "../../assets/layers/bike_shop/bike_shop.json"
import * as maps from "../../assets/layers/maps/maps.json"
+import * as information_boards from "../../assets/layers/information_board/information_board.json"
import {Utils} from "../../Utils";
import ImageCarouselWithUploadConstructor from "../../UI/Image/ImageCarouselWithUpload";
import {ImageCarouselConstructor} from "../../UI/Image/ImageCarousel";
@@ -47,7 +48,8 @@ export class FromJSON {
FromJSON.Layer(bike_cafes),
FromJSON.Layer(cycling_themed_objects),
FromJSON.Layer(bike_shops),
- FromJSON.Layer(maps)
+ FromJSON.Layer(maps),
+ FromJSON.Layer(information_boards)
];
for (const layer of sharedLayersList) {
diff --git a/Customizations/Layers/InformationBoard.ts b/Customizations/Layers/InformationBoard.ts
deleted file mode 100644
index eebdf4c..0000000
--- a/Customizations/Layers/InformationBoard.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import {LayerDefinition} from "../LayerDefinition";
-import {And, Tag} from "../../Logic/Tags";
-import {TagRenderingOptions} from "../TagRenderingOptions";
-import ImageCarouselWithUploadConstructor from "../../UI/Image/ImageCarouselWithUpload";
-
-export class InformationBoard extends LayerDefinition {
- constructor() {
- super("informationBoard",{
- name: "Informatiebord",
- description: "Een informatiebord of kaart",
- minzoom: 12,
- overpassFilter: new Tag("tourism", "information"),
- presets: [{
- title: "Informatiebord",
- tags: [new Tag("tourism", "information")]
- },
- {
- title: "Kaart",
- tags: [new Tag("tourism", "information"), new Tag("information", "map")]
- }],
- maxAllowedOverlapPercentage: 0,
- icon: "assets/nature/info.png",
- });
-
- const isMap = new Tag("information", "map");
- const isOsmSource = new Tag("map_source", "OpenStreetMap");
-
- this.title = new TagRenderingOptions({
- mappings: [
- {k: isMap, txt: "Kaart"},
- {k:null, txt: "Informatiebord"}
- ]
- });
-
- this.style = (properties) => {
- let icon = "assets/nature/info.png";
- if (isMap.matchesProperties(properties)) {
- icon = "assets/map.svg";
- if (isOsmSource.matchesProperties(properties)) {
- icon = "assets/osm-logo-white-bg.svg";
-
- const attr = properties["map_source:attribution"];
- if (attr == "sticker") {
- icon = "assets/map-stickered.svg"
- } else if (attr == "no") {
- icon = "assets/osm-logo-buggy-attr.svg"
- }
- }
- }
-
- return {
- color: "#000000",
- icon: {
- iconUrl: icon,
- iconSize: [50, 50]
- }
- };
- }
-
-
- this.elementsToShow = [
-
- new ImageCarouselWithUploadConstructor(),
-
- new TagRenderingOptions({
- question: "Heeft dit informatiebord een kaart?",
- mappings: [
- {k: new Tag("information","board"), txt: "Dit is een informatiebord"},
- {k: isMap, txt: "Dit is een kaart"}
- ]
- }),
-
- new TagRenderingOptions({
- question: "Is this map based on OpenStreetMap?",
- mappings: [
- {
- k: isOsmSource,
- txt: "This map is based on OpenStreetMap"
- },
- {
- k: new And([new Tag("map_source:attribution", ""), new Tag("map_source","")]),
- txt: "Unknown"
- },
- ],
- freeform: {
- key: "map_source",
- extraTags: new Tag("map_source:attribution", ""),
- renderTemplate: "The map data is based on {map_source}",
- template: "The map data is based on $$$"
- }
- }).OnlyShowIf(isMap),
- new TagRenderingOptions({
- question: "Is the attribution present?",
- mappings: [
- {
- k: new Tag("map_source:attribution", "yes"),
- txt: "OpenStreetMap is clearly attributed, including the ODBL-license"
- },
- {
- k: new Tag("map_source:attribution", "incomplete"),
- txt: "OpenStreetMap is clearly attributed, but the license is not mentioned"
- },
- {
- k: new Tag("map_source:attribution", "sticker"),
- txt: "OpenStreetMap wasn't mentioned, but someone put an OpenStreetMap-sticker on it"
- },
- {
- k: new Tag("map_source:attribution", "no"),
- txt: "There is no attribution at all"
- },
- {
- k: new Tag("map_source:attribution", "none"),
- txt: "There is no attribution at all"
- }
- ]
- }).OnlyShowIf(new Tag("map_source", "OpenStreetMap"))
- ]
-
-
- }
-}
\ No newline at end of file
diff --git a/Customizations/Layers/NatureReserves.ts b/Customizations/Layers/NatureReserves.ts
deleted file mode 100644
index c502bde..0000000
--- a/Customizations/Layers/NatureReserves.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import {LayerDefinition} from "../LayerDefinition";
-import {Or, Tag} from "../../Logic/Tags";
-import {NameInline} from "../Questions/NameInline";
-import {TagRenderingOptions} from "../TagRenderingOptions";
-
-export class NatureReserves extends LayerDefinition {
-
- constructor(moreQuests: boolean = false) {
- super("natureReserve");
- this.name = "Natuurgebied";
- this.icon = "";
- this.overpassFilter =
- new Or([new Tag("leisure", "nature_reserve"), new Tag("boundary", "protected_area")]);
- this.maxAllowedOverlapPercentage = 10;
-
- this.presets = [{
- title: "Natuurreservaat",
- description: "Voeg een ontbrekend, erkend natuurreservaat toe, bv. een gebied dat beheerd wordt door het ANB of natuurpunt",
- tags: [new Tag("leisure", "nature_reserve"),
- new Tag("fixme", "Toegevoegd met MapComplete, geometry nog uit te tekenen")]
- }
- ];
- this.minzoom = 13;
- this.title = new NameInline("Natuurreservaat");
- this.style = function () {
- return {
- color: "#00bb00",
- icon: undefined
- };
- };
- this.elementsToShow = [
- ];
-
-
- const extraRenderings = [
- new TagRenderingOptions({
- question: "Mogen honden in dit natuurgebied?",
- mappings: [
- {k: new Tag("dog", "leashed"), txt: "Honden moeten aan de leiband"},
- {k: new Tag("dog", "no"), txt: "Honden zijn niet toegestaan"},
- {k: new Tag("dog", "yes"), txt: "Honden zijn welkom"},
- ]
- }).OnlyShowIf(new Tag("access", "yes")),
- new TagRenderingOptions({
- question: "Op welke website kunnen we meer informatie vinden over dit natuurgebied?",
- freeform: {
- key:"website",
- renderTemplate: "Meer informatie",
- template: "$$$"
- }
- }),
- new TagRenderingOptions({
- question: "Wie is de conservator van dit gebied?
" +
- "Geef de naam van de conservator énkel als die duidelijk online staat gepubliceerd.",
- freeform: {
- renderTemplate: "De conservator van dit gebied is {curator}",
- template: "$$$",
- key: "curator"
- }
- }),
- new TagRenderingOptions(
- {
- question: "Wat is het email-adres van de beheerder?
" +
- "Geef bij voorkeur het emailadres van de Natuurpunt-afdeling; geef enkel een email-adres van de conservator als dit duidelijk is gepubliceerd",
- freeform: {
- renderTemplate: "Bij problemen of vragen, de conservator kan bereikt worden via " +
- "{email}",
- template: "$email$",
- key: "email"
- }
- }),
- new TagRenderingOptions(
- {
- question: "Wat is het telefoonnummer van de beheerder?
" +
- "Geef bij voorkeur het telefoonnummer van de Natuurpunt-afdeling; geef enkel een email-adres van de conservator als dit duidelijk is gepubliceerd",
- freeform: {
- renderTemplate: "Bij problemen of vragen, de {conservator} kan bereikt worden via " +
- "{phone}",
- template: "$phone$",
- key: "phone"
- }
-
- }),
-
-
- ];
-
- if (moreQuests) {
- this.elementsToShow =
- this.elementsToShow.concat(extraRenderings);
- }
-
-
- }
-}
\ No newline at end of file
diff --git a/Customizations/Layouts/Natuurpunt.ts b/Customizations/Layouts/Natuurpunt.ts
deleted file mode 100644
index 1ff287e..0000000
--- a/Customizations/Layouts/Natuurpunt.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import {Layout} from "../Layout";
-import {InformationBoard} from "../Layers/InformationBoard";
-import {NatureReserves} from "../Layers/NatureReserves";
-
-export class Natuurpunt extends Layout{
- constructor() {
- super(
- "natuurpunt",
- ["nl"],
- "De natuur in",
- ["birdhides", new InformationBoard(), new NatureReserves(true), "drinking_water"],
- 12,
- 51.20875,
- 3.22435,
- "