Merge branch 'master' into develop

This commit is contained in:
pietervdvn 2022-02-24 03:09:34 +01:00
commit 80c24bddca
14 changed files with 97 additions and 60 deletions

View file

@ -209,9 +209,9 @@ export class BBox {
}
private check() {
private check() {
if (isNaN(this.maxLon) || isNaN(this.maxLat) || isNaN(this.minLon) || isNaN(this.minLat)) {
console.log(this);
console.trace("BBox with NaN detected:", this);
throw "BBOX has NAN";
}
}

View file

@ -2,7 +2,7 @@ import {Utils} from "../Utils";
export default class Constants {
public static vNumber = "0.16.1";
public static vNumber = "0.16.2";
public static ImgurApiKey = '7070e7167f0a25a'
public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85"

View file

@ -41,6 +41,7 @@ import {AutoAction} from "./AutoApplyButton";
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig";
import {Changes} from "../../Logic/Osm/Changes";
import {ElementStorage} from "../../Logic/ElementStorage";
import Hash from "../../Logic/Web/Hash";
/**
* A helper class for the various import-flows.
@ -268,8 +269,8 @@ ${Utils.special_visualizations_importRequirementDocs}
originalFeatureTags.data["_imported"] = "yes"
originalFeatureTags.ping() // will set isImported as per its definition
state.changes.applyAction(action)
state.selectedElement.setData(state.allElements.ContainingFeatures.get(action.newElementId ?? action.mainObjectId))
const newId = action.newElementId ?? action.mainObjectId
state.selectedElement.setData(state.allElements.ContainingFeatures.get(newId))
}
})
@ -503,14 +504,23 @@ export class ImportWayButton extends AbstractImportButton implements AutoAction
mergeConfigs,
"import"
)
} else {
} else if(feature.geometry.type === "Polygon"){
const outer = coors[0]
return new CreateWayWithPointReuseAction(
args.newTags.data,
outer,
state,
mergeConfigs
)
}else if(feature.geometry.type === "LineString"){
return new CreateWayWithPointReuseAction(
args.newTags.data,
coors,
state,
mergeConfigs
)
}else{
throw "Unsupported type"
}
}
}
@ -572,6 +582,8 @@ export class ImportPointButton extends AbstractImportButton {
state.selectedElement.setData(state.allElements.ContainingFeatures.get(
newElementAction.newElementId
))
Hash.hash.setData(newElementAction.newElementId)
if (note_id !== undefined) {
state.osmConnection.closeNote(note_id, "imported")
originalFeatureTags.data["closed_at"] = new Date().toISOString()

View file

@ -1284,7 +1284,7 @@
},
"render": {
"en": "There are <b class='text-xl'>{socket:tesla_destination}</b> plugs of type <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (A Type 2 with cable branded as tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> available here",
"nl": "Hier zijn <b class='text-xl'>{socket:tesla_destination}</b> stekkers van het type <div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>"
"nl": "Hier zijn <b class='text-xl'>{socket:tesla_destination}</b> stekkers van het type <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>"
},
"freeform": {
"key": "socket:tesla_destination",
@ -2933,11 +2933,11 @@
"group": "technical",
"question": {
"en": "What voltage do the plugs with <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (A Type 2 with cable branded as tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> offer?",
"nl": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>"
"nl": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination).</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?"
},
"render": {
"en": "<div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (A Type 2 with cable branded as tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> outputs {socket:tesla_destination:voltage} volt",
"nl": "<div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> heeft een spanning van {socket:tesla_destination:voltage} volt"
"nl": "<div style='display: inline-block'><b><b>Tesla supercharger (destination).</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> heeft een spanning van {socket:tesla_destination:voltage} volt"
},
"freeform": {
"key": "socket:tesla_destination:voltage",
@ -3025,11 +3025,11 @@
"group": "technical",
"question": {
"en": "What power output does a single plug of type <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (A Type 2 with cable branded as tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> offer?",
"nl": "Welk vermogen levert een enkele stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?"
"nl": "Welk vermogen levert een enkele stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?"
},
"render": {
"en": "<div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (A Type 2 with cable branded as tesla)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> outputs at most {socket:tesla_destination:output}",
"nl": "<div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> levert een vermogen van maximaal {socket:tesla_destination:output}"
"nl": "<div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> levert een vermogen van maximaal {socket:tesla_destination:output}"
},
"freeform": {
"key": "socket:tesla_destination:output",

View file

@ -19,7 +19,8 @@
"minzoom": 14,
"title": {
"render": {
"en": "Entrance"
"en": "Entrance",
"nl": "Ingang"
}
},
"tagRenderings": [

View file

@ -139,14 +139,16 @@
{
"id": "etymology_multi_apply",
"render": {
"en": "{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}"
"en": "{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}",
"nl": "{multi_apply(_same_name_ids, name:etymology:wikidata,name:etymology, Wijzigingen worden automatisch gedaan op alle segmenten met dezelfde naam, true)}"
}
},
{
"id": "wikipedia",
"#": "Note that this is a _read_only_ option, to prevent people entering a 'wikidata'-link instead of 'name:etymology:wikidata'",
"render": {
"en": "A Wikipedia article about this <b>street</b> exists:<br/>{wikipedia():max-height:25rem}"
"en": "A Wikipedia article about this <b>street</b> exists:<br/>{wikipedia():max-height:25rem}",
"nl": "Een Wikipedia artikel over deze <b>straat</b> bestaat:<br/>{wikipedia():max-height:25rem}"
},
"condition": "wikidata~*"
}

View file

@ -7,7 +7,8 @@
"ru": "Карта огнетушителей.",
"fr": "Couche des extincteurs.",
"de": "Karte mit Feuerlöschern.",
"it": "Cartina degli estintori."
"it": "Cartina degli estintori.",
"nl": "Kaart van brandblussers."
},
"minzoom": 14,
"source": {
@ -25,18 +26,20 @@
"nb_NO": "Brannslokkere",
"fr": "Exctincteurs",
"de": "Feuerlöscher",
"it": "Estintori"
"it": "Estintori",
"nl": "Brandblussers"
}
},
"description": {
"en": "Map layer to show fire hydrants.",
"en": "Map layer to show fire extinguishers.",
"ja": "消火栓を表示するマップレイヤ。",
"zh_Hant": "顯示消防栓的地圖圖層。",
"nb_NO": "Kartlag for å vise brannslokkere.",
"ru": "Слой карты, отображающий огнетушители.",
"fr": "Couche des lances à incendie.",
"de": "Kartenebene zur Anzeige von Hydranten.",
"it": "Livello della mappa che mostra gli idranti antincendio."
"it": "Livello della mappa che mostra gli idranti antincendio.",
"nl": "Kaartlaag met brandblussers."
},
"tagRenderings": [
{
@ -48,7 +51,8 @@
"fr": "Emplacement : {location}",
"de": "Standort: {location}",
"eo": "Loko: {location}",
"it": "Posizione: {location}"
"it": "Posizione: {location}",
"nl": "Locatie: {location}"
},
"question": {
"en": "Where is it positioned?",
@ -108,7 +112,8 @@
"ru": "Огнетушитель",
"fr": "Extincteur",
"de": "Feuerlöscher",
"it": "Estintore"
"it": "Estintore",
"nl": "Brandblusser"
},
"description": {
"en": "A fire extinguisher is a small, portable device used to stop a fire",
@ -116,7 +121,8 @@
"ru": "Огнетушитель - небольшое переносное устройство для тушения огня",
"fr": "Un extincteur est un appareil portatif servant à éteindre un feu",
"de": "Ein Feuerlöscher ist ein kleines, tragbares Gerät, das dazu dient, ein Feuer zu löschen",
"it": "Un estintore è un dispositivo portatile di piccole dimensioni usato per spegnere un incendio"
"it": "Un estintore è un dispositivo portatile di piccole dimensioni usato per spegnere un incendio",
"nl": "Een brandblusser is een klein, draagbaar apparaat om een brand te blussen"
}
}
],

View file

@ -8,7 +8,8 @@
"ru": "Карта пожарных гидрантов",
"fr": "Carte des bornes incendie",
"de": "Karte der Hydranten",
"it": "Mappa degli idranti"
"it": "Mappa degli idranti",
"nl": "Kaart van brandkranen"
},
"minzoom": 14,
"source": {
@ -37,7 +38,8 @@
"ru": "Слой карты, отображающий пожарные гидранты.",
"fr": "Couche des bornes incendie.",
"de": "Kartenebene zur Anzeige von Hydranten.",
"it": "Livello della mappa che mostra gli idranti antincendio."
"it": "Livello della mappa che mostra gli idranti antincendio.",
"nl": "Kaartlaag met brandkranen."
},
"tagRenderings": [
{

View file

@ -504,9 +504,9 @@
]
},
"then": {
"nl": "Dit gebied wordt beheerd door Natuurpunt",
"icon": "./assets/themes/buurtnatuur/Natuurpunt.jpg"
}
"nl": "Dit gebied wordt beheerd door Natuurpunt"
},
"icon": "./assets/themes/buurtnatuur/Natuurpunt.jpg"
},
{
"if": {
@ -515,9 +515,9 @@
]
},
"then": {
"nl": "Dit gebied wordt beheerd door {operator}",
"icon": "./assets/themes/buurtnatuur/Natuurpunt.jpg"
"nl": "Dit gebied wordt beheerd door {operator}"
},
"icon": "./assets/themes/buurtnatuur/Natuurpunt.jpg",
"hideInAnswer": true
},
{
@ -527,9 +527,9 @@
]
},
"then": {
"nl": "Dit gebied wordt beheerd door het Agentschap Natuur en Bos",
"icon": "./assets/themes/buurtnatuur/ANB.jpg"
}
"nl": "Dit gebied wordt beheerd door het Agentschap Natuur en Bos"
},
"icon": "./assets/themes/buurtnatuur/ANB.jpg"
},
{
"if": {

View file

@ -3059,7 +3059,7 @@
}
},
"extinguisher": {
"description": "Map layer to show fire hydrants.",
"description": "Map layer to show fire extinguishers.",
"name": "Map of fire extinguishers.",
"presets": {
"0": {

View file

@ -1823,7 +1823,7 @@
},
"plugs-12": {
"question": "Hoeveel stekkers van type <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> heeft dit oplaadpunt?",
"render": "Hier zijn <b class='text-xl'>{socket:tesla_destination}</b> stekkers van het type <div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>"
"render": "Hier zijn <b class='text-xl'>{socket:tesla_destination}</b> stekkers van het type <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>"
},
"plugs-13": {
"question": "Hoeveel stekkers van type <div style='display: inline-block'><b><b>USB</b> om GSMs en kleine electronica op te laden</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> heeft dit oplaadpunt?",
@ -1923,8 +1923,8 @@
"then": "<b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo) levert een vermogen van maximaal 22 kw A"
}
},
"question": "Welk vermogen levert een enkele stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?",
"render": "<div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> levert een vermogen van maximaal {socket:tesla_destination:output}"
"question": "Welk vermogen levert een enkele stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?",
"render": "<div style='display: inline-block'><b><b>Tesla supercharger (destination)</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> levert een vermogen van maximaal {socket:tesla_destination:output}"
},
"power-output-13": {
"mappings": {
@ -2106,8 +2106,8 @@
"then": "<b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo) heeft een spanning van 400 volt"
}
},
"question": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>",
"render": "<div style='display: inline-block'><b><b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> heeft een spanning van {socket:tesla_destination:voltage} volt"
"question": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Tesla supercharger (destination).</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>?",
"render": "<div style='display: inline-block'><b><b>Tesla supercharger (destination).</b> (Een Type 2 met kabel en Tesla-logo)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> heeft een spanning van {socket:tesla_destination:voltage} volt"
},
"voltage-13": {
"mappings": {
@ -3037,12 +3037,18 @@
"width": {
"question": "Wat is de breedte van deze deur/toegang?"
}
},
"title": {
"render": "Ingang"
}
},
"etymology": {
"description": "Alle lagen met een gelinkt etymology",
"name": "Heeft etymology info",
"tagRenderings": {
"etymology_multi_apply": {
"render": "{multi_apply(_same_name_ids, name:etymology:wikidata,name:etymology, Wijzigingen worden automatisch gedaan op alle segmenten met dezelfde naam, true)}"
},
"simple etymology": {
"mappings": {
"0": {
@ -3055,6 +3061,9 @@
"street-name-sign-image": {
"render": "{image_carousel(image:streetsign)}<br/>{image_upload(image:streetsign, Voeg afbeelding van straatnaambordje toe)}"
},
"wikipedia": {
"render": "Een Wikipedia artikel over deze <b>straat</b> bestaat:<br/>{wikipedia():max-height:25rem}"
},
"wikipedia-etymology": {
"question": "Wat is het Wikidata-item van hetgeen dit object is naar vernoemd?",
"render": "<h3>Wikipedia artikel van de naamgever</h3>{wikipedia(name:etymology:wikidata):max-height:20rem}"
@ -3064,6 +3073,24 @@
}
}
},
"extinguisher": {
"description": "Kaartlaag met brandblussers.",
"name": "Kaart van brandblussers.",
"presets": {
"0": {
"description": "Een brandblusser is een klein, draagbaar apparaat om een brand te blussen",
"title": "Brandblusser"
}
},
"tagRenderings": {
"extinguisher-location": {
"render": "Locatie: {location}"
}
},
"title": {
"render": "Brandblussers"
}
},
"food": {
"filter": {
"0": {
@ -3372,6 +3399,10 @@
"render": "Speelweide in een park"
}
},
"hydrant": {
"description": "Kaartlaag met brandkranen.",
"name": "Kaart van brandkranen"
},
"information_board": {
"description": "Deze laag toont informatieborden in de publieke ruimte die uitleg geven over een bezienswaardigheid (bv. uitleg over het landschap, een ruine, een kaart van de omgeving, ...)",
"name": "Informatieborden",

View file

@ -294,6 +294,9 @@
"uploadingPicture": "Bezig met een foto te uploaden…",
"willBePublished": "Jouw foto wordt gepubliceerd "
},
"importHelper": {
"allAttributesSame": "Alle kaart-objecten om te importeren hebben deze tag"
},
"importLayer": {
"alreadyMapped": "Er staat hier reeds een {title} op de kaart; dit punt is een duplicaat. Verwijder deze van de kaart",
"description": "Deze laag toont kaart-nota's die wijzen op een {title}",

View file

@ -1,21 +0,0 @@
{
"buurtnatuur": {
"overrideAll": {
"tagRenderings+": {
"1": {
"mappings": {
"1": {
"then": "./assets/themes/buurtnatuur/Natuurpunt.jpg"
},
"2": {
"then": "./assets/themes/buurtnatuur/Natuurpunt.jpg"
},
"3": {
"then": "./assets/themes/buurtnatuur/ANB.jpg"
}
}
}
}
}
}
}

View file

@ -11,8 +11,9 @@ mkdir dist/assets 2> /dev/null
# This script ends every line with '&&' to chain everything. A failure will thus stop the build
npm run generate:editor-layer-index
npm run generate &&
npm run generate:layeroverview && # generate:layeroverview has to be run twice: the personal theme won't pick up all the layers otherwise
npm run test &&
npm run generate:layouts
npm run generate:layouts
if [ $? -ne 0 ]; then
echo "ERROR - stopping the build"