forked from MapComplete/MapComplete
Add a nature reserve oriented quest layout
This commit is contained in:
parent
a7d356c263
commit
fe4fa9dd0e
24 changed files with 591 additions and 1307 deletions
112
Customizations/Layers/InformationBoard.ts
Normal file
112
Customizations/Layers/InformationBoard.ts
Normal file
|
@ -0,0 +1,112 @@
|
|||
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 InformationBoard extends LayerDefinition {
|
||||
constructor() {
|
||||
super({
|
||||
name: "Informatiebord",
|
||||
minzoom: 12,
|
||||
overpassFilter: new Tag("tourism", "information"),
|
||||
newElementTags: [new Tag("tourism", "information")],
|
||||
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: L.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"
|
||||
},
|
||||
],
|
||||
freeform: {
|
||||
key: "map_source",
|
||||
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 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"
|
||||
},
|
||||
{
|
||||
k: new Tag("map_source:attribution", "none"),
|
||||
txt: "There is no attribution at all"
|
||||
}
|
||||
]
|
||||
}).OnlyShowIf(new Tag("map_source", "OpenStreetMap"))
|
||||
]
|
||||
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue