Merge master
This commit is contained in:
commit
3088c829c5
9 changed files with 55 additions and 31 deletions
|
@ -9371,4 +9371,4 @@
|
|||
"render": "Turbina eòlica"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9655,4 +9655,4 @@
|
|||
"render": "větrná turbína"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3033,6 +3033,7 @@
|
|||
"climbing_opportunity": {
|
||||
"description": "Rückfallebene mit Orten, auf denen Klettern eventuell möglich ist. Sie wird erst angezeigt, wenn man stark hineinzoomt, um zu verhindern, dass Elemente doppelt hinzugefügt werden",
|
||||
"name": "Klettermöglichkeiten?",
|
||||
"snapName": "eine Wand, Klippe oder ein Felsen",
|
||||
"tagRenderings": {
|
||||
"climbing-opportunity-name": {
|
||||
"render": "<strong>{name}</strong>"
|
||||
|
@ -3434,6 +3435,7 @@
|
|||
"cycleways_and_roads": {
|
||||
"description": "Infrastruktur, die man mit dem Fahrrad befahren kann, begleitet von diesbezüglichen Fragen",
|
||||
"name": "Radwege und Straßen",
|
||||
"snapName": "eine Straße oder einen Radweg",
|
||||
"tagRenderings": {
|
||||
"Cycleway type for a road": {
|
||||
"mappings": {
|
||||
|
@ -5153,19 +5155,19 @@
|
|||
"then": "Pommesbude"
|
||||
},
|
||||
"10": {
|
||||
"then": "Hier werden chinesische Gerichte serviert"
|
||||
"then": "Chinesisch"
|
||||
},
|
||||
"11": {
|
||||
"then": "Hier werden griechische Gerichte serviert"
|
||||
"then": "Griechisch"
|
||||
},
|
||||
"12": {
|
||||
"then": "Hier werden indische Gerichte serviert"
|
||||
"then": "Indisch"
|
||||
},
|
||||
"13": {
|
||||
"then": "Hier werden türkische Gerichte serviert"
|
||||
"then": "Türkisches Restaurant"
|
||||
},
|
||||
"14": {
|
||||
"then": "Hier werden thailändische Gerichte serviert"
|
||||
"then": "Thailändisches Restaurant"
|
||||
},
|
||||
"2": {
|
||||
"then": "Bietet vorwiegend Pastagerichte an"
|
||||
|
@ -5176,17 +5178,20 @@
|
|||
"4": {
|
||||
"then": "Sandwichladen"
|
||||
},
|
||||
"5": {
|
||||
"then": "Burgersrestaurant"
|
||||
},
|
||||
"6": {
|
||||
"then": "Hier wird Sushi serviert"
|
||||
"then": "Sushi-Restaurant"
|
||||
},
|
||||
"7": {
|
||||
"then": "Hier wird Kaffee serviert"
|
||||
"then": "Kaffeebar"
|
||||
},
|
||||
"8": {
|
||||
"then": "Dies ist ein italienisches Restaurant (das mehr als nur Pasta und Pizza serviert)"
|
||||
"then": "Italienisches Restaurant (das mehr als nur Pasta und Pizza serviert)"
|
||||
},
|
||||
"9": {
|
||||
"then": "Hier werden französische Gerichte serviert"
|
||||
"then": "Französisches Restaurant"
|
||||
}
|
||||
},
|
||||
"question": "Was für Essen gibt es hier?",
|
||||
|
@ -5699,6 +5704,9 @@
|
|||
},
|
||||
"1": {
|
||||
"then": "Dies ist ein traditioneller (softwareorientierter) Hackerspace"
|
||||
},
|
||||
"2": {
|
||||
"then": "Dies ist ein <b>Hackerspace/Hack-Lab</b>, das sich hauptsächlich auf grundlegende Computerkenntnisse konzentriert, recycelte Geräte verwendet und/oder der Gemeinschaft Internet bereitstellt. Es befindet sich typischerweise in autonomen Räumen, besetzten Häusern oder sozialen Einrichtungen."
|
||||
}
|
||||
},
|
||||
"question": "Ist dies ein Hackerspace oder ein Makerspace?"
|
||||
|
@ -5910,6 +5918,7 @@
|
|||
"indoors": {
|
||||
"description": "Grundlegende Innenraumkartierung: zeigt Umrisse von Räumen",
|
||||
"name": "Innenräume",
|
||||
"snapName": "eine Innenwand",
|
||||
"tagRenderings": {
|
||||
"name": {
|
||||
"freeform": {
|
||||
|
@ -5952,6 +5961,9 @@
|
|||
"14": {
|
||||
"then": "Dies ist ein Büro"
|
||||
},
|
||||
"15": {
|
||||
"then": "Dies ist ein Kopierraum"
|
||||
},
|
||||
"16": {
|
||||
"then": "Dies ist eine Gefängniszelle"
|
||||
},
|
||||
|
@ -6079,6 +6091,7 @@
|
|||
"title": "einen Bordstein"
|
||||
}
|
||||
},
|
||||
"snapName": "ein Bordstein",
|
||||
"tagRenderings": {
|
||||
"kerb-height": {
|
||||
"freeform": {
|
||||
|
@ -7296,7 +7309,8 @@
|
|||
},
|
||||
"pedestrian_path": {
|
||||
"description": "Fußgängerwege, insbesondere für die Navigation in Gebäuden und die Aufnahme von Eingängen in diese Ebene",
|
||||
"name": "Fußgängerwege"
|
||||
"name": "Fußgängerwege",
|
||||
"snapName": "ein Fußweg"
|
||||
},
|
||||
"pharmacy": {
|
||||
"description": "Eine Ebene mit Apotheken, die (wahrscheinlich) verschreibungspflichtige Medikamente ausgeben",
|
||||
|
@ -8183,6 +8197,9 @@
|
|||
},
|
||||
"4": {
|
||||
"then": "Dieser Ort bietet kabelgebundenen Internetzugang"
|
||||
},
|
||||
"5": {
|
||||
"then": "Dieser Ort bietet sowohl drahtloses Internet als auch Internetzugang über ein Terminal oder einen Computer"
|
||||
}
|
||||
},
|
||||
"question": "Bietet dieser Ort Internetzugang?"
|
||||
|
@ -9037,6 +9054,7 @@
|
|||
"shelter": {
|
||||
"description": "Eine Ebene, die verschiedene Bauformen von Unterständen zeigt",
|
||||
"name": "Unterstände",
|
||||
"snapName": "ein Unterstand",
|
||||
"tagRenderings": {
|
||||
"shelter-type": {
|
||||
"mappings": {
|
||||
|
@ -12005,6 +12023,7 @@
|
|||
},
|
||||
"walls_and_buildings": {
|
||||
"description": "Spezielle Ebene, die alle Wände und Gebäude bereitstellt. Diese Ebene ist nützlich in Voreinstellungen für Objekte, die an Wänden platziert werden können (z. B. AEDs, Briefkästen, Eingänge, Adressen, Überwachungskameras, ...). Diese Ebene ist standardmäßig unsichtbar und kann vom Benutzer nicht umgeschaltet werden.",
|
||||
"snapName": "eine Wand oder ein Gebäude",
|
||||
"tagRenderings": {
|
||||
"entrance_info": {
|
||||
"mappings": {
|
||||
|
@ -12235,4 +12254,4 @@
|
|||
"render": "Windrad"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2731,7 +2731,7 @@
|
|||
"then": "Hamburguesas"
|
||||
},
|
||||
"6": {
|
||||
"then": "Aquí se sirve sushi"
|
||||
"then": "Restaurante de sushi"
|
||||
},
|
||||
"7": {
|
||||
"then": "Aquí se sirve café"
|
||||
|
@ -2740,7 +2740,7 @@
|
|||
"then": "Este es un restaurante italiano (que sirve algo más que pasta y pizza)"
|
||||
},
|
||||
"9": {
|
||||
"then": "Aquí se sirven platos Franceses"
|
||||
"then": "Restaurante francés"
|
||||
}
|
||||
},
|
||||
"question": "¿Qué tipo de comida sirven aquí?",
|
||||
|
@ -5079,4 +5079,4 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7559,4 +7559,4 @@
|
|||
"render": "éolienne"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3707,4 +3707,4 @@
|
|||
"render": "turbina wiatrowa"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,12 @@
|
|||
export let coordinate: { lon: number; lat: number } = undefined
|
||||
|
||||
/**
|
||||
* The center of the map at all times
|
||||
* Max distance that one is allowed to move, to prevent to stray too much
|
||||
*/
|
||||
export let maxDistanceInMeters = 50
|
||||
|
||||
/**
|
||||
* The resulting location; either the map center or the snapped coordinate
|
||||
* If undefined at the beginning, 'coordinate' will be used
|
||||
*/
|
||||
export let value: UIEventSource<{ lon: number; lat: number }>
|
||||
|
@ -57,11 +62,6 @@
|
|||
|
||||
export let snappedTo: UIEventSource<WayId | undefined>
|
||||
|
||||
let preciseLocation: UIEventSource<{ lon: number; lat: number }> = new UIEventSource<{
|
||||
lon: number
|
||||
lat: number
|
||||
}>(undefined)
|
||||
|
||||
const map: UIEventSource<MlMap> = new UIEventSource<MlMap>(undefined)
|
||||
export let mapProperties: Partial<MapProperties> & { location } = {
|
||||
zoom: new UIEventSource<number>(19),
|
||||
|
@ -69,10 +69,7 @@
|
|||
/*If no snapping needed: the value is simply the map location;
|
||||
* If snapping is needed: the value will be set later on by the snapping feature source
|
||||
* */
|
||||
location:
|
||||
snapToLayers?.length > 0
|
||||
? new UIEventSource<{ lon: number; lat: number }>(coordinate)
|
||||
: value,
|
||||
location: new UIEventSource<{ lon: number; lat: number }>(coordinate),
|
||||
bounds: new UIEventSource<BBox>(undefined),
|
||||
allowMoving: new UIEventSource<boolean>(true),
|
||||
allowZooming: new UIEventSource<boolean>(true),
|
||||
|
@ -143,15 +140,16 @@
|
|||
})
|
||||
withCorrectedAttributes.features.addCallbackAndRunD((f) => console.log("Snapped point is", f))
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<LocationInput
|
||||
{map}
|
||||
on:click
|
||||
{mapProperties}
|
||||
value={preciseLocation}
|
||||
value={ snapToLayers?.length > 0 ? new UIEventSource(undefined) : value}
|
||||
initialCoordinate={coordinate}
|
||||
maxDistanceInMeters={50}
|
||||
{maxDistanceInMeters}
|
||||
>
|
||||
<slot name="image" slot="image">
|
||||
<Move_arrows class="h-full max-h-24" />
|
||||
|
|
|
@ -18,9 +18,15 @@
|
|||
/**
|
||||
* A visualisation to pick a location on a map background
|
||||
*/
|
||||
/**
|
||||
* The center of the map. If it contains a value (and initialCoordinate is not given), this will be used as start coordinate
|
||||
*/
|
||||
export let value: UIEventSource<{ lon: number; lat: number }>
|
||||
export let initialCoordinate: { lon: number; lat: number }
|
||||
export let initialCoordinate: { lon: number; lat: number } = undefined
|
||||
initialCoordinate = initialCoordinate ?? value.data
|
||||
/**
|
||||
* Max distance that one is allowed to stray from the initial coordinate
|
||||
*/
|
||||
export let maxDistanceInMeters: number = undefined
|
||||
export let mapProperties: Partial<MapProperties> & {
|
||||
readonly location: UIEventSource<{ lon: number; lat: number }>
|
||||
|
|
|
@ -106,6 +106,7 @@
|
|||
snapToLayers={$reason.snapTo}
|
||||
targetLayer={layer}
|
||||
dontShow={[id]}
|
||||
maxDistanceInMeters={200}
|
||||
/>
|
||||
<div class="absolute bottom-0 left-0">
|
||||
<OpenBackgroundSelectorButton {state} />
|
||||
|
|
Loading…
Reference in a new issue