diff --git a/Customizations/AllKnownLayouts.ts b/Customizations/AllKnownLayouts.ts
index 7f1c558..1ad4cff 100644
--- a/Customizations/AllKnownLayouts.ts
+++ b/Customizations/AllKnownLayouts.ts
@@ -7,6 +7,7 @@ import Cyclofix from "./Layouts/Cyclofix";
import { WalkByBrussels } from "./Layouts/WalkByBrussels";
import { All } from "./Layouts/All";
import { Layout } from "./Layout";
+import {MetaMap} from "./Layouts/MetaMap";
export class AllKnownLayouts {
public static allSets: any = AllKnownLayouts.AllLayouts();
@@ -19,6 +20,7 @@ export class AllKnownLayouts {
new Cyclofix(),
new Bookcases(),
new WalkByBrussels(),
+ new MetaMap(),
all
/*new Toilets(),
new Statues(),
diff --git a/Customizations/Layers/Map.ts b/Customizations/Layers/Map.ts
new file mode 100644
index 0000000..f284490
--- /dev/null
+++ b/Customizations/Layers/Map.ts
@@ -0,0 +1,92 @@
+import {LayerDefinition} from "../LayerDefinition";
+import FixedText from "../Questions/FixedText";
+import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload";
+import {TagRenderingOptions} from "../TagRendering";
+import {And, Tag} from "../../Logic/TagsFilter";
+import L from "leaflet";
+
+export class Map extends LayerDefinition {
+ constructor() {
+ super();
+ this.name = "Map";
+ this.title = new FixedText("Map");
+ this.minzoom = 12;
+
+ this.overpassFilter = new Tag("information", "map");
+ this.newElementTags = [new Tag("tourism", "information"), new Tag("information", "map")];
+
+
+ const isOsmSource = new Tag("map_source", "OpenStreetMap");
+
+
+
+ this.style = (properties) => {
+ let 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: L.icon(
+ {
+ iconUrl: icon,
+ iconSize: [50, 50]
+ }
+ )
+ };
+ }
+
+
+ this.elementsToShow = [
+
+ new ImageCarouselWithUploadConstructor(),
+
+ new 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 TagRenderingOptions({
+ question: "Is the attribution present?",
+ mappings: [
+ {
+ k: new Tag("map_source:attribution", "yes"),
+ txt: "OpenStreetMap is clearly attribute, including the ODBL-license"
+ },
+ {
+ k: new Tag("map_source:attribution", "incomplete"),
+ txt: "OpenStreetMap is clearly attribute, 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"
+ },
+ ]
+ }).OnlyShowIf(new Tag("map_source", "OpenStreetMap"))
+ ]
+
+
+ }
+}
\ No newline at end of file
diff --git a/Customizations/Layouts/MetaMap.ts b/Customizations/Layouts/MetaMap.ts
new file mode 100644
index 0000000..8302f98
--- /dev/null
+++ b/Customizations/Layouts/MetaMap.ts
@@ -0,0 +1,18 @@
+import {Layout} from "../Layout";
+import * as Layer from "../Layers/Bookcases";
+import {Map} from "../Layers/Map";
+
+export class MetaMap extends Layout{
+ constructor() {
+ super( "metamap",
+ "Open Map Map",
+ [new Map()],
+ 1,
+ 0,
+ 0,
+
+
+ "
Open Map Map
\n" +
+ "This map is a map of physical maps, as known by OpenStreetMap.");
+ }
+}
\ No newline at end of file
diff --git a/assets/map-stickered.svg b/assets/map-stickered.svg
new file mode 100644
index 0000000..ecb56ec
--- /dev/null
+++ b/assets/map-stickered.svg
@@ -0,0 +1,13030 @@
+
+
+
+
diff --git a/assets/map.svg b/assets/map.svg
new file mode 100644
index 0000000..f91c925
--- /dev/null
+++ b/assets/map.svg
@@ -0,0 +1,9268 @@
+
+
+
+
diff --git a/assets/osm-logo-buggy-attr.svg b/assets/osm-logo-buggy-attr.svg
new file mode 100644
index 0000000..26fc478
--- /dev/null
+++ b/assets/osm-logo-buggy-attr.svg
@@ -0,0 +1,3293 @@
+
+
+
+
diff --git a/assets/osm-logo-white-bg.svg b/assets/osm-logo-white-bg.svg
new file mode 100644
index 0000000..5bdad17
--- /dev/null
+++ b/assets/osm-logo-white-bg.svg
@@ -0,0 +1,3282 @@
+
+
+
+