diff --git a/Customizations/AllKnownLayouts.js b/Customizations/AllKnownLayouts.js
deleted file mode 100644
index b1d47bee3..000000000
--- a/Customizations/AllKnownLayouts.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.AllKnownLayouts = void 0;
-var Groen_1 = require("./Layouts/Groen");
-var GRB_1 = require("./Layouts/GRB");
-var Bookcases_1 = require("./Layouts/Bookcases");
-var Cyclofix_1 = require("./Layouts/Cyclofix");
-var WalkByBrussels_1 = require("./Layouts/WalkByBrussels");
-var All_1 = require("./Layouts/All");
-var MetaMap_1 = require("./Layouts/MetaMap");
-var StreetWidth_1 = require("./Layouts/StreetWidth");
-var Natuurpunt_1 = require("./Layouts/Natuurpunt");
-var AllKnownLayouts = /** @class */ (function () {
- function AllKnownLayouts() {
- }
- AllKnownLayouts.AllLayouts = function () {
- var all = new All_1.All();
- var layouts = [
- new Groen_1.Groen(),
- new GRB_1.GRB(),
- new Cyclofix_1.default(),
- new Bookcases_1.Bookcases(),
- new WalkByBrussels_1.WalkByBrussels(),
- new MetaMap_1.MetaMap(),
- new StreetWidth_1.StreetWidth(),
- new Natuurpunt_1.Natuurpunt(),
- all
- /*new Toilets(),
- new Statues(),
- */
- ];
- var allSets = {};
- for (var _i = 0, layouts_1 = layouts; _i < layouts_1.length; _i++) {
- var layout = layouts_1[_i];
- allSets[layout.name] = layout;
- all.layers = all.layers.concat(layout.layers);
- }
- return allSets;
- };
- AllKnownLayouts.GetSets = function (layoutNames) {
- var all = new All_1.All();
- for (var _i = 0, layoutNames_1 = layoutNames; _i < layoutNames_1.length; _i++) {
- var name_1 = layoutNames_1[_i];
- all.layers = all.layers.concat(AllKnownLayouts.allSets[name_1].layers);
- }
- return all;
- };
- AllKnownLayouts.allSets = AllKnownLayouts.AllLayouts();
- return AllKnownLayouts;
-}());
-exports.AllKnownLayouts = AllKnownLayouts;
diff --git a/Customizations/LayerDefinition.js b/Customizations/LayerDefinition.js
deleted file mode 100644
index d646849c4..000000000
--- a/Customizations/LayerDefinition.js
+++ /dev/null
@@ -1,33 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.LayerDefinition = void 0;
-var FilteredLayer_1 = require("../Logic/FilteredLayer");
-var LayerDefinition = /** @class */ (function () {
- function LayerDefinition(options) {
- if (options === void 0) { options = undefined; }
- var _a;
- /**
- * If an object of the next layer is contained for this many percent in this feature, it is eaten and not shown
- */
- this.maxAllowedOverlapPercentage = undefined;
- if (options === undefined) {
- console.log("No options!");
- return;
- }
- this.name = options.name;
- this.maxAllowedOverlapPercentage = (_a = options.maxAllowedOverlapPercentage) !== null && _a !== void 0 ? _a : 0;
- this.newElementTags = options.newElementTags;
- this.icon = options.icon;
- this.minzoom = options.minzoom;
- this.overpassFilter = options.overpassFilter;
- this.title = options.title;
- this.elementsToShow = options.elementsToShow;
- this.style = options.style;
- console.log(this);
- }
- LayerDefinition.prototype.asLayer = function (basemap, allElements, changes, userDetails, selectedElement, showOnPopup) {
- return new FilteredLayer_1.FilteredLayer(this.name, basemap, allElements, changes, this.overpassFilter, this.maxAllowedOverlapPercentage, this.style, selectedElement, showOnPopup);
- };
- return LayerDefinition;
-}());
-exports.LayerDefinition = LayerDefinition;
diff --git a/Customizations/Layers/Artwork.js b/Customizations/Layers/Artwork.js
deleted file mode 100644
index 34d737114..000000000
--- a/Customizations/Layers/Artwork.js
+++ /dev/null
@@ -1,87 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Artwork = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var Question_1 = require("../../Logic/Question");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var leaflet_1 = require("leaflet");
-var Artwork = /** @class */ (function (_super) {
- __extends(Artwork, _super);
- function Artwork() {
- var _this = _super.call(this) || this;
- _this.name = "artwork";
- _this.newElementTags = [new TagsFilter_1.Tag("tourism", "artwork")];
- _this.icon = "./assets/statue.svg";
- _this.overpassFilter = new TagsFilter_1.Tag("tourism", "artwork");
- _this.minzoom = 13;
- _this.questions = [
- Question_1.QuestionDefinition.radioAndTextQuestion("What kind of artwork is this?", 10, "artwork_type", [
- { text: "A statue", value: "statue" },
- { text: "A bust (thus a statue, but only of the head and shoulders)", value: "bust" },
- { text: "A sculpture", value: "sculpture" },
- { text: "A mural painting", value: "mural" },
- { text: "A painting", value: "painting" },
- { text: "A graffiti", value: "graffiti" },
- { text: "A relief", value: "relief" },
- { text: "An installation", value: "installation" }
- ]),
- Question_1.QuestionDefinition.textQuestion("Whom or what is depicted in this statue?", "subject", 20).addUnrequiredTag("subject:wikidata", "*"),
- Question_1.QuestionDefinition.textQuestion("Is there an inscription on this artwork?", "inscription", 16),
- Question_1.QuestionDefinition.textQuestion("What is the name of this artwork? If there is no explicit name, skip the question", "name", 15),
- ];
- _this.style = function (tags) {
- return {
- icon: new leaflet_1.default.icon({
- iconUrl: "assets/statue.svg",
- iconSize: [40, 40],
- text: "hi"
- }),
- color: "#0000ff"
- };
- };
- _this.elementsToShow = [
- new TagMappingOptions({
- key: "name",
- template: "
Artwork '{name}'
",
- missing: "Artwork"
- }),
- new TagMappingOptions({
- key: "artwork_type",
- template: "This artwork is a {artwork_type}"
- }),
- new TagMappingOptions({
- key: "artist_name",
- template: "This artwork was made by {artist_name}"
- }),
- new TagMappingOptions({
- key: "subject",
- template: "This artwork depicts {subject}"
- }),
- new TagMappingOptions({
- key: "subject:wikidata",
- template: "See more data about the subject"
- }),
- new TagMappingOptions({
- key: "website",
- template: "Website of the statue"
- }),
- new TagMappingOptions({ key: "image", template: "" })
- ];
- return _this;
- }
- return Artwork;
-}(LayerDefinition_1.LayerDefinition));
-exports.Artwork = Artwork;
diff --git a/Customizations/Layers/BikeParkings.js b/Customizations/Layers/BikeParkings.js
deleted file mode 100644
index 95c120896..000000000
--- a/Customizations/Layers/BikeParkings.js
+++ /dev/null
@@ -1,58 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var OperatorTag_1 = require("../Questions/OperatorTag");
-var L = require("leaflet");
-var FixedText_1 = require("../Questions/FixedText");
-var ParkingType_1 = require("../Questions/bike/ParkingType");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var BikeParkings = /** @class */ (function (_super) {
- __extends(BikeParkings, _super);
- function BikeParkings() {
- var _this = _super.call(this) || this;
- _this.name = "bike_parking";
- _this.icon = "./assets/bike/parking.svg";
- _this.overpassFilter = new TagsFilter_1.Tag("amenity", "bicycle_parking");
- _this.newElementTags = [
- new TagsFilter_1.Tag("amenity", "bicycle_parking"),
- ];
- _this.maxAllowedOverlapPercentage = 10;
- _this.minzoom = 13;
- _this.style = _this.generateStyleFunction();
- _this.title = new FixedText_1.default("Fietsparking");
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new OperatorTag_1.OperatorTag(),
- new ParkingType_1.default()
- ];
- return _this;
- }
- BikeParkings.prototype.generateStyleFunction = function () {
- var self = this;
- return function (properties) {
- return {
- color: "#00bb00",
- icon: L.icon({
- iconUrl: self.icon,
- iconSize: [50, 50]
- })
- };
- };
- };
- return BikeParkings;
-}(LayerDefinition_1.LayerDefinition));
-exports.default = BikeParkings;
diff --git a/Customizations/Layers/BikeStations.js b/Customizations/Layers/BikeStations.js
deleted file mode 100644
index fcd7aa9de..000000000
--- a/Customizations/Layers/BikeStations.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var L = require("leaflet");
-var StationChain_1 = require("../Questions/bike/StationChain");
-var StationPumpTools_1 = require("../Questions/bike/StationPumpTools");
-var StationStand_1 = require("../Questions/bike/StationStand");
-var PumpManual_1 = require("../Questions/bike/PumpManual");
-var StationOperator_1 = require("../Questions/bike/StationOperator");
-var FixedText_1 = require("../Questions/FixedText");
-var PumpManometer_1 = require("../Questions/bike/PumpManometer");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var PumpOperational_1 = require("../Questions/bike/PumpOperational");
-var PumpValves_1 = require("../Questions/bike/PumpValves");
-var BikeStations = /** @class */ (function (_super) {
- __extends(BikeStations, _super);
- function BikeStations() {
- var _this = _super.call(this) || this;
- _this.pump = new TagsFilter_1.Tag("service:bicycle:pump", "yes");
- _this.pumpOperationalAny = new TagsFilter_1.Tag("service:bicycle:pump:operational_status", "yes");
- _this.pumpOperationalOk = new TagsFilter_1.Or([new TagsFilter_1.Tag("service:bicycle:pump:operational_status", "yes"), new TagsFilter_1.Tag("service:bicycle:pump:operational_status", "operational"), new TagsFilter_1.Tag("service:bicycle:pump:operational_status", "ok"), new TagsFilter_1.Tag("service:bicycle:pump:operational_status", "")]);
- _this.tools = new TagsFilter_1.Tag("service:bicycle:tools", "yes");
- _this.name = "bike station or pump";
- _this.icon = "./assets/wrench.svg";
- _this.overpassFilter = new TagsFilter_1.And([
- new TagsFilter_1.Tag("amenity", "bicycle_repair_station")
- ]);
- _this.newElementTags = [
- new TagsFilter_1.Tag("amenity", "bicycle_repair_station")
- ];
- _this.maxAllowedOverlapPercentage = 10;
- _this.minzoom = 13;
- _this.style = _this.generateStyleFunction();
- _this.title = new FixedText_1.default("Bike station");
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new StationPumpTools_1.default(),
- new StationChain_1.default().OnlyShowIf(_this.tools),
- new StationStand_1.default().OnlyShowIf(_this.tools),
- new PumpManual_1.default().OnlyShowIf(_this.pump),
- new PumpManometer_1.default().OnlyShowIf(_this.pump),
- new PumpValves_1.default().OnlyShowIf(_this.pump),
- new PumpOperational_1.default().OnlyShowIf(_this.pump),
- new StationOperator_1.default(),
- ];
- return _this;
- }
- BikeStations.prototype.generateStyleFunction = function () {
- var self = this;
- return function (properties) {
- var hasPump = self.pump.matchesProperties(properties);
- var isOperational = self.pumpOperationalOk.matchesProperties(properties);
- var hasTools = self.tools.matchesProperties(properties);
- var iconName = "";
- if (hasPump) {
- if (hasTools) {
- iconName = "repair_station_pump.svg";
- }
- else {
- if (isOperational) {
- iconName = "pump.svg";
- }
- else {
- iconName = "pump_broken.svg";
- }
- }
- }
- else {
- iconName = "repair_station.svg";
- }
- var iconUrl = "./assets/bike/" + iconName;
- return {
- color: "#00bb00",
- icon: L.icon({
- iconUrl: iconUrl,
- iconSize: [50, 50]
- })
- };
- };
- };
- return BikeStations;
-}(LayerDefinition_1.LayerDefinition));
-exports.default = BikeStations;
diff --git a/Customizations/Layers/Birdhide.js b/Customizations/Layers/Birdhide.js
deleted file mode 100644
index f7ca70b5c..000000000
--- a/Customizations/Layers/Birdhide.js
+++ /dev/null
@@ -1,145 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Birdhide = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var TagRendering_1 = require("../TagRendering");
-var FixedText_1 = require("../Questions/FixedText");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var leaflet_1 = require("leaflet");
-var Birdhide = /** @class */ (function (_super) {
- __extends(Birdhide, _super);
- function Birdhide() {
- var _this = _super.call(this, {
- name: "vogelkijkplaats",
- overpassFilter: Birdhide.birdhide,
- elementsToShow: [new FixedText_1.default("hi")],
- icon: "assets/nature/birdhide.svg",
- minzoom: 12,
- newElementTags: [Birdhide.birdhide],
- style: function (tags) {
- return { color: "", icon: undefined };
- },
- }) || this;
- function rmStart(toRemove, title) {
- if (title.toLowerCase().indexOf(toRemove.toLowerCase()) == 0) {
- return title.substr(toRemove.length).trim();
- }
- return title;
- }
- function rmStarts(toRemove, title) {
- for (var _i = 0, toRemove_1 = toRemove; _i < toRemove_1.length; _i++) {
- var toRm = toRemove_1[_i];
- title = rmStart(toRm, title);
- }
- return title;
- }
- _this.title = new TagRendering_1.TagRenderingOptions({
- tagsPreprocessor: function (tags) {
- if (tags.name) {
- var nm = rmStarts(["Vogelkijkhut", "Vogelkijkwand", "Kijkwand", "Kijkhut"], tags.name);
- tags.name = " '" + nm + "'";
- }
- else {
- tags.name = "";
- }
- },
- mappings: [
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("shelter", "no"), new TagsFilter_1.Tag("building", "")]),
- txt: "Vogelkijkwand{name}"
- },
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("amenity", "shelter"), new TagsFilter_1.Tag("building", "yes")]),
- txt: "Vogelijkhut{name}"
- },
- {
- k: new TagsFilter_1.Tag("amenity", "shelter"),
- txt: "Vogelijkhut{name}"
- },
- {
- k: new TagsFilter_1.Tag("building", "yes"),
- txt: "Vogelijkhut{name}"
- },
- { k: null, txt: "Vogelkijkplaats{name}" }
- ]
- });
- _this.style = function (properties) {
- var icon = "assets/nature/birdhide.svg";
- if (new TagsFilter_1.Or([new TagsFilter_1.Tag("amenity", "shelter"), new TagsFilter_1.Tag("building", "yes"), new TagsFilter_1.Tag("shelter", "yes")]).matchesProperties(properties)) {
- icon = "assets/nature/birdshelter.svg";
- }
- return {
- color: "#0000bb",
- icon: leaflet_1.default.icon({
- iconUrl: icon,
- iconSize: [40, 40],
- iconAnchor: [20, 20]
- })
- };
- };
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new TagRendering_1.TagRenderingOptions({
- question: "Is dit een kijkwand of kijkhut?",
- mappings: [
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("shelter", "no"), new TagsFilter_1.Tag("building", ""), new TagsFilter_1.Tag("amenity", "")]),
- txt: "Vogelkijkwand"
- },
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("amenity", "shelter"), new TagsFilter_1.Tag("building", "yes"), new TagsFilter_1.Tag("shelter", "yes")]),
- txt: "Vogelijkhut"
- }
- ]
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Is ze rolstoeltoegankelijk?",
- mappings: [
- {
- k: new TagsFilter_1.Tag("wheelchair", "no"),
- txt: "Niet rolstoeltoegankelijk"
- },
- {
- k: new TagsFilter_1.Tag("wheelchair", "limited"),
- txt: "Een rolstoel raakt er, maar het is niet makkelijk"
- },
- {
- k: new TagsFilter_1.Tag("wheelchair", "yes"),
- txt: "Een rolstoel raakt er gemakkelijk"
- }
- ]
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Wie beheert deze?",
- freeform: {
- key: "operator",
- template: "Beheer door $$$",
- renderTemplate: "Beheer door {operator}",
- placeholder: "organisatie"
- },
- mappings: [
- { k: new TagsFilter_1.Tag("operator", "Natuurpunt"), txt: "Natuurpunt" },
- { k: new TagsFilter_1.Tag("operator", "Agentschap Natuur en Bos"), txt: "het Agentschap Natuur en Bos (ANB)" },
- ]
- })
- ];
- return _this;
- }
- Birdhide.birdhide = new TagsFilter_1.Tag("leisure", "bird_hide");
- return Birdhide;
-}(LayerDefinition_1.LayerDefinition));
-exports.Birdhide = Birdhide;
diff --git a/Customizations/Layers/Bookcases.js b/Customizations/Layers/Bookcases.js
deleted file mode 100644
index 39793abc1..000000000
--- a/Customizations/Layers/Bookcases.js
+++ /dev/null
@@ -1,167 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Bookcases = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var leaflet_1 = require("leaflet");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var TagRendering_1 = require("../TagRendering");
-var NameInline_1 = require("../Questions/NameInline");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var Bookcases = /** @class */ (function (_super) {
- __extends(Bookcases, _super);
- function Bookcases() {
- var _this = _super.call(this) || this;
- _this.name = "boekenkast";
- _this.newElementTags = [new TagsFilter_1.Tag("amenity", "public_bookcase")];
- _this.icon = "./assets/bookcase.svg";
- _this.overpassFilter = new TagsFilter_1.Tag("amenity", "public_bookcase");
- _this.minzoom = 11;
- _this.title = new NameInline_1.NameInline("ruilboekenkastje");
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new TagRendering_1.TagRenderingOptions({
- question: "Heeft dit boekenruilkastje een naam?",
- freeform: {
- key: "name",
- template: "De naam is $$$",
- renderTemplate: "",
- placeholder: "",
- extraTags: new TagsFilter_1.Tag("noname", "")
- },
- mappings: [
- { k: new TagsFilter_1.Tag("noname", "yes"), txt: "Neen, er is geen naam aangeduid op het boekenruilkastje" },
- ]
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Hoeveel boeken passen in dit boekenruilkastje?",
- freeform: {
- renderTemplate: "Er passen {capacity} boeken in dit boekenruilkastje",
- template: "Er passen $$$ boeken in dit boekenruilkastje",
- key: "capacity",
- placeholder: "aantal"
- },
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Wat voor soort boeken heeft dit boekenruilkastje?",
- mappings: [
- { k: new TagsFilter_1.Tag("books", "children"), txt: "Voornamelijk kinderboeken" },
- { k: new TagsFilter_1.Tag("books", "adults"), txt: "Voornamelijk boeken voor volwassenen" },
- { k: new TagsFilter_1.Tag("books", "children;adults"), txt: "Zowel kinderboeken als boeken voor volwassenen" }
- ],
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Staat dit boekenruilkastje binnen of buiten?",
- mappings: [
- { k: new TagsFilter_1.Tag("indoor", "yes"), txt: "Dit boekenruilkastje staat binnen" },
- { k: new TagsFilter_1.Tag("indoor", "no"), txt: "Dit boekenruilkastje staat buiten" },
- { k: new TagsFilter_1.Tag("indoor", ""), txt: "Dit boekenruilkastje staat buiten" }
- ]
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Is dit boekenruilkastje vrij toegankelijk?",
- mappings: [
- { k: new TagsFilter_1.Tag("access", "yes"), txt: "Ja, vrij toegankelijk" },
- { k: new TagsFilter_1.Tag("access", "customers"), txt: "Enkel voor klanten" },
- ]
- }).OnlyShowIf(new TagsFilter_1.Tag("indoor", "yes")),
- new TagRendering_1.TagRenderingOptions({
- question: "Wie (welke organisatie) beheert dit boekenruilkastje?",
- freeform: {
- key: "opeartor",
- renderTemplate: "Dit boekenruilkastje wordt beheerd door {operator}",
- template: "Dit boekenruilkastje wordt beheerd door $$$"
- }
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Zijn er openingsuren voor dit boekenruilkastje?",
- mappings: [
- { k: new TagsFilter_1.Tag("opening_hours", "24/7"), txt: "Dag en nacht toegankelijk" },
- { k: new TagsFilter_1.Tag("opening_hours", ""), txt: "Dag en nacht toegankelijk" },
- { k: new TagsFilter_1.Tag("opening_hours", "sunrise-sunset"), txt: "Van zonsopgang tot zonsondergang" },
- ],
- freeform: {
- key: "opening_hours",
- renderTemplate: "De openingsuren zijn {opening_hours}",
- template: "De openingsuren zijn $$$"
- }
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Is dit boekenruilkastje deel van een netwerk?",
- freeform: {
- key: "brand",
- renderTemplate: "Deel van het netwerk {brand}",
- template: "Deel van het netwerk $$$"
- },
- mappings: [{
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("brand", "Little Free Library"), new TagsFilter_1.Tag("nobrand", "")]),
- txt: "Little Free Library"
- },
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("brand", ""), new TagsFilter_1.Tag("nobrand", "yes")]),
- txt: "Maakt geen deel uit van een groter netwerk"
- }]
- }).OnlyShowIf(new TagsFilter_1.Or([
- new TagsFilter_1.Tag("ref", ""),
- new TagsFilter_1.And([new TagsFilter_1.Tag("ref", "*"), new TagsFilter_1.Tag("brand", "")])
- ])),
- new TagRendering_1.TagRenderingOptions({
- question: "Wat is het referentienummer van dit boekenruilkastje?",
- freeform: {
- key: "ref",
- template: "Het referentienummer is $$$",
- renderTemplate: "Gekend als {brand} {ref}"
- }
- }).OnlyShowIf(new TagsFilter_1.Tag("brand", "*")),
- new TagRendering_1.TagRenderingOptions({
- question: "Wanneer werd dit boekenruilkastje geinstalleerd?",
- priority: -1,
- freeform: {
- key: "start_date",
- renderTemplate: "Geplaatst op {start_date}",
- template: "Geplaatst op $$$"
- }
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Is er een website waar we er meer informatie is over dit boekenruilkastje?",
- freeform: {
- key: "website",
- renderTemplate: "Meer informatie over dit boekenruilkastje",
- template: "$$$",
- placeholder: "website"
- }
- }),
- new TagRendering_1.TagRenderingOptions({
- freeform: {
- key: "description",
- renderTemplate: "Beschrijving door de uitbater: {description}",
- template: "$$$",
- }
- })
- ];
- _this.style = function (tags) {
- return {
- icon: new leaflet_1.default.icon({
- iconUrl: "assets/bookcase.svg",
- iconSize: [40, 40]
- }),
- color: "#0000ff"
- };
- };
- return _this;
- }
- return Bookcases;
-}(LayerDefinition_1.LayerDefinition));
-exports.Bookcases = Bookcases;
diff --git a/Customizations/Layers/Bos.js b/Customizations/Layers/Bos.js
deleted file mode 100644
index ef95dec8c..000000000
--- a/Customizations/Layers/Bos.js
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Bos = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var AccessTag_1 = require("../Questions/AccessTag");
-var OperatorTag_1 = require("../Questions/OperatorTag");
-var NameQuestion_1 = require("../Questions/NameQuestion");
-var NameInline_1 = require("../Questions/NameInline");
-var DescriptionQuestion_1 = require("../Questions/DescriptionQuestion");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var Bos = /** @class */ (function (_super) {
- __extends(Bos, _super);
- function Bos() {
- var _this = _super.call(this) || this;
- _this.name = "bos";
- _this.icon = "./assets/tree_white_background.svg";
- _this.overpassFilter = new TagsFilter_1.Or([
- new TagsFilter_1.Tag("natural", "wood"),
- new TagsFilter_1.Tag("landuse", "forest"),
- new TagsFilter_1.Tag("natural", "scrub")
- ]);
- _this.newElementTags = [
- new TagsFilter_1.Tag("landuse", "forest"),
- new TagsFilter_1.Tag("fixme", "Toegevoegd met MapComplete, geometry nog uit te tekenen")
- ];
- _this.maxAllowedOverlapPercentage = 10;
- _this.minzoom = 13;
- _this.style = _this.generateStyleFunction();
- _this.title = new NameInline_1.NameInline("bos");
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new NameQuestion_1.NameQuestion(),
- new AccessTag_1.AccessTag(),
- new OperatorTag_1.OperatorTag(),
- new DescriptionQuestion_1.DescriptionQuestion("bos")
- ];
- return _this;
- }
- Bos.prototype.generateStyleFunction = function () {
- var self = this;
- return function (properties) {
- var questionSeverity = 0;
- for (var _i = 0, _a = self.elementsToShow; _i < _a.length; _i++) {
- var qd = _a[_i];
- if (qd instanceof DescriptionQuestion_1.DescriptionQuestion) {
- continue;
- }
- if (qd.IsQuestioning(properties)) {
- questionSeverity = Math.max(questionSeverity, qd.Priority());
- }
- }
- var colormapping = {
- 0: "#00bb00",
- 1: "#00ff00",
- 10: "#dddd00",
- 20: "#ff0000"
- };
- var colour = colormapping[questionSeverity];
- while (colour == undefined) {
- questionSeverity--;
- colour = colormapping[questionSeverity];
- }
- return {
- color: colour,
- icon: undefined
- };
- };
- };
- return Bos;
-}(LayerDefinition_1.LayerDefinition));
-exports.Bos = Bos;
diff --git a/Customizations/Layers/DrinkingWater.js b/Customizations/Layers/DrinkingWater.js
deleted file mode 100644
index ba18984f2..000000000
--- a/Customizations/Layers/DrinkingWater.js
+++ /dev/null
@@ -1,71 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.DrinkingWater = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var OperatorTag_1 = require("../Questions/OperatorTag");
-var L = require("leaflet");
-var FixedText_1 = require("../Questions/FixedText");
-var TagRendering_1 = require("../TagRendering");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var DrinkingWater = /** @class */ (function (_super) {
- __extends(DrinkingWater, _super);
- function DrinkingWater() {
- var _this = _super.call(this) || this;
- _this.name = "drinking_water";
- _this.icon = "./assets/bug.svg";
- _this.overpassFilter = new TagsFilter_1.Or([
- new TagsFilter_1.And([
- new TagsFilter_1.Tag("amenity", "drinking_water")
- ])
- ]);
- _this.newElementTags = [
- new TagsFilter_1.Tag("amenity", "drinking_water"),
- ];
- _this.maxAllowedOverlapPercentage = 10;
- _this.minzoom = 13;
- _this.style = _this.generateStyleFunction();
- _this.title = new FixedText_1.default("Drinking water");
- _this.elementsToShow = [
- new OperatorTag_1.OperatorTag(),
- ];
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new TagRendering_1.TagRenderingOptions({
- question: "How easy is it to fill water bottles?",
- mappings: [
- { k: new TagsFilter_1.Tag("bottle", "yes"), txt: "It is easy to refill water bottles" },
- { k: new TagsFilter_1.Tag("bottle", "no"), txt: "Water bottles may not fit" }
- ],
- })
- ];
- return _this;
- }
- DrinkingWater.prototype.generateStyleFunction = function () {
- var self = this;
- return function (properties) {
- return {
- color: "#00bb00",
- icon: new L.icon({
- iconUrl: self.icon,
- iconSize: [40, 40]
- })
- };
- };
- };
- return DrinkingWater;
-}(LayerDefinition_1.LayerDefinition));
-exports.DrinkingWater = DrinkingWater;
diff --git a/Customizations/Layers/GhostBike.js b/Customizations/Layers/GhostBike.js
deleted file mode 100644
index 23de7efe5..000000000
--- a/Customizations/Layers/GhostBike.js
+++ /dev/null
@@ -1,80 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.GhostBike = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var TagRendering_1 = require("../TagRendering");
-var FixedText_1 = require("../Questions/FixedText");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var leaflet_1 = require("leaflet");
-var GhostBike = /** @class */ (function (_super) {
- __extends(GhostBike, _super);
- function GhostBike() {
- var _this = _super.call(this) || this;
- _this.name = "ghost bike";
- _this.overpassFilter = new TagsFilter_1.Tag("memorial", "ghost_bike");
- _this.title = new FixedText_1.default("Ghost bike");
- _this.elementsToShow = [
- new FixedText_1.default("A ghost bike is a memorial for a cyclist who died in a traffic accident," +
- " in the form of a white bicycle placed permanently near the accident location."),
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new TagRendering_1.TagRenderingOptions({
- question: "Whom is remembered by this ghost bike?" +
- "" +
- " " +
- "Please respect privacy - only fill out the name if it is widely published or marked on the cycle." +
- "",
- mappings: [{ k: new TagsFilter_1.Tag("noname", "yes"), txt: "There is no name marked on the bike" },],
- freeform: {
- key: "name",
- extraTags: new TagsFilter_1.Tag("noname", ""),
- template: "$$$",
- renderTemplate: "In the remembrance of {name}",
- }
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "When was the ghost bike installed?",
- freeform: {
- key: "start_date",
- template: "The ghost bike was placed on $$$",
- renderTemplate: "The ghost bike was placed on {start_date}",
- }
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "On what URL can more information be found?" +
- "If available, add a link to a news report about the accident or about the placing of the ghost bike",
- freeform: {
- key: "source",
- template: "More information available on $$$",
- renderTemplate: "More information",
- }
- }),
- ];
- _this.style = function (tags) {
- return {
- color: "#000000",
- icon: leaflet_1.default.icon({
- iconUrl: 'assets/bike/ghost.svg',
- iconSize: [40, 40],
- iconAnchor: [20, 20],
- })
- };
- };
- return _this;
- }
- return GhostBike;
-}(LayerDefinition_1.LayerDefinition));
-exports.GhostBike = GhostBike;
diff --git a/Customizations/Layers/GrbToFix.js b/Customizations/Layers/GrbToFix.js
deleted file mode 100644
index bec3a35c4..000000000
--- a/Customizations/Layers/GrbToFix.js
+++ /dev/null
@@ -1,90 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.GrbToFix = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var leaflet_1 = require("leaflet");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var TagRendering_1 = require("../TagRendering");
-var GrbToFix = /** @class */ (function (_super) {
- __extends(GrbToFix, _super);
- function GrbToFix() {
- var _this = _super.call(this) || this;
- _this.name = "grb";
- _this.newElementTags = undefined;
- _this.icon = "./assets/star.svg";
- _this.overpassFilter = new TagsFilter_1.Regex("fixme", "GRB");
- _this.minzoom = 13;
- _this.style = function (tags) {
- return {
- icon: new leaflet_1.default.icon({
- iconUrl: "assets/star.svg",
- iconSize: [40, 40],
- text: "hi"
- }),
- color: "#ff0000"
- };
- };
- _this.title = new TagRendering_1.TagRenderingOptions({
- freeform: {
- key: "fixme",
- renderTemplate: "{fixme}",
- template: "Fixme $$$"
- }
- });
- _this.elementsToShow = [
- new TagRendering_1.TagRenderingOptions({
- freeform: {
- key: "addr:street",
- renderTemplate: "Het adres is {addr:street} {addr:housenumber}",
- template: "Straat? $$$"
- }
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Wat is het huisnummer?",
- tagsPreprocessor: function (tags) {
- var telltale = "GRB thinks that this has number ";
- var index = tags.fixme.indexOf(telltale);
- if (index >= 0) {
- var housenumber = tags.fixme.slice(index + telltale.length);
- tags["grb:housenumber:human"] = housenumber;
- tags["grb:housenumber"] = housenumber == "no number" ? "" : housenumber;
- }
- },
- freeform: {
- key: "addr:housenumber",
- template: "Het huisnummer is $$$",
- renderTemplate: "Het huisnummer is {addr:housenumber}, GRB denkt {grb:housenumber:human}",
- extraTags: new TagsFilter_1.Tag("fixme", "")
- },
- mappings: [
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("addr:housenumber", "{grb:housenumber}"), new TagsFilter_1.Tag("fixme", "")]),
- txt: "Volg GRB: {grb:housenumber:human}",
- substitute: true
- },
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("addr:housenumber", "{addr:housenumber}"), new TagsFilter_1.Tag("fixme", "")]),
- txt: "Volg OSM: {addr:housenumber}",
- substitute: true
- }
- ]
- })
- ];
- return _this;
- }
- return GrbToFix;
-}(LayerDefinition_1.LayerDefinition));
-exports.GrbToFix = GrbToFix;
diff --git a/Customizations/Layers/InformationBoard.js b/Customizations/Layers/InformationBoard.js
deleted file mode 100644
index 57c8e24c7..000000000
--- a/Customizations/Layers/InformationBoard.js
+++ /dev/null
@@ -1,122 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.InformationBoard = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var TagRendering_1 = require("../TagRendering");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var leaflet_1 = require("leaflet");
-var InformationBoard = /** @class */ (function (_super) {
- __extends(InformationBoard, _super);
- function InformationBoard() {
- var _this = _super.call(this, {
- name: "Informatiebord",
- minzoom: 12,
- overpassFilter: new TagsFilter_1.Tag("tourism", "information"),
- newElementTags: [new TagsFilter_1.Tag("tourism", "information")],
- maxAllowedOverlapPercentage: 0,
- icon: "assets/nature/info.png",
- }) || this;
- var isMap = new TagsFilter_1.Tag("information", "map");
- var isOsmSource = new TagsFilter_1.Tag("map_source", "OpenStreetMap");
- _this.title = new TagRendering_1.TagRenderingOptions({
- mappings: [
- { k: isMap, txt: "Kaart" },
- { k: null, txt: "Informatiebord" }
- ]
- });
- _this.style = function (properties) {
- var icon = "assets/nature/info.png";
- if (isMap.matchesProperties(properties)) {
- icon = "assets/map.svg";
- if (isOsmSource.matchesProperties(properties)) {
- icon = "assets/osm-logo-white-bg.svg";
- var 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: leaflet_1.default.icon({
- iconUrl: icon,
- iconSize: [50, 50]
- })
- };
- };
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new TagRendering_1.TagRenderingOptions({
- question: "Heeft dit informatiebord een kaart?",
- mappings: [
- { k: new TagsFilter_1.Tag("information", "board"), txt: "Dit is een informatiebord" },
- { k: isMap, txt: "Dit is een kaart" }
- ]
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Is this map based on OpenStreetMap?",
- mappings: [
- {
- k: isOsmSource,
- txt: "This map is based on OpenStreetMap"
- },
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("map_source:attribution", ""), new TagsFilter_1.Tag("map_source", "")]),
- txt: "Unknown"
- },
- ],
- freeform: {
- key: "map_source",
- extraTags: new TagsFilter_1.Tag("map_source:attribution", ""),
- renderTemplate: "The map data is based on {map_source}",
- template: "The map data is based on $$$"
- }
- }).OnlyShowIf(isMap),
- new TagRendering_1.TagRenderingOptions({
- question: "Is the attribution present?",
- mappings: [
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "yes"),
- txt: "OpenStreetMap is clearly attribute, including the ODBL-license"
- },
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "incomplete"),
- txt: "OpenStreetMap is clearly attribute, but the license is not mentioned"
- },
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "sticker"),
- txt: "OpenStreetMap wasn't mentioned, but someone put an OpenStreetMap-sticker on it"
- },
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "no"),
- txt: "There is no attribution at all"
- },
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "none"),
- txt: "There is no attribution at all"
- }
- ]
- }).OnlyShowIf(new TagsFilter_1.Tag("map_source", "OpenStreetMap"))
- ];
- return _this;
- }
- return InformationBoard;
-}(LayerDefinition_1.LayerDefinition));
-exports.InformationBoard = InformationBoard;
diff --git a/Customizations/Layers/Map.js b/Customizations/Layers/Map.js
deleted file mode 100644
index 6206d8f84..000000000
--- a/Customizations/Layers/Map.js
+++ /dev/null
@@ -1,99 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Map = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var FixedText_1 = require("../Questions/FixedText");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var TagRendering_1 = require("../TagRendering");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var leaflet_1 = require("leaflet");
-var Map = /** @class */ (function (_super) {
- __extends(Map, _super);
- function Map() {
- var _this = _super.call(this) || this;
- _this.name = "Map";
- _this.title = new FixedText_1.default("Map");
- _this.minzoom = 12;
- _this.overpassFilter = new TagsFilter_1.Tag("information", "map");
- _this.newElementTags = [new TagsFilter_1.Tag("tourism", "information"), new TagsFilter_1.Tag("information", "map")];
- var isOsmSource = new TagsFilter_1.Tag("map_source", "OpenStreetMap");
- _this.style = function (properties) {
- var icon = "assets/map.svg";
- if (isOsmSource.matchesProperties(properties)) {
- icon = "assets/osm-logo-white-bg.svg";
- var 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: leaflet_1.default.icon({
- iconUrl: icon,
- iconSize: [50, 50]
- })
- };
- };
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new TagRendering_1.TagRenderingOptions({
- question: "Is this map based on OpenStreetMap?",
- mappings: [
- {
- k: isOsmSource,
- txt: "This map is based on OpenStreetMap"
- },
- ],
- freeform: {
- key: "map_source",
- renderTemplate: "The map data is based on {map_source}",
- template: "The map data is based on $$$"
- }
- }),
- new TagRendering_1.TagRenderingOptions({
- question: "Is the attribution present?",
- mappings: [
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "yes"),
- txt: "OpenStreetMap is clearly attribute, including the ODBL-license"
- },
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "incomplete"),
- txt: "OpenStreetMap is clearly attribute, but the license is not mentioned"
- },
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "sticker"),
- txt: "OpenStreetMap wasn't mentioned, but someone put an OpenStreetMap-sticker on it"
- },
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "no"),
- txt: "There is no attribution at all"
- },
- {
- k: new TagsFilter_1.Tag("map_source:attribution", "none"),
- txt: "There is no attribution at all"
- }
- ]
- }).OnlyShowIf(new TagsFilter_1.Tag("map_source", "OpenStreetMap"))
- ];
- return _this;
- }
- return Map;
-}(LayerDefinition_1.LayerDefinition));
-exports.Map = Map;
diff --git a/Customizations/Layers/NatureReserves.js b/Customizations/Layers/NatureReserves.js
deleted file mode 100644
index 76e277762..000000000
--- a/Customizations/Layers/NatureReserves.js
+++ /dev/null
@@ -1,134 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.NatureReserves = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var TagRendering_1 = require("../TagRendering");
-var AccessTag_1 = require("../Questions/AccessTag");
-var OperatorTag_1 = require("../Questions/OperatorTag");
-var NameQuestion_1 = require("../Questions/NameQuestion");
-var NameInline_1 = require("../Questions/NameInline");
-var DescriptionQuestion_1 = require("../Questions/DescriptionQuestion");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var NatureReserves = /** @class */ (function (_super) {
- __extends(NatureReserves, _super);
- function NatureReserves(moreQuests) {
- if (moreQuests === void 0) { moreQuests = false; }
- var _this = _super.call(this) || this;
- _this.name = "natuurgebied";
- _this.icon = "./assets/tree_white_background.svg";
- _this.overpassFilter =
- new TagsFilter_1.Or([new TagsFilter_1.Tag("leisure", "nature_reserve"), new TagsFilter_1.Tag("boundary", "protected_area")]);
- _this.maxAllowedOverlapPercentage = 10;
- _this.newElementTags = [new TagsFilter_1.Tag("leisure", "nature_reserve"),
- new TagsFilter_1.Tag("fixme", "Toegevoegd met MapComplete, geometry nog uit te tekenen")];
- _this.minzoom = 13;
- _this.title = new NameInline_1.NameInline("natuurreservaat");
- _this.style = _this.generateStyleFunction();
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new NameQuestion_1.NameQuestion(),
- new AccessTag_1.AccessTag(),
- new OperatorTag_1.OperatorTag(),
- new DescriptionQuestion_1.DescriptionQuestion("natuurgebied")
- ];
- var extraRenderings = [
- new TagRendering_1.TagRenderingOptions({
- question: "Mogen honden in dit natuurgebied?",
- mappings: [
- { k: new TagsFilter_1.Tag("dog", "leashed"), txt: "Honden moeten aan de leiband" },
- { k: new TagsFilter_1.Tag("dog", "no"), txt: "Honden zijn niet toegestaan" },
- { k: new TagsFilter_1.Tag("dog", "yes"), txt: "Honden zijn welkom" },
- ]
- }).OnlyShowIf(new TagsFilter_1.Tag("access", "yes")),
- new TagRendering_1.TagRenderingOptions({
- question: "Op welke website kunnen we meer informatie vinden over dit natuurgebied?",
- freeform: {
- key: "website",
- renderTemplate: "Meer informatie",
- template: "$$$"
- }
- }),
- new TagRendering_1.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 TagRendering_1.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: "$$$",
- key: "email"
- }
- }),
- new TagRendering_1.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: "$$$",
- key: "phone"
- }
- }),
- ];
- if (moreQuests) {
- _this.elementsToShow =
- _this.elementsToShow.concat(extraRenderings);
- }
- return _this;
- }
- NatureReserves.prototype.generateStyleFunction = function () {
- var self = this;
- return function (properties) {
- var _a;
- var questionSeverity = 0;
- for (var _i = 0, _b = self.elementsToShow; _i < _b.length; _i++) {
- var qd = _b[_i];
- if (qd instanceof DescriptionQuestion_1.DescriptionQuestion) {
- continue;
- }
- if (qd.IsQuestioning(properties)) {
- questionSeverity = Math.max(questionSeverity, (_a = qd.Priority()) !== null && _a !== void 0 ? _a : 0);
- }
- }
- var colormapping = {
- 0: "#00bb00",
- 1: "#00ff00",
- 10: "#dddd00",
- 20: "#ff0000"
- };
- var colour = colormapping[questionSeverity];
- while (colour == undefined) {
- questionSeverity--;
- colour = colormapping[questionSeverity];
- }
- return {
- color: colour,
- icon: undefined
- };
- };
- };
- return NatureReserves;
-}(LayerDefinition_1.LayerDefinition));
-exports.NatureReserves = NatureReserves;
diff --git a/Customizations/Layers/Park.js b/Customizations/Layers/Park.js
deleted file mode 100644
index d9751e3a4..000000000
--- a/Customizations/Layers/Park.js
+++ /dev/null
@@ -1,108 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Park = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var TagRendering_1 = require("../TagRendering");
-var NameQuestion_1 = require("../Questions/NameQuestion");
-var NameInline_1 = require("../Questions/NameInline");
-var DescriptionQuestion_1 = require("../Questions/DescriptionQuestion");
-var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
-var Park = /** @class */ (function (_super) {
- __extends(Park, _super);
- function Park() {
- var _this = _super.call(this) || this;
- _this.accessByDefault = new TagRendering_1.TagRenderingOptions({
- question: "Is dit park publiek toegankelijk?",
- mappings: [
- { k: new TagsFilter_1.Tag("access", "yes"), txt: "Publiek toegankelijk" },
- { k: new TagsFilter_1.Tag("access", ""), txt: "Publiek toegankelijk" },
- { k: new TagsFilter_1.Tag("access", "no"), txt: "Niet publiek toegankelijk" },
- { k: new TagsFilter_1.Tag("access", "private"), txt: "Niet publiek toegankelijk, want privaat" },
- { k: new TagsFilter_1.Tag("access", "guided"), txt: "Enkel toegankelijk met een gids of op een activiteit" },
- ],
- freeform: {
- key: "access",
- renderTemplate: "Dit park is niet toegankelijk: {access}",
- template: "De toegankelijkheid van dit park is: $$$"
- },
- priority: 20
- });
- _this.operatorByDefault = new TagRendering_1.TagRenderingOptions({
- question: "Wie beheert dit park?",
- freeform: {
- key: "operator",
- renderTemplate: "Dit park wordt beheerd door {operator}",
- template: "$$$",
- },
- mappings: [{
- k: null, txt: "De gemeente beheert dit park"
- }],
- priority: 15
- });
- _this.name = "park";
- _this.icon = "./assets/tree_white_background.svg";
- _this.overpassFilter =
- new TagsFilter_1.Or([new TagsFilter_1.Tag("leisure", "park"), new TagsFilter_1.Tag("landuse", "village_green")]);
- _this.newElementTags = [new TagsFilter_1.Tag("leisure", "park"),
- new TagsFilter_1.Tag("fixme", "Toegevoegd met MapComplete, geometry nog uit te tekenen")];
- _this.maxAllowedOverlapPercentage = 25;
- _this.minzoom = 13;
- _this.style = _this.generateStyleFunction();
- _this.title = new NameInline_1.NameInline("park");
- _this.elementsToShow = [
- new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
- new NameQuestion_1.NameQuestion(),
- _this.accessByDefault,
- _this.operatorByDefault,
- new DescriptionQuestion_1.DescriptionQuestion("park"),
- ];
- return _this;
- }
- Park.prototype.generateStyleFunction = function () {
- var self = this;
- return function (properties) {
- var _a;
- var questionSeverity = 0;
- for (var _i = 0, _b = self.elementsToShow; _i < _b.length; _i++) {
- var qd = _b[_i];
- if (qd instanceof DescriptionQuestion_1.DescriptionQuestion) {
- continue;
- }
- if (qd.IsQuestioning(properties)) {
- questionSeverity = Math.max(questionSeverity, (_a = qd.Priority()) !== null && _a !== void 0 ? _a : 0);
- }
- }
- var colormapping = {
- 0: "#00bb00",
- 1: "#00ff00",
- 10: "#dddd00",
- 20: "#ff0000"
- };
- var colour = colormapping[questionSeverity];
- while (colour == undefined) {
- questionSeverity--;
- colour = colormapping[questionSeverity];
- }
- return {
- color: colour,
- icon: undefined
- };
- };
- };
- return Park;
-}(LayerDefinition_1.LayerDefinition));
-exports.Park = Park;
diff --git a/Customizations/Layers/Toilets.js b/Customizations/Layers/Toilets.js
deleted file mode 100644
index 564c59c8f..000000000
--- a/Customizations/Layers/Toilets.js
+++ /dev/null
@@ -1,94 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Toilets = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var Quests_1 = require("../../Quests");
-var FixedUiElement_1 = require("../../UI/Base/FixedUiElement");
-var leaflet_1 = require("leaflet");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var Toilets = /** @class */ (function (_super) {
- __extends(Toilets, _super);
- function Toilets() {
- var _a, _b;
- var _this = _super.call(this) || this;
- _this.name = "toilet";
- _this.newElementTags = [new TagsFilter_1.Tag("amenity", "toilets")];
- _this.icon = "./assets/toilets.svg";
- _this.overpassFilter = new TagsFilter_1.Tag("amenity", "toilets");
- _this.minzoom = 13;
- _this.questions = [Quests_1.Quests.hasFee,
- Quests_1.Quests.toiletsWheelChairs,
- Quests_1.Quests.toiletsChangingTable,
- Quests_1.Quests.toiletsChangingTableLocation,
- Quests_1.Quests.toiletsPosition];
- _this.style = function (tags) {
- if (tags.wheelchair == "yes") {
- return { icon: new leaflet_1.default.icon({
- iconUrl: "assets/wheelchair.svg",
- iconSize: [40, 40]
- }) };
- }
- return { icon: new leaflet_1.default.icon({
- iconUrl: "assets/toilets.svg",
- iconSize: [40, 40]
- }) };
- };
- _this.elementsToShow = [
- new FixedUiElement_1.FixedUiElement("Toiletten"),
- new TagMappingOptions({
- key: "access",
- mapping: {
- yes: "Toegankelijk",
- no: "Niet toegankelijk",
- private: "Niet toegankelijk",
- customers: "Enkel voor klanten",
- }
- }),
- new TagMappingOptions({
- key: "fee",
- mapping: (_a = {
- yes: "Betalend",
- no: "Gratis"
- },
- _a["0"] = "Gratis",
- _a),
- template: "Betalend, men vraagt {fee}"
- }),
- new TagMappingOptions({
- key: "toilets:position",
- mapping: (_b = {
- seated: 'Gewone zittoiletten',
- urinal: 'Een enkele urinoir',
- urinals: 'Urinoirs'
- },
- _b['urinals;seated'] = "Urinoirs en gewone toiletten",
- _b['seated;urinals'] = "Urinoirs en gewone toiletten",
- _b)
- }),
- new TagMappingOptions({
- key: "wheelchair",
- mapping: {
- yes: "Rolstoeltoegankelijk",
- no: "Niet Rolstoeltoegankelijk",
- limited: "Beperkt rolstoeltoegankelijk",
- }
- }),
- ];
- return _this;
- }
- return Toilets;
-}(LayerDefinition_1.LayerDefinition));
-exports.Toilets = Toilets;
diff --git a/Customizations/Layers/Widths.js b/Customizations/Layers/Widths.js
deleted file mode 100644
index 748e453f4..000000000
--- a/Customizations/Layers/Widths.js
+++ /dev/null
@@ -1,270 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Widths = void 0;
-var LayerDefinition_1 = require("../LayerDefinition");
-var TagsFilter_1 = require("../../Logic/TagsFilter");
-var TagRendering_1 = require("../TagRendering");
-var Widths = /** @class */ (function (_super) {
- __extends(Widths, _super);
- function Widths(carWidth, cyclistWidth, pedestrianWidth) {
- var _this = _super.call(this) || this;
- _this._bothSideParking = new TagsFilter_1.Tag("parking:lane:both", "parallel");
- _this._noSideParking = new TagsFilter_1.Tag("parking:lane:both", "no_parking");
- _this._otherParkingMode = new TagsFilter_1.Or([
- new TagsFilter_1.Tag("parking:lane:both", "perpendicular"),
- new TagsFilter_1.Tag("parking:lane:left", "perpendicular"),
- new TagsFilter_1.Tag("parking:lane:right", "perpendicular"),
- new TagsFilter_1.Tag("parking:lane:both", "diagonal"),
- new TagsFilter_1.Tag("parking:lane:left", "diagonal"),
- new TagsFilter_1.Tag("parking:lane:right", "diagonal"),
- ]);
- _this._leftSideParking = new TagsFilter_1.And([new TagsFilter_1.Tag("parking:lane:left", "parallel"), new TagsFilter_1.Tag("parking:lane:right", "no_parking")]);
- _this._rightSideParking = new TagsFilter_1.And([new TagsFilter_1.Tag("parking:lane:right", "parallel"), new TagsFilter_1.Tag("parking:lane:left", "no_parking")]);
- _this._sidewalkBoth = new TagsFilter_1.Tag("sidewalk", "both");
- _this._sidewalkLeft = new TagsFilter_1.Tag("sidewalk", "left");
- _this._sidewalkRight = new TagsFilter_1.Tag("sidewalk", "right");
- _this._sidewalkNone = new TagsFilter_1.Tag("sidewalk", "none");
- _this._oneSideParking = new TagsFilter_1.Or([_this._leftSideParking, _this._rightSideParking]);
- _this._carfree = new TagsFilter_1.Or([new TagsFilter_1.Tag("highway", "pedestrian"), new TagsFilter_1.Tag("highway", "living_street")]);
- _this._notCarFree = new TagsFilter_1.Not(_this._carfree);
- _this.carWidth = carWidth;
- _this.cyclistWidth = cyclistWidth;
- _this.pedestrianWidth = pedestrianWidth;
- _this.minzoom = 12;
- function r(n) {
- var pre = Math.floor(n);
- var post = Math.floor((n * 10) % 10);
- return "" + pre + "." + post;
- }
- _this.name = "widths";
- _this.overpassFilter = new TagsFilter_1.Tag("width:carriageway", "*");
- _this.title = new TagRendering_1.TagRenderingOptions({
- freeform: {
- renderTemplate: "{name}",
- template: "$$$",
- key: "name"
- }
- });
- var self = _this;
- _this.style = function (properties) {
- var c = "#f00";
- var props = self.calcProps(properties);
- if (props.pedestrianFlowNeeded > 0) {
- c = "#fa0";
- }
- if (props.width >= props.targetWidth || !props.cyclingAllowed) {
- c = "#0c0";
- }
- if (!props.parkingStateKnown && properties["note:width:carriageway"] === undefined) {
- c = "#f0f";
- }
- if (_this._carfree.matchesProperties(properties)) {
- c = "#aaa";
- }
- // Mark probably wrong data
- if (props.width > 15) {
- c = "#f0f";
- }
- var dashArray = undefined;
- if (props.onewayBike) {
- dashArray = [20, 8];
- }
- return {
- icon: null,
- color: c,
- weight: 7,
- dashArray: dashArray
- };
- };
- _this.elementsToShow = [
- new TagRendering_1.TagRenderingOptions({
- question: "Mogen auto's hier parkeren?",
- mappings: [
- {
- k: _this._bothSideParking,
- txt: "Auto's kunnen langs beide zijden parkeren. Dit gebruikt " + r(_this.carWidth * 2) + "m "
- },
- {
- k: _this._oneSideParking,
- txt: "Auto's kunnen langs één kant parkeren. Dit gebruikt " + r(_this.carWidth) + "m "
- },
- {
- k: _this._otherParkingMode,
- txt: "Deze straat heeft dwarsparkeren of diagonaalparkeren aan minstens één zijde. Deze parkeerruimte is niet opgenomen in de straatbreedte."
- },
- { k: _this._noSideParking, txt: "Auto's mogen hier niet parkeren" },
- ],
- freeform: {
- key: "note:width:carriageway",
- renderTemplate: "{note:width:carriageway}",
- template: "$$$",
- }
- }).OnlyShowIf(_this._notCarFree),
- new TagRendering_1.TagRenderingOptions({
- mappings: [
- {
- k: _this._sidewalkNone,
- txt: "Deze straat heeft geen voetpaden. Voetgangers hebben hier " + r(_this.pedestrianWidth * 2) + "m nodig"
- },
- {
- k: new TagsFilter_1.Or([_this._sidewalkLeft, _this._sidewalkRight]),
- txt: "Deze straat heeft een voetpad aan één kant. Voetgangers hebben hier " + r(_this.pedestrianWidth) + "m nodig"
- },
- { k: _this._sidewalkBoth, txt: "Deze straat heeft voetpad aan beide zijden." },
- ],
- freeform: {
- key: "note:width:carriageway",
- renderTemplate: "{note:width:carriageway}",
- template: "$$$",
- }
- }).OnlyShowIf(_this._notCarFree),
- new TagRendering_1.TagRenderingOptions({
- mappings: [
- {
- k: new TagsFilter_1.Tag("bicycle", "use_sidepath"),
- txt: "Er is een afgescheiden, verplicht te gebruiken fietspad. Fietsen op dit wegsegment hoeft dus niet"
- },
- {
- k: new TagsFilter_1.Tag("bicycle", "no"),
- txt: "Fietsen is hier niet toegestaan"
- },
- {
- k: new TagsFilter_1.Tag("oneway:bicycle", "yes"),
- txt: "Eenrichtingsverkeer, óók voor fietsers. Dit gebruikt " + r(_this.carWidth + _this.cyclistWidth) + "m"
- },
- {
- k: new TagsFilter_1.And([new TagsFilter_1.Tag("oneway", "yes"), new TagsFilter_1.Tag("oneway:bicycle", "no")]),
- txt: "Tweerichtingverkeer voor fietsers, eenrichting voor auto's Dit gebruikt " + r(_this.carWidth + 2 * _this.cyclistWidth) + "m"
- },
- {
- k: new TagsFilter_1.Tag("oneway", "yes"),
- txt: "Eenrichtingsverkeer voor iedereen. Dit gebruikt " + (_this.carWidth + _this.cyclistWidth) + "m"
- },
- {
- k: null,
- txt: "Tweerichtingsverkeer voor iedereen. Dit gebruikt " + r(2 * _this.carWidth + 2 * _this.cyclistWidth) + "m"
- }
- ]
- }).OnlyShowIf(_this._notCarFree),
- new TagRendering_1.TagRenderingOptions({
- tagsPreprocessor: function (tags) {
- var props = self.calcProps(tags);
- tags.targetWidth = r(props.targetWidth);
- tags.short = "";
- if (props.width < props.targetWidth) {
- tags.short = "Er is dus " + r(props.targetWidth - props.width) + "m te weinig";
- }
- },
- freeform: {
- key: "width:carriageway",
- renderTemplate: "De totale nodige ruimte voor vlot en veilig verkeer is dus {targetWidth}m " +
- "{short}",
- template: "$$$",
- }
- }).OnlyShowIf(_this._notCarFree),
- new TagRendering_1.TagRenderingOptions({
- mappings: [
- { k: new TagsFilter_1.Tag("highway", "living_street"), txt: "Dit is een woonerf" },
- { k: new TagsFilter_1.Tag("highway", "pedestrian"), txt: "Deze weg is autovrij" }
- ]
- }),
- new TagRendering_1.TagRenderingOptions({
- mappings: [
- {
- k: new TagsFilter_1.Tag("sidewalk", "none"),
- txt: "De afstand van huis tot huis is {width:carriageway}m"
- },
- {
- k: new TagsFilter_1.Tag("sidewalk", "left"),
- txt: "De afstand van huis tot voetpad is {width:carriageway}m"
- },
- {
- k: new TagsFilter_1.Tag("sidewalk", "right"),
- txt: "De afstand van huis tot voetpad is {width:carriageway}m"
- },
- {
- k: new TagsFilter_1.Tag("sidewalk", "both"),
- txt: "De afstand van voetpad tot voetpad is {width:carriageway}m"
- },
- {
- k: new TagsFilter_1.Tag("sidewalk", ""),
- txt: "De straatbreedte is {width:carriageway}m"
- }
- ]
- })
- ];
- return _this;
- }
- Widths.prototype.calcProps = function (properties) {
- var parkingStateKnown = true;
- var parallelParkingCount = 0;
- if (this._oneSideParking.matchesProperties(properties)) {
- parallelParkingCount = 1;
- }
- else if (this._bothSideParking.matchesProperties(properties)) {
- parallelParkingCount = 2;
- }
- else if (this._noSideParking.matchesProperties(properties)) {
- parallelParkingCount = 0;
- }
- else if (this._otherParkingMode.matchesProperties(properties)) {
- parallelParkingCount = 0;
- }
- else {
- parkingStateKnown = false;
- console.log("No parking data for ", properties.name, properties.id, properties);
- }
- var pedestrianFlowNeeded = 0;
- if (this._sidewalkBoth.matchesProperties(properties)) {
- pedestrianFlowNeeded = 0;
- }
- else if (this._sidewalkNone.matchesProperties(properties)) {
- pedestrianFlowNeeded = 2;
- }
- else if (this._sidewalkLeft.matchesProperties(properties) || this._sidewalkRight.matches(properties)) {
- pedestrianFlowNeeded = 1;
- }
- else {
- pedestrianFlowNeeded = -1;
- }
- var onewayCar = properties.oneway === "yes";
- var onewayBike = properties["oneway:bicycle"] === "yes" ||
- (onewayCar && properties["oneway:bicycle"] === undefined);
- var cyclingAllowed = !(properties.bicycle === "use_sidepath"
- || properties.bicycle === "no");
- var carWidth = (onewayCar ? 1 : 2) * this.carWidth;
- var cyclistWidth = 0;
- if (cyclingAllowed) {
- cyclistWidth = (onewayBike ? 1 : 2) * this.cyclistWidth;
- }
- var width = parseFloat(properties["width:carriageway"]);
- var targetWidth = carWidth +
- cyclistWidth +
- Math.max(0, pedestrianFlowNeeded) * this.pedestrianWidth +
- parallelParkingCount * this.carWidth;
- return {
- parkingLanes: parallelParkingCount,
- parkingStateKnown: parkingStateKnown,
- width: width,
- targetWidth: targetWidth,
- onewayBike: onewayBike,
- pedestrianFlowNeeded: pedestrianFlowNeeded,
- cyclingAllowed: cyclingAllowed
- };
- };
- return Widths;
-}(LayerDefinition_1.LayerDefinition));
-exports.Widths = Widths;
diff --git a/Customizations/Layout.js b/Customizations/Layout.js
deleted file mode 100644
index 0ba3214f8..000000000
--- a/Customizations/Layout.js
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Layout = void 0;
-/**
- * A layout is a collection of settings of the global view (thus: welcome text, title, selection of layers).
- */
-var Layout = /** @class */ (function () {
- /**
- *
- * @param name: The name used in the query string. If in the query "quests=" is defined, it will select this layout
- * @param title: Will be used in the of the page
- * @param layers: The layers to show, a list of LayerDefinitions
- * @param startzoom: The initial starting zoom of the map
- * @param startLat:The initial starting latitude of the map
- * @param startLon: the initial starting longitude of the map
- * @param welcomeMessage: This message is shown in the collapsable box on the left
- * @param gettingStartedPlzLogin: This is shown below the welcomemessage and wrapped in a login link.
- * @param welcomeBackMessage: This is shown when the user is logged in
- * @param welcomeTail: This text is shown below the login message. It is ideal for extra help
- */
- function Layout(name, title, layers, startzoom, startLat, startLon, welcomeMessage, gettingStartedPlzLogin, welcomeBackMessage, welcomeTail) {
- if (gettingStartedPlzLogin === void 0) { gettingStartedPlzLogin = "Please login to get started"; }
- if (welcomeBackMessage === void 0) { welcomeBackMessage = "You are logged in. Welcome back!"; }
- if (welcomeTail === void 0) { welcomeTail = ""; }
- this.title = title;
- this.startLon = startLon;
- this.startLat = startLat;
- this.startzoom = startzoom;
- this.name = name;
- this.layers = layers;
- this.welcomeMessage = welcomeMessage;
- this.gettingStartedPlzLogin = gettingStartedPlzLogin;
- this.welcomeBackMessage = welcomeBackMessage;
- this.welcomeTail = welcomeTail;
- }
- return Layout;
-}());
-exports.Layout = Layout;
diff --git a/Customizations/Layouts/All.js b/Customizations/Layouts/All.js
deleted file mode 100644
index b03e05a31..000000000
--- a/Customizations/Layouts/All.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.All = void 0;
-var Layout_1 = require("../Layout");
-var All = /** @class */ (function (_super) {
- __extends(All, _super);
- function All() {
- return _super.call(this, "all", "All quest layers", [], 15, 51.2, 3.2, "
All quests of MapComplete
" +
- "This is a mixed bag. Some quests might be hard or for experts to answer only", "Please log in", "") || this;
- }
- return All;
-}(Layout_1.Layout));
-exports.All = All;
diff --git a/Customizations/Layouts/Bookcases.js b/Customizations/Layouts/Bookcases.js
deleted file mode 100644
index 86b30ce7e..000000000
--- a/Customizations/Layouts/Bookcases.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Bookcases = void 0;
-var Layout_1 = require("../Layout");
-var Layer = require("../Layers/Bookcases");
-var Bookcases = /** @class */ (function (_super) {
- __extends(Bookcases, _super);
- function Bookcases() {
- var _this = _super.call(this, "bookcases", "Open Bookcase Map", [new Layer.Bookcases()], 14, 51.2, 3.2, "
Open BoekenkastjesKaart
\n" +
- "\n" +
- "
" +
- "Help mee met het creëeren van een volledige kaart met alle boekenruilkastjes!" +
- "Een boekenruilkastje is een vaste plaats in publieke ruimte waar iedereen een boek in kan zetten of uit kan meenemen." +
- "Meestal een klein kastje of doosje dat op straat staat, maar ook een oude telefooncellen of een schap in een station valt hieronder." +
- "
", "Klik op een boekenruilkastje om vragen te beantwoorden") || this;
- _this.locationContains = ["Bookcases.html", "Bookcase.html", "bookcase"];
- return _this;
- }
- return Bookcases;
-}(Layout_1.Layout));
-exports.Bookcases = Bookcases;
diff --git a/Customizations/Layouts/Cyclofix.js b/Customizations/Layouts/Cyclofix.js
deleted file mode 100644
index 80e1df77b..000000000
--- a/Customizations/Layouts/Cyclofix.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Layout_1 = require("../Layout");
-var BikeParkings_1 = require("../Layers/BikeParkings");
-var BikeStations_1 = require("../Layers/BikeStations");
-var GhostBike_1 = require("../Layers/GhostBike");
-var DrinkingWater_1 = require("../Layers/DrinkingWater");
-var Cyclofix = /** @class */ (function (_super) {
- __extends(Cyclofix, _super);
- function Cyclofix() {
- return _super.call(this, "pomp", "Cyclofix bicycle infrastructure", [new GhostBike_1.GhostBike(), new BikeStations_1.default(), new BikeParkings_1.default(), new DrinkingWater_1.DrinkingWater()], 16, 50.8465573, 4.3516970, "
Cyclofix bicycle infrastructure
\n" +
- "\n" +
- "
EN> On this map we want to collect data about the whereabouts of bicycle pumps and public racks in Brussels." +
- "As a result, cyclists will be able to quickly find the nearest infrastructure for their needs.
" +
- "
NL> Op deze kaart willen we gegevens verzamelen over de locatie van fietspompen en openbare stelplaatsen in Brussel." +
- "Hierdoor kunnen fietsers snel de dichtstbijzijnde infrastructuur vinden die voldoet aan hun behoeften.
" +
- "
FR> Sur cette carte, nous voulons collecter des données sur la localisation des pompes à vélo et des supports publics à Bruxelles." +
- "Les cyclistes pourront ainsi trouver rapidement l'infrastructure la plus proche de leurs besoins.
", "", "") || this;
- }
- return Cyclofix;
-}(Layout_1.Layout));
-exports.default = Cyclofix;
diff --git a/Customizations/Layouts/GRB.js b/Customizations/Layouts/GRB.js
deleted file mode 100644
index b6b741cd5..000000000
--- a/Customizations/Layouts/GRB.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.GRB = void 0;
-var Layout_1 = require("../Layout");
-var GrbToFix_1 = require("../Layers/GrbToFix");
-var GRB = /** @class */ (function (_super) {
- __extends(GRB, _super);
- function GRB() {
- return _super.call(this, "grb", "Grb import fix tool", [new GrbToFix_1.GrbToFix()], 15, 51.2083, 3.2279, "
GRB Fix tool
\n" +
- "\n" +
- "Expert use only", "", "") || this;
- }
- return GRB;
-}(Layout_1.Layout));
-exports.GRB = GRB;
diff --git a/Customizations/Layouts/Groen.js b/Customizations/Layouts/Groen.js
deleted file mode 100644
index 94033eeb8..000000000
--- a/Customizations/Layouts/Groen.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Groen = void 0;
-var NatureReserves_1 = require("../Layers/NatureReserves");
-var Park_1 = require("../Layers/Park");
-var Bos_1 = require("../Layers/Bos");
-var Layout_1 = require("../Layout");
-var Groen = /** @class */ (function (_super) {
- __extends(Groen, _super);
- function Groen() {
- var _this = _super.call(this, "buurtnatuur", "Buurtnatuur", [new NatureReserves_1.NatureReserves(), new Park_1.Park(), new Bos_1.Bos()], 10, 50.8435, 4.3688, "\n" +
- " " +
- "
Breng jouw buurtnatuur in kaart
" +
- "Natuur maakt gelukkig. Aan de hand van deze website willen we de natuur dicht bij ons beter inventariseren. Met als doel meer mensen te laten genieten van toegankelijke natuur én te strijden voor meer natuur in onze buurten. \n" +
- "
" +
- "
In welke natuurgebieden kan jij terecht? Hoe toegankelijk zijn ze?
" +
- "
In welke bossen kan een gezin in jouw gemeente opnieuw op adem komen?
" +
- "
Op welke onbekende plekjes is het zalig spelen?
" +
- "
" +
- "
Samen kleuren we heel Vlaanderen en Brussel groen.
Over groen ingekleurde gebieden weten we alles wat we willen weten.
" +
- "
Bij rood ingekleurde gebieden ontbreekt nog heel wat info: klik een gebied aan en beantwoord de vragen.
" +
- "
Je kan altijd een vraag overslaan als je het antwoord niet weet of niet zeker bent
" +
- "
Je kan altijd een foto toevoegen
" +
- "
Je kan ook zelf een gebied toevoegen door op de kaart te klikken
" +
- "
" +
- "" +
- "
" +
- "De oorspronkelijke data komt van OpenStreetMap en je antwoorden worden daar bewaard. Omdat iedereen vrij kan meewerken aan dit project, kunnen we niet garanderen dat er geen fouten opduiken." +
- "
" +
- "Je privacy is belangrijk. We tellen wel hoeveel gebruikers deze website bezoeken. We plaatsen een cookie waar geen persoonlijke informatie in bewaard wordt. " +
- "Als je inlogt, komt er een tweede cookie bij met je inloggegevens." +
- "") || this;
- _this.locationContains = ["buurtnatuur.be"];
- return _this;
- }
- return Groen;
-}(Layout_1.Layout));
-exports.Groen = Groen;
diff --git a/Customizations/Layouts/MetaMap.js b/Customizations/Layouts/MetaMap.js
deleted file mode 100644
index 65d4762f6..000000000
--- a/Customizations/Layouts/MetaMap.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.MetaMap = void 0;
-var Layout_1 = require("../Layout");
-var Map_1 = require("../Layers/Map");
-var MetaMap = /** @class */ (function (_super) {
- __extends(MetaMap, _super);
- function MetaMap() {
- return _super.call(this, "metamap", "Open Map Map", [new Map_1.Map()], 1, 0, 0, "
Open Map Map
\n" +
- "This map is a map of physical maps, as known by OpenStreetMap.") || this;
- }
- return MetaMap;
-}(Layout_1.Layout));
-exports.MetaMap = MetaMap;
diff --git a/Customizations/Layouts/Natuurpunt.js b/Customizations/Layouts/Natuurpunt.js
deleted file mode 100644
index 51ee11022..000000000
--- a/Customizations/Layouts/Natuurpunt.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Natuurpunt = void 0;
-var Layout_1 = require("../Layout");
-var Birdhide_1 = require("../Layers/Birdhide");
-var InformationBoard_1 = require("../Layers/InformationBoard");
-var NatureReserves_1 = require("../Layers/NatureReserves");
-var Natuurpunt = /** @class */ (function (_super) {
- __extends(Natuurpunt, _super);
- function Natuurpunt() {
- return _super.call(this, "natuurpunt", "De natuur in", [new Birdhide_1.Birdhide(), new InformationBoard_1.InformationBoard(), new NatureReserves_1.NatureReserves(true)], 12, 51.20875, 3.22435, "
Natuurpuntstuff
", "", "") || this;
- }
- return Natuurpunt;
-}(Layout_1.Layout));
-exports.Natuurpunt = Natuurpunt;
diff --git a/Customizations/Layouts/Statues.js b/Customizations/Layouts/Statues.js
deleted file mode 100644
index fbcd44eb7..000000000
--- a/Customizations/Layouts/Statues.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Statues = void 0;
-var Layout_1 = require("../Layout");
-var Artwork_1 = require("../Layers/Artwork");
-var Statues = /** @class */ (function (_super) {
- __extends(Statues, _super);
- function Statues() {
- return _super.call(this, "statues", "Open Artwork Map", [new Artwork_1.Artwork()], 10, 50.8435, 4.3688, "
Open Statue Map
\n" +
- "\n" +
- "
" +
- "Help with creating a map of all statues all over the world!", "
", "Start by clicking a pin and answering the questions") || this;
- }
- return Statues;
-}(Layout_1.Layout));
-exports.Statues = Statues;
diff --git a/Customizations/Layouts/StreetWidth.js b/Customizations/Layouts/StreetWidth.js
deleted file mode 100644
index 3afdca12b..000000000
--- a/Customizations/Layouts/StreetWidth.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.StreetWidth = void 0;
-var Layout_1 = require("../Layout");
-var Widths_1 = require("../Layers/Widths");
-var StreetWidth = /** @class */ (function (_super) {
- __extends(StreetWidth, _super);
- function StreetWidth() {
- return _super.call(this, "width", "Straatbreedtes in Brugge", [new Widths_1.Widths(2, 1.5, 0.75)], 15, 51.20875, 3.22435, "
De straat is opgebruikt
" +
- "
Er is steeds meer druk op de openbare ruimte. Voetgangers, fietsers, steps, auto's, bussen, bestelwagens, buggies, cargobikes, ... willen allemaal hun deel van de openbare ruimte.
" +
- "" +
- "
In deze studie nemen we Brugge onder de loep en kijken we hoe breed elke straat is én hoe breed elke straat zou moeten zijn voor een veilig én vlot verkeer.
" +
- "Verschillende ingrepen kunnen de stad teruggeven aan de inwoners en de stad leefbaarder en levendiger maken. " +
- "Denk aan:" +
- "
" +
- "
De autovrije zone's uitbreiden
" +
- "
De binnenstad fietszone maken
" +
- "
Het aantal woonerven uitbreiden
" +
- "
Grotere auto's meer belasten - ze nemen immers meer parkeerruimte in.
" +
- "
", "", "") || this;
- }
- return StreetWidth;
-}(Layout_1.Layout));
-exports.StreetWidth = StreetWidth;
diff --git a/Customizations/Layouts/Toilets.js b/Customizations/Layouts/Toilets.js
deleted file mode 100644
index 1caedb946..000000000
--- a/Customizations/Layouts/Toilets.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Toilets = void 0;
-var Layout_1 = require("../Layout");
-var Layer = require("../Layers/Toilets");
-var Toilets = /** @class */ (function (_super) {
- __extends(Toilets, _super);
- function Toilets() {
- return _super.call(this, "toilets", "Open Toilet Map", [new Layer.Toilets()], 12, 51.2, 3.2, "
Open Toilet Map
\n" +
- "\n" +
- "
Help us to create the most complete map about all the toilets in the world, based on openStreetMap." +
- "One can answer questions here, which help users all over the world to find an accessible toilet, close to them.