deletions natuurpunt thema
This commit is contained in:
parent
6c6794e587
commit
40717af859
3 changed files with 307 additions and 258 deletions
|
@ -1,21 +1,21 @@
|
||||||
import {FixedUiElement} from "./UI/Base/FixedUiElement";
|
import { FixedUiElement } from "./UI/Base/FixedUiElement";
|
||||||
import Toggle from "./UI/Input/Toggle";
|
import Toggle from "./UI/Input/Toggle";
|
||||||
import {Basemap} from "./UI/BigComponents/Basemap";
|
import { Basemap } from "./UI/BigComponents/Basemap";
|
||||||
import State from "./State";
|
import State from "./State";
|
||||||
import LoadFromOverpass from "./Logic/Actors/OverpassFeatureSource";
|
import LoadFromOverpass from "./Logic/Actors/OverpassFeatureSource";
|
||||||
import {UIEventSource} from "./Logic/UIEventSource";
|
import { UIEventSource } from "./Logic/UIEventSource";
|
||||||
import {QueryParameters} from "./Logic/Web/QueryParameters";
|
import { QueryParameters } from "./Logic/Web/QueryParameters";
|
||||||
import StrayClickHandler from "./Logic/Actors/StrayClickHandler";
|
import StrayClickHandler from "./Logic/Actors/StrayClickHandler";
|
||||||
import SimpleAddUI from "./UI/BigComponents/SimpleAddUI";
|
import SimpleAddUI from "./UI/BigComponents/SimpleAddUI";
|
||||||
import CenterMessageBox from "./UI/CenterMessageBox";
|
import CenterMessageBox from "./UI/CenterMessageBox";
|
||||||
import UserBadge from "./UI/BigComponents/UserBadge";
|
import UserBadge from "./UI/BigComponents/UserBadge";
|
||||||
import SearchAndGo from "./UI/BigComponents/SearchAndGo";
|
import SearchAndGo from "./UI/BigComponents/SearchAndGo";
|
||||||
import GeoLocationHandler from "./Logic/Actors/GeoLocationHandler";
|
import GeoLocationHandler from "./Logic/Actors/GeoLocationHandler";
|
||||||
import {LocalStorageSource} from "./Logic/Web/LocalStorageSource";
|
import { LocalStorageSource } from "./Logic/Web/LocalStorageSource";
|
||||||
import {Utils} from "./Utils";
|
import { Utils } from "./Utils";
|
||||||
import Svg from "./Svg";
|
import Svg from "./Svg";
|
||||||
import Link from "./UI/Base/Link";
|
import Link from "./UI/Base/Link";
|
||||||
import * as personal from "./assets/themes/personal/personal.json"
|
import * as personal from "./assets/themes/personal/personal.json";
|
||||||
import LayoutConfig from "./Customizations/JSON/LayoutConfig";
|
import LayoutConfig from "./Customizations/JSON/LayoutConfig";
|
||||||
import * as L from "leaflet";
|
import * as L from "leaflet";
|
||||||
import Img from "./UI/Base/Img";
|
import Img from "./UI/Base/Img";
|
||||||
|
@ -33,14 +33,14 @@ import MapControlButton from "./UI/MapControlButton";
|
||||||
import Combine from "./UI/Base/Combine";
|
import Combine from "./UI/Base/Combine";
|
||||||
import SelectedFeatureHandler from "./Logic/Actors/SelectedFeatureHandler";
|
import SelectedFeatureHandler from "./Logic/Actors/SelectedFeatureHandler";
|
||||||
import LZString from "lz-string";
|
import LZString from "lz-string";
|
||||||
import {LayoutConfigJson} from "./Customizations/JSON/LayoutConfigJson";
|
import { LayoutConfigJson } from "./Customizations/JSON/LayoutConfigJson";
|
||||||
import AttributionPanel from "./UI/BigComponents/AttributionPanel";
|
import AttributionPanel from "./UI/BigComponents/AttributionPanel";
|
||||||
import ContributorCount from "./Logic/ContributorCount";
|
import ContributorCount from "./Logic/ContributorCount";
|
||||||
import FeatureSource from "./Logic/FeatureSource/FeatureSource";
|
import FeatureSource from "./Logic/FeatureSource/FeatureSource";
|
||||||
import AllKnownLayers from "./Customizations/AllKnownLayers";
|
import AllKnownLayers from "./Customizations/AllKnownLayers";
|
||||||
import LayerConfig from "./Customizations/JSON/LayerConfig";
|
import LayerConfig from "./Customizations/JSON/LayerConfig";
|
||||||
import AvailableBaseLayers from "./Logic/Actors/AvailableBaseLayers";
|
import AvailableBaseLayers from "./Logic/Actors/AvailableBaseLayers";
|
||||||
import {TagsFilter} from "./Logic/Tags/TagsFilter";
|
import { TagsFilter } from "./Logic/Tags/TagsFilter";
|
||||||
import FilterView from "./UI/BigComponents/FilterView";
|
import FilterView from "./UI/BigComponents/FilterView";
|
||||||
|
|
||||||
export class InitUiElements {
|
export class InitUiElements {
|
||||||
|
@ -57,8 +57,7 @@ export class InitUiElements {
|
||||||
`Error: incorrect layout <i>${layoutName}</i><br/><a href='https://${window.location.host}/'>Go back</a>`
|
`Error: incorrect layout <i>${layoutName}</i><br/><a href='https://${window.location.host}/'>Go back</a>`
|
||||||
)
|
)
|
||||||
.AttachTo("centermessage")
|
.AttachTo("centermessage")
|
||||||
.onClick(() => {
|
.onClick(() => {});
|
||||||
});
|
|
||||||
throw "Incorrect layout";
|
throw "Incorrect layout";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,16 +157,13 @@ export class InitUiElements {
|
||||||
InitUiElements.InitWelcomeMessage();
|
InitUiElements.InitWelcomeMessage();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (
|
if (State.state.featureSwitchIframe.data) {
|
||||||
(window != window.top && !State.state.featureSwitchWelcomeMessage.data) ||
|
|
||||||
State.state.featureSwitchIframe.data
|
|
||||||
) {
|
|
||||||
const currentLocation = State.state.locationControl;
|
const currentLocation = State.state.locationControl;
|
||||||
const url = `${window.location.origin}${window.location.pathname}?z=${
|
const url = `${window.location.origin}${
|
||||||
currentLocation.data.zoom ?? 0
|
window.location.pathname
|
||||||
}&lat=${currentLocation.data.lat ?? 0}&lon=${
|
}?z=${currentLocation.data.zoom ?? 0}&lat=${
|
||||||
currentLocation.data.lon ?? 0
|
currentLocation.data.lat ?? 0
|
||||||
}`;
|
}&lon=${currentLocation.data.lon ?? 0}`;
|
||||||
new MapControlButton(
|
new MapControlButton(
|
||||||
new Link(Svg.pop_out_img, url, true).SetClass(
|
new Link(Svg.pop_out_img, url, true).SetClass(
|
||||||
"block w-full h-full p-1.5"
|
"block w-full h-full p-1.5"
|
||||||
|
@ -182,11 +178,13 @@ export class InitUiElements {
|
||||||
"--subtle-detail-color"
|
"--subtle-detail-color"
|
||||||
);
|
);
|
||||||
const icon = L.icon({
|
const icon = L.icon({
|
||||||
iconUrl: Img.AsData(Svg.home_white_bg.replace(/#ffffff/g, color)),
|
iconUrl: Img.AsData(
|
||||||
|
Svg.home_white_bg.replace(/#ffffff/g, color)
|
||||||
|
),
|
||||||
iconSize: [30, 30],
|
iconSize: [30, 30],
|
||||||
iconAnchor: [15, 15],
|
iconAnchor: [15, 15],
|
||||||
});
|
});
|
||||||
const marker = L.marker([home.lat, home.lon], {icon: icon});
|
const marker = L.marker([home.lat, home.lon], { icon: icon });
|
||||||
marker.addTo(State.state.leafletMap.data);
|
marker.addTo(State.state.leafletMap.data);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -196,31 +194,26 @@ export class InitUiElements {
|
||||||
State.state.currentGPSLocation,
|
State.state.currentGPSLocation,
|
||||||
State.state.leafletMap,
|
State.state.leafletMap,
|
||||||
State.state.layoutToUse
|
State.state.layoutToUse
|
||||||
), {
|
),
|
||||||
dontStyle : true
|
{
|
||||||
|
dontStyle: true,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
undefined,
|
undefined,
|
||||||
State.state.featureSwitchGeolocation
|
State.state.featureSwitchGeolocation
|
||||||
);
|
);
|
||||||
|
|
||||||
const plus = new MapControlButton(
|
const plus = new MapControlButton(Svg.plus_zoom_svg()).onClick(() => {
|
||||||
Svg.plus_zoom_svg()
|
|
||||||
).onClick(() => {
|
|
||||||
State.state.locationControl.data.zoom++;
|
State.state.locationControl.data.zoom++;
|
||||||
State.state.locationControl.ping();
|
State.state.locationControl.ping();
|
||||||
});
|
});
|
||||||
|
|
||||||
const min = new MapControlButton(
|
const min = new MapControlButton(Svg.min_zoom_svg()).onClick(() => {
|
||||||
Svg.min_zoom_svg()
|
|
||||||
).onClick(() => {
|
|
||||||
State.state.locationControl.data.zoom--;
|
State.state.locationControl.data.zoom--;
|
||||||
State.state.locationControl.ping();
|
State.state.locationControl.ping();
|
||||||
});
|
});
|
||||||
|
|
||||||
new Combine(
|
new Combine([plus, min, geolocationButton])
|
||||||
[plus, min, geolocationButton]
|
|
||||||
)
|
|
||||||
.SetClass("flex flex-col")
|
.SetClass("flex flex-col")
|
||||||
.AttachTo("bottom-right");
|
.AttachTo("bottom-right");
|
||||||
|
|
||||||
|
@ -262,7 +255,9 @@ export class InitUiElements {
|
||||||
"last-loaded-user-layout"
|
"last-loaded-user-layout"
|
||||||
);
|
);
|
||||||
if (hash.length < 10) {
|
if (hash.length < 10) {
|
||||||
hash = dedicatedHashFromLocalStorage.data ?? hashFromLocalStorage.data;
|
hash =
|
||||||
|
dedicatedHashFromLocalStorage.data ??
|
||||||
|
hashFromLocalStorage.data;
|
||||||
} else {
|
} else {
|
||||||
console.log("Saving hash to local storage");
|
console.log("Saving hash to local storage");
|
||||||
hashFromLocalStorage.setData(hash);
|
hashFromLocalStorage.setData(hash);
|
||||||
|
@ -309,9 +304,11 @@ export class InitUiElements {
|
||||||
// ?-Button on Desktop, opens panel with close-X.
|
// ?-Button on Desktop, opens panel with close-X.
|
||||||
const help = new MapControlButton(Svg.help_svg());
|
const help = new MapControlButton(Svg.help_svg());
|
||||||
help.onClick(() => isOpened.setData(true));
|
help.onClick(() => isOpened.setData(true));
|
||||||
new Toggle(fullOptions.SetClass("welcomeMessage"), help, isOpened).AttachTo(
|
new Toggle(
|
||||||
"messagesbox"
|
fullOptions.SetClass("welcomeMessage"),
|
||||||
);
|
help,
|
||||||
|
isOpened
|
||||||
|
).AttachTo("messagesbox");
|
||||||
const openedTime = new Date().getTime();
|
const openedTime = new Date().getTime();
|
||||||
State.state.locationControl.addCallback(() => {
|
State.state.locationControl.addCallback(() => {
|
||||||
if (new Date().getTime() - openedTime < 15 * 1000) {
|
if (new Date().getTime() - openedTime < 15 * 1000) {
|
||||||
|
@ -326,8 +323,8 @@ export class InitUiElements {
|
||||||
});
|
});
|
||||||
isOpened.setData(
|
isOpened.setData(
|
||||||
Hash.hash.data === undefined ||
|
Hash.hash.data === undefined ||
|
||||||
Hash.hash.data === "" ||
|
Hash.hash.data === "" ||
|
||||||
Hash.hash.data == "welcome"
|
Hash.hash.data == "welcome"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,23 +363,18 @@ export class InitUiElements {
|
||||||
State.state.featureSwitchLayers
|
State.state.featureSwitchLayers
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const filterView = new ScrollableFullScreen(
|
||||||
const filterView =
|
() => Translations.t.general.layerSelection.title.Clone(),
|
||||||
new ScrollableFullScreen(
|
() =>
|
||||||
() => Translations.t.general.layerSelection.title.Clone(),
|
new FilterView(State.state.filteredLayers).SetClass(
|
||||||
() =>
|
"block p-1 rounded-full"
|
||||||
new FilterView(State.state.filteredLayers).SetClass(
|
),
|
||||||
"block p-1 rounded-full"
|
undefined,
|
||||||
),
|
State.state.filterIsOpened
|
||||||
undefined,
|
|
||||||
State.state.filterIsOpened
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
const filterMapControlButton = new MapControlButton(
|
|
||||||
Svg.filter_svg()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const filterMapControlButton = new MapControlButton(Svg.filter_svg());
|
||||||
|
|
||||||
const filterButton = new Toggle(
|
const filterButton = new Toggle(
|
||||||
filterView,
|
filterView,
|
||||||
filterMapControlButton,
|
filterMapControlButton,
|
||||||
|
@ -497,7 +489,7 @@ export class InitUiElements {
|
||||||
const flayer = {
|
const flayer = {
|
||||||
isDisplayed: isDisplayed,
|
isDisplayed: isDisplayed,
|
||||||
layerDef: layer,
|
layerDef: layer,
|
||||||
appliedFilters: new UIEventSource<TagsFilter>(undefined)
|
appliedFilters: new UIEventSource<TagsFilter>(undefined),
|
||||||
};
|
};
|
||||||
flayers.push(flayer);
|
flayers.push(flayer);
|
||||||
}
|
}
|
||||||
|
@ -534,7 +526,9 @@ export class InitUiElements {
|
||||||
source,
|
source,
|
||||||
State.state.osmApiFeatureSource
|
State.state.osmApiFeatureSource
|
||||||
);
|
);
|
||||||
selectedFeatureHandler.zoomToSelectedFeature(State.state.locationControl);
|
selectedFeatureHandler.zoomToSelectedFeature(
|
||||||
|
State.state.locationControl
|
||||||
|
);
|
||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,192 +1,170 @@
|
||||||
{
|
{
|
||||||
"id": "parking",
|
"id": "parking",
|
||||||
"name": {
|
"name": {
|
||||||
"nl": "parking"
|
"nl": "Parking"
|
||||||
},
|
|
||||||
"minzoom": 12,
|
|
||||||
"source": {
|
|
||||||
"osmTags": {
|
|
||||||
"and": [
|
|
||||||
{
|
|
||||||
"or": [
|
|
||||||
"amenity=parking",
|
|
||||||
"amenity=motorcycle_parking",
|
|
||||||
"amenity=bicycle_parking"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"render": {
|
|
||||||
"nl": "Parking"
|
|
||||||
},
|
},
|
||||||
"mappings": [
|
"minzoom": 12,
|
||||||
{
|
"source": {
|
||||||
"if": "amenity=parking",
|
"osmTags": {
|
||||||
"then": {
|
"and": [
|
||||||
"nl": "{name:nl}"
|
{
|
||||||
|
"or": [
|
||||||
|
"amenity=parking",
|
||||||
|
"amenity=motorcycle_parking",
|
||||||
|
"amenity=bicycle_parking"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
"title": {
|
||||||
"if": "amenity=motorcycle_parking",
|
"render": {
|
||||||
"then": {
|
"nl": "Parking"
|
||||||
"nl": "{name}"
|
},
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "amenity=parking",
|
||||||
|
"then": {
|
||||||
|
"nl": "{name:nl}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "amenity=motorcycle_parking",
|
||||||
|
"then": {
|
||||||
|
"nl": "{name}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "amenity=bicycle_parking",
|
||||||
|
"then": {
|
||||||
|
"nl": "Fietsenstalling"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"render": "./assets/layers/parking/parking.svg"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"nl": "Parking"
|
||||||
|
},
|
||||||
|
"tagRenderings": [
|
||||||
|
"images",
|
||||||
|
{
|
||||||
|
"#": "Access tag",
|
||||||
|
"render": {
|
||||||
|
"nl": "De toegankelijkheid van dit gebied is: {access:description}"
|
||||||
|
},
|
||||||
|
"question": {
|
||||||
|
"nl": "Is dit gebied toegankelijk?"
|
||||||
|
},
|
||||||
|
"freeform": {
|
||||||
|
"key": "access:description"
|
||||||
|
},
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"and": ["access=yes", "fee="]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"nl": "Vrij toegankelijk"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"and": ["access=no", "fee="]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"nl": "Niet toegankelijk"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"and": ["access=private", "fee="]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"nl": "Niet toegankelijk, want privégebied"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"and": ["access=permissive", "fee="]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"nl": "Toegankelijk, ondanks dat het privegebied is"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"and": ["access=guided", "fee="]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"nl": "Enkel toegankelijk met een gids of tijdens een activiteit"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"and": ["access=yes", "fee=yes"]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"nl": "Toegankelijk mits betaling"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"#": "Operator tag",
|
||||||
|
"render": {
|
||||||
|
"nl": "Beheer door {operator}"
|
||||||
|
},
|
||||||
|
"question": {
|
||||||
|
"nl": "Wie beheert dit pad?"
|
||||||
|
},
|
||||||
|
"freeform": {
|
||||||
|
"key": "operator"
|
||||||
|
},
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"and": ["operator=Natuurpunt"]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"nl": "<img src=\"./assets/themes/buurtnatuur/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door Natuurpunt"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"and": ["operator~(n|N)atuurpunt.*"]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"nl": "<img src=\"./assets/themes/buurtnatuur/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door {operator}"
|
||||||
|
},
|
||||||
|
"hideInAnswer": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
],
|
||||||
{
|
"wayHandling": 1,
|
||||||
"if": "amenity=bicycle_parking",
|
"iconSize": {
|
||||||
"then": {
|
"render": "36,36,center"
|
||||||
"nl": "Fietsenstalling"
|
},
|
||||||
|
"color": {
|
||||||
|
"render": "#E1AD01"
|
||||||
|
},
|
||||||
|
"presets": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"amenity=parking",
|
||||||
|
"amenity=motorcycle_parking",
|
||||||
|
"amenity=bicycle_parking",
|
||||||
|
"fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen"
|
||||||
|
],
|
||||||
|
"title": {
|
||||||
|
"nl": "Paden"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"nl": "Voeg een ontbrekend, erkend pad toe."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"icon": {
|
|
||||||
"render": "./assets/layers/parking/parking.svg"
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"nl": "Parking"
|
|
||||||
},
|
|
||||||
"tagRenderings": [
|
|
||||||
"images",
|
|
||||||
{
|
|
||||||
"#": "Access tag",
|
|
||||||
"render": {
|
|
||||||
"nl": "De toegankelijkheid van dit gebied is: {access:description}"
|
|
||||||
},
|
|
||||||
"question": {
|
|
||||||
"nl": "Is dit gebied toegankelijk?"
|
|
||||||
},
|
|
||||||
"freeform": {
|
|
||||||
"key": "access:description"
|
|
||||||
},
|
|
||||||
"mappings": [
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"and": [
|
|
||||||
"access=yes",
|
|
||||||
"fee="
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"nl": "Vrij toegankelijk"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"and": [
|
|
||||||
"access=no",
|
|
||||||
"fee="
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"nl": "Niet toegankelijk"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"and": [
|
|
||||||
"access=private",
|
|
||||||
"fee="
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"nl": "Niet toegankelijk, want privégebied"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"and": [
|
|
||||||
"access=permissive",
|
|
||||||
"fee="
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"nl": "Toegankelijk, ondanks dat het privegebied is"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"and": [
|
|
||||||
"access=guided",
|
|
||||||
"fee="
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"nl": "Enkel toegankelijk met een gids of tijdens een activiteit"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"and": [
|
|
||||||
"access=yes",
|
|
||||||
"fee=yes"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"nl": "Toegankelijk mits betaling"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"#": "Operator tag",
|
|
||||||
"render": {
|
|
||||||
"nl": "Beheer door {operator}"
|
|
||||||
},
|
|
||||||
"question": {
|
|
||||||
"nl": "Wie beheert dit pad?"
|
|
||||||
},
|
|
||||||
"freeform": {
|
|
||||||
"key": "operator"
|
|
||||||
},
|
|
||||||
"mappings": [
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"and": [
|
|
||||||
"operator=Natuurpunt"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"nl": "<img src=\"./assets/themes/buurtnatuur/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door Natuurpunt"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"and": [
|
|
||||||
"operator~(n|N)atuurpunt.*"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"nl": "<img src=\"./assets/themes/buurtnatuur/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door {operator}"
|
|
||||||
},
|
|
||||||
"hideInAnswer": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"wayHandling": 1,
|
|
||||||
"iconSize": {
|
|
||||||
"render": "36,36,center"
|
|
||||||
},
|
|
||||||
"color": {
|
|
||||||
"render": "#E1AD01"
|
|
||||||
},
|
|
||||||
"presets": [
|
|
||||||
{
|
|
||||||
"tags": [
|
|
||||||
"amenity=parking",
|
|
||||||
"amenity=motorcycle_parking",
|
|
||||||
"amenity=bicycle_parking",
|
|
||||||
"fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen"
|
|
||||||
],
|
|
||||||
"title": {
|
|
||||||
"nl": "Paden"
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"nl": "Voeg een ontbrekend, erkend pad toe."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
|
@ -26,8 +26,7 @@
|
||||||
"widenFactor": 0.05,
|
"widenFactor": 0.05,
|
||||||
"socialImage": "",
|
"socialImage": "",
|
||||||
"defaultBackgroundId": "CartoDB.Positron",
|
"defaultBackgroundId": "CartoDB.Positron",
|
||||||
"layers": [
|
"layers": [{
|
||||||
{
|
|
||||||
"#": "Nature reserve with geometry, z>=13",
|
"#": "Nature reserve with geometry, z>=13",
|
||||||
"builtin": "nature_reserve",
|
"builtin": "nature_reserve",
|
||||||
"override": {
|
"override": {
|
||||||
|
@ -46,6 +45,14 @@
|
||||||
"minzoomVisible": 0,
|
"minzoomVisible": 0,
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/nature_reserve.svg"
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/nature_reserve.svg"
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": {
|
||||||
|
"and": [
|
||||||
|
"leisure=nature_reserve",
|
||||||
|
"boundary=protected_area"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -65,6 +72,14 @@
|
||||||
"minzoom": 1,
|
"minzoom": 1,
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/nature_reserve.svg"
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/nature_reserve.svg"
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": {
|
||||||
|
"and": [
|
||||||
|
"leisure=nature_reserve",
|
||||||
|
"boundary=protected_area"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -84,6 +99,14 @@
|
||||||
"minzoom": "10",
|
"minzoom": "10",
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/information.svg"
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/information.svg"
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": {
|
||||||
|
"and": [
|
||||||
|
"information=visitor_centre",
|
||||||
|
"information=office"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -103,8 +126,7 @@
|
||||||
"minzoom": "13",
|
"minzoom": "13",
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/trail.svg",
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/trail.svg",
|
||||||
"mappings": [
|
"mappings": [{
|
||||||
{
|
|
||||||
"if": "wheelchair=yes",
|
"if": "wheelchair=yes",
|
||||||
"then": "circle:#FE6F32;./assets/themes/natuurpunt/walk_wheelchair.svg"
|
"then": "circle:#FE6F32;./assets/themes/natuurpunt/walk_wheelchair.svg"
|
||||||
},
|
},
|
||||||
|
@ -113,6 +135,15 @@
|
||||||
"then": "circle:#FE6F32;./assets/themes/natuurpunt/pushchair.svg"
|
"then": "circle:#FE6F32;./assets/themes/natuurpunt/pushchair.svg"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": {
|
||||||
|
"and": [
|
||||||
|
"route=hiking",
|
||||||
|
"route=bycicle",
|
||||||
|
"route=horse"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -127,8 +158,7 @@
|
||||||
},
|
},
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/toilets.svg",
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/toilets.svg",
|
||||||
"mappings": [
|
"mappings": [{
|
||||||
{
|
|
||||||
"if": "wheelchair=yes",
|
"if": "wheelchair=yes",
|
||||||
"then": "circle:#FE6F32;./assets/themes/natuurpunt/wheelchair.svg"
|
"then": "circle:#FE6F32;./assets/themes/natuurpunt/wheelchair.svg"
|
||||||
},
|
},
|
||||||
|
@ -137,6 +167,9 @@
|
||||||
"then": "circle:#FE6F32;./assets/themes/natuurpunt/urinal.svg"
|
"then": "circle:#FE6F32;./assets/themes/natuurpunt/urinal.svg"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": "amenity=toilets"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -152,7 +185,30 @@
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/birdhide.svg",
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/birdhide.svg",
|
||||||
"mappings": null
|
"mappings": null
|
||||||
}
|
},
|
||||||
|
"deletion": [{
|
||||||
|
"if": "leisure=bird_hide",
|
||||||
|
"then": {
|
||||||
|
"hardDeletionTags": "leisure=bird_hide"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"if": {
|
||||||
|
"or": [
|
||||||
|
"building=yes",
|
||||||
|
"shelter=yes",
|
||||||
|
"amenity=shelter"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"hardDeletionTags": {
|
||||||
|
"and": [
|
||||||
|
"building=yes",
|
||||||
|
"shelter=yes",
|
||||||
|
"amenity=shelter"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -166,6 +222,9 @@
|
||||||
},
|
},
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/picnic_table.svg"
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/picnic_table.svg"
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": "leisure=picnic_table"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -180,6 +239,9 @@
|
||||||
},
|
},
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/drips.svg"
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/drips.svg"
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": "amenity=drinking_water"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -189,15 +251,12 @@
|
||||||
"minzoom": "16",
|
"minzoom": "16",
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/parking.svg",
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/parking.svg",
|
||||||
"mappings": [
|
"mappings": [{
|
||||||
{
|
"if": "amenity=bicycle_parking",
|
||||||
"if": "amenity=bicycle_parking",
|
"then": "circle:#FE6F32;./assets/themes/natuurpunt/parkingbike.svg"
|
||||||
"then": "circle:#FE6F32;./assets/themes/natuurpunt/parkingbike.svg"
|
}]
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"iconOverlays": [
|
"iconOverlays": [{
|
||||||
{
|
|
||||||
"if": "amenity=motorcycle_parking",
|
"if": "amenity=motorcycle_parking",
|
||||||
"then": "circle:#335D9F;./assets/themes/natuurpunt/parkingmotor.svg",
|
"then": "circle:#335D9F;./assets/themes/natuurpunt/parkingmotor.svg",
|
||||||
"badge": true
|
"badge": true
|
||||||
|
@ -207,7 +266,16 @@
|
||||||
"then": "circle:#335D9F;./assets/themes/natuurpunt/parkingwheels.svg",
|
"then": "circle:#335D9F;./assets/themes/natuurpunt/parkingwheels.svg",
|
||||||
"badge": true
|
"badge": true
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": {
|
||||||
|
"and": [
|
||||||
|
"amenity=parking",
|
||||||
|
"amenity=motorcycle_parking",
|
||||||
|
"amenity=bicycle_parking"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -221,6 +289,9 @@
|
||||||
},
|
},
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/information_board.svg"
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/information_board.svg"
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": "information=board"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -235,6 +306,9 @@
|
||||||
},
|
},
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/bench.svg"
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/bench.svg"
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": "amenity=bench"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -249,6 +323,9 @@
|
||||||
},
|
},
|
||||||
"icon": {
|
"icon": {
|
||||||
"render": "circle:#FE6F32;./assets/themes/natuurpunt/watermill.svg"
|
"render": "circle:#FE6F32;./assets/themes/natuurpunt/watermill.svg"
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"hardDeletionTags": "man_made=watermill"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue