Merge branch 'develop' into feature/nsi
This commit is contained in:
commit
1dc7c2a45b
25 changed files with 287 additions and 75 deletions
|
@ -9,8 +9,8 @@
|
|||
"en"
|
||||
],
|
||||
"description": {
|
||||
"en": "<p><a href='https://velopark.be' target='_blank'>Velopark.be</a> is a website collecting data about bicycle parkings in a semi-crowdsourced way. However, only 'authorized' instances are allowed to make changes there, in practice the operator of the bicycle parking such as SNCB, de Lijn or the municipality. They have now decided to synchronize their dataset with OpenStreetMap, and this MapComplete-instance is set up to help link and import their data into OpenStreetMap.</p> How to use: <ul><li>A velopark-icon on the map (yellow with bicycle silhouette) represents a bicycle known by Velopark but not yet known by OpenStreetMap</li><li>Blue pins are bicycle parkings known by OpenStreetMap</li><liGreen pins are bicycle parkings known by OpenStreetMap with a reference to Velopark.be (<span class='literal-code'>ref-velopark=*</span>)</li><li>Click a velopark item, you can either link it with a nearby OSM-bicycle parking or create a new bicycle parking. Note that the geometry of Velopark is often incorrect and can be a few up till 100 meters away from the actual bicycle parking. Use aerial imagery, linked images and streetview to determine the correct location</li><li>Once linked, you can compare the Velopark- and OSM-attributes and apply correct attributes</li><li>If Velopark has an image, you can also link the image</li></ul> That's it! Thanks for helping to import this!",
|
||||
"nl": "<p><a href='https://velopark.be' target='_blank'>Velopark.be</a> is een website die data verzamelt over fietsenstallingen in een semi-crowdsource manier. Hierbij kunnen enkel geautorizeerde gebruikers data bijdragen, in de praktijk de uitbaters van de fietsenstallingen zoals de bevoegde gemeentebesturen, de NMBS of de Lijn. Velopark.be heeft nu beslist om hun data met OpenStreetMap te synchronizeren. Deze website is de tool om van Velopark.be naar OpenStreetMap te gaan en hun data te importeren.</p> Hoe te gebruiken? <ul><li>Een velopark-logo op de kaart (geel met een fietssilhouette) duidt een fietsenstalling aan die gekend is in Velopark maar nog niet gekend (of gelinkt) is aan een fietsenstalling in OpenStreetMap</li><li>Een groene pin duidt een fietsenstalling aan die gekend is in OpenStreetMap</li><li>Een licht-blauwe pin duidt een fietsenstalling aan uit OpenStreetMap die een link heeft naar Velopark.be (<span class='literal-code'>ref-velopark=*</span>)</li><li>Als je op een velopark-item klikt op, kan je deze linken met een fietsenstalling in de buurt (<25m) of een nieuwe fietstalling aan OpenStreetMap toevoegen. Let op: de geometrie van Velopark is zelden correct en wijkt makkelijk 10 meter of meer af van de echte locatie - in uitzonderlijke gevallen zelfs tot meer dan 100 meter. Gebruik de meest recente luchtfoto's, de gelinkte foto's en mapillary om de correcte locatie te bepalen</li><li>Eens gelinkt, kan je de Velopark- en OSM-attributen vergelijken en de correcte attributen toepassen in OpenStreetMap</li><li>Indien velopark een foto heeft, kan je die ook nog linken</li></ul> Dat is het! Bedankt om mee te helpen!"
|
||||
"en": "<p><a href='https://velopark.be' target='_blank'>Velopark.be</a> is a website collecting data about bicycle parkings in a semi-crowdsourced way. However, only 'authorized' instances are allowed to make changes there, in practice the operator of the bicycle parking such as SNCB, de Lijn or the municipality. They have now decided to synchronize their dataset with OpenStreetMap, and this MapComplete-instance is set up to help link and import their data into OpenStreetMap.</p> <p class='font-bold link-underline m-4'><a href='#current_view'>See the instructions</a></p>",
|
||||
"nl": "<p><a href='https://velopark.be' target='_blank'>Velopark.be</a> is een website die data verzamelt over fietsenstallingen in een semi-crowdsource manier. Hierbij kunnen enkel geautorizeerde gebruikers data bijdragen, in de praktijk de uitbaters van de fietsenstallingen zoals de bevoegde gemeentebesturen, de NMBS of de Lijn. Velopark.be heeft nu beslist om hun data met OpenStreetMap te synchronizeren. Deze website is de tool om van Velopark.be naar OpenStreetMap te gaan en hun data te importeren.</p><p class='font-bold link-underline m-4'><a href='#current_view'>Bekijk de instructies</a></p>"
|
||||
},
|
||||
"shortDescription": {
|
||||
"en": "A tool to import data from velopark.be into OpenStreetMap",
|
||||
|
@ -414,6 +414,38 @@
|
|||
"doCount": false,
|
||||
"minzoom": 18
|
||||
}
|
||||
},
|
||||
{
|
||||
"builtin": "current_view",
|
||||
"override": {
|
||||
"=title": {
|
||||
"en": "How to use?",
|
||||
"nl": "Hoe te gebruiken"
|
||||
},
|
||||
"+pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/svg/help.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
"tagRenderings": [
|
||||
{
|
||||
"id": "tutorial",
|
||||
"render": {
|
||||
"en": "How to use: <ul><li>A velopark-icon on the map (yellow with bicycle silhouette) represents a bicycle known by Velopark but not yet known by OpenStreetMap</li><li>Blue pins are bicycle parkings known by OpenStreetMap</li><liGreen pins are bicycle parkings known by OpenStreetMap with a reference to Velopark.be (<span class='literal-code'>ref-velopark=*</span>)</li><li>Click a velopark item, you can either link it with a nearby OSM-bicycle parking or create a new bicycle parking. Note that the geometry of Velopark is often incorrect and can be a few up till 100 meters away from the actual bicycle parking. Use aerial imagery, linked images and streetview to determine the correct location</li><li>Once linked, you can compare the Velopark- and OSM-attributes and apply correct attributes</li><li>If Velopark has an image, you can also link the image</li></ul> That's it! Thanks for helping to import this!",
|
||||
"nl": "Hoe te gebruiken? <ul><li>Een velopark-logo op de kaart (geel met een fietssilhouette) duidt een fietsenstalling aan die gekend is in Velopark maar nog niet gekend (of gelinkt) is aan een fietsenstalling in OpenStreetMap</li><li>Een groene pin duidt een fietsenstalling aan die gekend is in OpenStreetMap</li><li>Een licht-blauwe pin duidt een fietsenstalling aan uit OpenStreetMap die een link heeft naar Velopark.be (<span class='literal-code'>ref-velopark=*</span>)</li><li>Als je op een velopark-item klikt op, kan je deze linken met een fietsenstalling in de buurt (<25m) of een nieuwe fietstalling aan OpenStreetMap toevoegen. Let op: de geometrie van Velopark is zelden correct en wijkt makkelijk 10 meter of meer af van de echte locatie - in uitzonderlijke gevallen zelfs tot meer dan 100 meter. Gebruik de meest recente luchtfoto's, de gelinkte foto's en mapillary om de correcte locatie te bepalen</li><li>Eens gelinkt, kan je de Velopark- en OSM-attributen vergelijken en de correcte attributen toepassen in OpenStreetMap</li><li>Indien velopark een foto heeft, kan je die ook nog linken</li></ul> Dat is het! Bedankt om mee te helpen!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"overrideAll": {
|
||||
|
@ -473,6 +505,13 @@
|
|||
"tagRenderings+": [
|
||||
{
|
||||
"id": "no_save_needed",
|
||||
"condition": {
|
||||
"or": [
|
||||
"id~node/*",
|
||||
"id~way/*",
|
||||
"id~relation/*"
|
||||
]
|
||||
},
|
||||
"render": {
|
||||
"en": "Changes are automatically saved. You can simply close this popup with the cross at the upper-right",
|
||||
"nl": "Wijzigingen worden automatisch opgeslaan. Je kan deze popup gewoon sluiten met het kruisje rechtsbovenaan"
|
||||
|
|
|
@ -550,11 +550,20 @@
|
|||
"tryAgain": "Seleccioneu una espècie diferent"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "Quan facis un canvi al mapa, aquest canvi es registra a OpenStreetMap i està disponible públicament per a tothom. Un conjunt de canvis fet amb MapComplete inclou les dades següents: <ul><li>Els canvis que has fet</li><li>El teu nom d'usuari</li><li>Quan es fa aquest canvi</li><li>La petició que vas utilitzar mentre feies el canvi</li><li>L'idioma de la interfície d'usuari</li><li>Una indicació de la proximitat a la que estaves dels objectes canviats. Altres mapejadors poden utilitzar aquesta informació per determinar si es va fer un canvi basant-se en una enquesta o en una investigació remota</li></ul> Consulta <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\">la política de privadesa a OpenStreetMap.org</a> per obtenir informació detallada. Ens agradaria recordar-te que pots utilitzar un nom de ficció quan et registris.",
|
||||
"editingIntro": "Quan facis un canvi al mapa, aquest canvi es registra a OpenStreetMap i està disponible públicament per a tothom. Un conjunt de canvis fet amb MapComplete inclou les dades següents:",
|
||||
"editingOutro": "Consulta <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\">la política de privadesa a OpenStreetMap.org</a> per obtenir informació detallada. Ens agradaria recordar-te que pots utilitzar un nom de ficció quan et registris.",
|
||||
"editingTitle": "Quan es facin canvis",
|
||||
"geodata": "Quan MapComplete obté la geolocalització, aquesta i les ubicacions visitades anteriorment romandran al teu dispositiu. Les teves dades d'ubicació mai s'envien automàticament a cap altre lloc, tret que alguna funcionalitat indiqui clarament el contrari.",
|
||||
"geodataTitle": "La teva geoclocalització",
|
||||
"intro": "La privadesa és important, tant per a l'individu com per a la societat. MapComplete intenta respectar la vostra privadesa tant com sigui possible, fins al punt que no es necessita cap banner de galetes molest. No obstant això, encara volem informar-vos quina informació es recopila i es comparteix, en quines circumstàncies i per què es fan aquestes compensacions.",
|
||||
"items": {
|
||||
"changesYouMake": "Els canvis que has fet",
|
||||
"username": "El teu nom d'usuari",
|
||||
"date": "Quan es fa aquest canvi",
|
||||
"theme": "La petició que vas utilitzar mentre feies el canvi",
|
||||
"language": "L'idioma de la interfície d'usuari",
|
||||
"distanceIndicator": "Una indicació de la proximitat a la que estaves dels objectes canviats. Altres mapejadors poden utilitzar aquesta informació per determinar si es va fer un canvi basant-se en una enquesta o en una investigació remota"
|
||||
},
|
||||
"miscCookies": "MapComplete s'integra amb diversos altres serveis, especialment per carregar imatges de característiques. Les imatges s'allotgen en diversos servidors de tercers, que poden establir galetes per si mateixos.",
|
||||
"miscCookiesTitle": "Altres galetes",
|
||||
"surveillance": "Ja que estàs llegint la política de privadesa, probablement t'interessa la privadesa, a nosaltres també! Fins i tot hem creat <a href='https://mapcomplete.org/surveillance'>una tema que mostra les càmeres de vigilància.</a> No dubtis a mapejar-les totes!",
|
||||
|
|
|
@ -540,11 +540,20 @@
|
|||
"tryAgain": "Vyberte jiný druh"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "Když v mapě provedete změnu, tato změna se zaznamená na OpenStreetMap a je veřejně dostupná komukoli. Sada změn provedená pomocí MapComplete obsahuje následující data: <ul><li>Provedené změny</li><li>Vaše uživatelské jméno</li><li>Když je tato změna provedena</li><li>Motiv kterou jste použili při provádění změny</li><li>Jazyk uživatelského rozhraní</li><li>Indikace toho, jak blízko jste byli ke změněným objektům. Ostatní tvůrci map mohou tyto informace použít k určení, zda byla změna provedena na základě průzkumu nebo vzdáleného výzkumu</li></ul> Viz <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>zásady ochrany osobních údajů na OpenStreetMap.org</a> pro podrobné informace. Rádi bychom vám připomněli, že při registraci můžete použít smyšlené jméno.",
|
||||
"editingIntro": "Když v mapě provedete změnu, tato změna se zaznamená na OpenStreetMap a je veřejně dostupná komukoli. Sada změn provedená pomocí MapComplete obsahuje následující data:",
|
||||
"editingOutro": "Viz <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>zásady ochrany osobních údajů na OpenStreetMap.org</a> pro podrobné informace. Rádi bychom vám připomněli, že při registraci můžete použít smyšlené jméno.",
|
||||
"editingTitle": "Při provádění změn",
|
||||
"geodata": "Když MapComplete získá vaši geolokaci, vaše geolokace a dříve navštívená místa zůstanou ve vašem zařízení. Vaše údaje o poloze nejsou nikdy automaticky odesílány nikam jinam – pokud některá funkce jasně nestanoví jinak.",
|
||||
"geodataTitle": "Vaše geolokace",
|
||||
"intro": "Soukromí je důležité – jak pro jednotlivce, tak pro společnost. MapComplete se snaží co nejvíce respektovat vaše soukromí – až do té míry není potřeba žádný obtěžující banner cookie. Přesto bychom vás rádi informovali, které informace jsou shromažďovány a sdíleny, za jakých okolností a proč jsou tyto kompromisy prováděny.",
|
||||
"items": {
|
||||
"changesYouMake": "Provedené změny",
|
||||
"username": "Vaše uživatelské jméno",
|
||||
"date": "Když je tato změna provedena",
|
||||
"theme": "Motiv kterou jste použili při provádění změny",
|
||||
"language": "Jazyk uživatelského rozhraní",
|
||||
"distanceIndicator": "Indikace toho, jak blízko jste byli ke změněným objektům. Ostatní tvůrci map mohou tyto informace použít k určení, zda byla změna provedena na základě průzkumu nebo vzdáleného výzkumu"
|
||||
},
|
||||
"miscCookies": "MapComplete se integruje s různými dalšími službami, zejména pro načítání obrázků funkcí. Obrázky jsou hostovány na různých serverech třetích stran, které mohou samy nastavovat soubory cookie.",
|
||||
"miscCookiesTitle": "Jiné cookies",
|
||||
"surveillance": "Když čtete zásady ochrany osobních údajů, pravděpodobně vám záleží na soukromí – nám také! Dokonce jsme vytvořili <a href='https://mapcomplete.org/surveillance'>téma zobrazující sledovací kamery.</a> Neváhejte je všechny zmapovat!",
|
||||
|
|
|
@ -463,11 +463,20 @@
|
|||
"warnAnonymous": "Du er ikke logget ind. Vi vil ikke kunne kontakte dig for at løse dit problem."
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "Når du foretager en ændring på kortet, registreres ændringen på OpenStreetMap og er offentligt tilgængelig for alle. Et ændringssæt, der er foretaget med MapComplete, indeholder følgende data: <ul><li>De ændringer, du har foretaget</li><li>Dit brugernavn</li><li>Hvornår denne ændring er foretaget</li><li>Det tema, du brugte, mens du foretog ændringen</li><li></li><li>Sproget i brugergrænsefladen</li><li>En angivelse af, hvor tæt du var på ændrede objekter. Andre kortlæggere kan bruge disse oplysninger til at afgøre, om en ændring blev foretaget på baggrund af en kortlægning på stedet eller på baggrund af fjernundersøgelser</li></ul> Se <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\">privatlivspolitikken på OpenStreetMap.org</a> for detaljerede oplysninger. Vi minder dig om, at du kan bruge et fiktivt navn, når du tilmelder dig.",
|
||||
"editingIntro": "Når du foretager en ændring på kortet, registreres ændringen på OpenStreetMap og er offentligt tilgængelig for alle. Et ændringssæt, der er foretaget med MapComplete, indeholder følgende data:",
|
||||
"editingOutro": "Se <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\">privatlivspolitikken på OpenStreetMap.org</a> for detaljerede oplysninger. Vi minder dig om, at du kan bruge et fiktivt navn, når du tilmelder dig.",
|
||||
"editingTitle": "Når du foretager ændringer",
|
||||
"geodata": "Når MapComplete får din geolokalisering, forbliver din geolokalisering og tidligere besøgte steder på din enhed. Dine lokaliseringsdata sendes aldrig automatisk til andre steder - medmindre en funktionalitet klart angiver noget andet.",
|
||||
"geodataTitle": "Din placering",
|
||||
"intro": "Privatliv er vigtigt - både for den enkelte og for samfundet. MapComplete forsøger at respektere dit privatliv så meget som muligt - så vidt muligt uden et irriterende cookie-banner. Vi vil dog stadig gerne informere dig om, hvilke oplysninger der indsamles og deles, under hvilke omstændigheder, og hvorfor disse afvejninger foretages.",
|
||||
"items": {
|
||||
"changesYouMake": "De ændringer, du har foretaget",
|
||||
"username": "Dit brugernavn",
|
||||
"date": "Hvornår denne ændring er foretaget",
|
||||
"theme": "Det tema, du brugte, mens du foretog ændringen",
|
||||
"language": "Sproget i brugergrænsefladen",
|
||||
"distanceIndicator": "En angivelse af, hvor tæt du var på ændrede objekter. Andre kortlæggere kan bruge disse oplysninger til at afgøre, om en ændring blev foretaget på baggrund af en kortlægning på stedet eller på baggrund af fjernundersøgelser"
|
||||
},
|
||||
"miscCookies": "MapComplete integreres med forskellige andre tjenester, især til at hente billeder af elementer. Billederne er hostet på forskellige tredjepartsservere, som måske selv sætter cookies.",
|
||||
"miscCookiesTitle": "Andre cookies",
|
||||
"surveillance": "Eftersom du læser denne privatlivspolitik, lægger du sikkert vægt på beskyttelse af personlige oplysninger - det gør vi også! Vi har endda lavet <a href=\"https://mapcomplete.org/surveillance\">et tema, der viser overvågningskameraer.</a> Du er velkommen til at kortlægge dem alle!",
|
||||
|
|
|
@ -673,11 +673,20 @@
|
|||
"tryAgain": "Wähle eine andere Art"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "Ihre Änderungen werden auf OpenStreetMap gespeichert und sind öffentlich zugänglich. Ein mit MapComplete erstellter Änderungssatz enthält folgende Daten: <ul><li>Ihre Änderungen</li><li>Ihren Benutzernamen</li><li>Den Zeitpunkt Ihrer Änderungen</li><li>Das bei Ihren Änderungen verwendete MapComplete-Thema</li><li>Die Sprache Ihrer Benutzeroberfläche</li><li>Ihre Entfernung zu den geänderten Objekten. Dadurch kann festgestellt werden, ob die Änderungen vor Ort gespeichert wurden</li></ul> Ausführliche Informationen finden Sie in <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\">den Datenschutzbestimmungen auf OpenStreetMap.org</a>. Wir möchten Sie daran erinnern, dass Sie zur Anmeldung einen fiktiven Namen verwenden können.",
|
||||
"editingIntro": "Ihre Änderungen werden auf OpenStreetMap gespeichert und sind öffentlich zugänglich. Ein mit MapComplete erstellter Änderungssatz enthält folgende Daten:",
|
||||
"editingOutro": "Ausführliche Informationen finden Sie in <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\">den Datenschutzbestimmungen auf OpenStreetMap.org</a>. Wir möchten Sie daran erinnern, dass Sie zur Anmeldung einen fiktiven Namen verwenden können.",
|
||||
"editingTitle": "Ihre Änderungen",
|
||||
"geodata": "Wenn MapComplete Ihren aktuellen Standort ermittelt, verbleibt dieser wie auch zuvor ermittelte Standorte auf Ihrem Gerät. Ihre Standortdaten werden niemals automatisch an eine andere Stelle gesendet - es sei denn, eine Funktion gibt eindeutig etwas anderes an.",
|
||||
"geodataTitle": "Standortdaten",
|
||||
"intro": "Privatsphäre ist wichtig - sowohl für den Einzelnen als auch für die Gesellschaft. MapComplete versucht, Ihre Privatsphäre so weit wie möglich zu respektieren - bis zu dem Punkt, an dem kein lästiger Cookie-Banner mehr nötig ist. Dennoch möchten wir Sie darüber informieren, welche Informationen gesammelt und weitergegeben werden, unter welchen Umständen und warum diese Kompromisse gemacht werden.",
|
||||
"items": {
|
||||
"changesYouMake": "Ihre Änderungen",
|
||||
"username": "Ihren Benutzernamen",
|
||||
"date": "Den Zeitpunkt Ihrer Änderungen",
|
||||
"theme": "Das bei Ihren Änderungen verwendete MapComplete-Thema",
|
||||
"language": "Die Sprache Ihrer Benutzeroberfläche",
|
||||
"distanceIndicator": "Ihre Entfernung zu den geänderten Objekten. Dadurch kann festgestellt werden, ob die Änderungen vor Ort gespeichert wurden"
|
||||
},
|
||||
"miscCookies": "MapComplete integriert weitere Dienste, insbesondere um Bilder von Objekten zu laden. Diese Bilder werden auf Servern von Drittanbietern gehostet, die möglicherweise eigene Cookies setzen.",
|
||||
"miscCookiesTitle": "Andere Cookies",
|
||||
"surveillance": "Da Sie die Datenschutzbestimmungen lesen, ist Ihnen der Datenschutz wahrscheinlich wichtig - uns auch! Wir haben sogar <a href=\"https://mapcomplete.org/surveillance\">ein Thema erstellt, das Überwachungskameras zeigt.</a> Zögern Sie nicht, sie alle zu mappen!",
|
||||
|
|
|
@ -60,6 +60,10 @@
|
|||
"done": "Done",
|
||||
"error": "Error",
|
||||
"loadedFrom": "The following data is loaded from <a href={url}>{source}</a> using the embedded JSON-LD",
|
||||
"missing": {
|
||||
"intro": "OpenStreetMap has no information about the following attributes",
|
||||
"title": "Missing items"
|
||||
},
|
||||
"noDataLoaded": "The external website has no linked data that could be loaded",
|
||||
"overwrite": "Overwrite in OpenStreetMap"
|
||||
},
|
||||
|
@ -674,11 +678,20 @@
|
|||
"tryAgain": "Select a different species"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "When you make a change to the map, this change is recorded on OpenStreetMap and is publicly available to anyone. A changeset made with MapComplete includes the following data: <ul><li>The changes you made</li><li>Your username</li><li>When this change is made</li><li>The theme you used while making the change</li><li>The language of the user interface</li><li>An indication of how close you were to changed objects. Other mappers can use this information to determine if a change was made based on survey or on remote research</li></ul> Please refer to <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>the privacy policy on OpenStreetMap.org</a> for detailed information. We'd like to remind you that you can use a fictional name when signing up.",
|
||||
"editingIntro": "When you make a change to the map, this change is recorded on OpenStreetMap and is publicly available to anyone. A changeset made with MapComplete includes the following data:",
|
||||
"editingOutro": "Please refer to <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>the privacy policy on OpenStreetMap.org</a> for detailed information. We'd like to remind you that you can use a fictional name when signing up.",
|
||||
"editingTitle": "When making changes",
|
||||
"geodata": "When MapComplete gets your geolocation, your geolocation and previously visited locations stay on your device. Your location data is never automatically sent to anywhere else - unless some functionality clearly states otherwise.",
|
||||
"geodataTitle": "Your geolocation",
|
||||
"intro": "Privacy is important - for both the individual and for society. MapComplete tries to respect your privacy as much as possible - up to the point no annoying cookie banner is needed. However, we still would like to inform you which information is gathered and shared, under which circumstances and why these trade-offs are made.",
|
||||
"items": {
|
||||
"changesYouMake": "The changes you made",
|
||||
"username": "Your username",
|
||||
"date": "When this change is made",
|
||||
"theme": "The theme you used while making the change",
|
||||
"language": "The language of the user interface",
|
||||
"distanceIndicator": "An indication of how close you were to changed objects. Other mappers can use this information to determine if a change was made based on survey or on remote research"
|
||||
},
|
||||
"miscCookies": "MapComplete integrates with various other services, especially to load images of features. Images are hosted on various third-party servers, which might set cookies on their own.",
|
||||
"miscCookiesTitle": "Other cookies",
|
||||
"surveillance": "As you are reading the privacy policy, you probably care about privacy - so do we! We even made <a href='https://mapcomplete.org/surveillance'>a theme showing surveillance cameras.</a> Feel free to map them all!",
|
||||
|
|
|
@ -434,11 +434,20 @@
|
|||
"loadingWikidata": "Cargando información sobre {species}…"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "Cuando efectúas un cambio al mapa, este cambio se graba en OpenStreetMap y está disponible públicamente a cualquiera. Un conjunto de cambios hecho con MapComplete incluye los siguientes datos: <ul><li> Los cambios que has hecho</li><li>Tu nombre de usuario</li><li>Cuándo se efectuó el cambio</li><li>El tema que utilizaste mientras que hacías el cambio</li><li>El idioma de la interfaz de usuario</li><li>Una indicación de como de cerca estabas a los objetos cambiados. Otros mapeadores pueden utilizar esta información para determina si un cambio se hizo basándose en un sondeo o en una investigación remota</li></ul> Por favor consulte <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'> la política de privacidad en OpenStreetMap.org</a> para información detallada. Te queremos recordar que puedes utilizar un nombre ficticio al inscribirte.",
|
||||
"editingIntro": "Cuando efectúas un cambio al mapa, este cambio se graba en OpenStreetMap y está disponible públicamente a cualquiera. Un conjunto de cambios hecho con MapComplete incluye los siguientes datos:",
|
||||
"editingOutro": "Por favor consulte <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'> la política de privacidad en OpenStreetMap.org</a> para información detallada. Te queremos recordar que puedes utilizar un nombre ficticio al inscribirte.",
|
||||
"editingTitle": "Cuando se hagan cambios",
|
||||
"geodata": "Cuando MapComplete consigue tu geolocalización, tu geolocalización y las localizaciones previamente visitadas se mantienen en tu dispositivo. Tus datos de localización nunca se envían automáticamente a ningún otro sitio - a menos que alguna funcionalidad mencione otra cosa claramente.",
|
||||
"geodataTitle": "Tu geoubicación",
|
||||
"intro": "La privacidad es importante - tanto para el individual como para la sociedad. MapComplete intenta respetar tu privacidad tanto como sea posible - hasta el punto de que no se necesita ningún banner de cookies molesto es necesario. De todas formas, nos gustaría informarte de qué información se recolecta y se comparte, bajo que circunstancias y por qué se hacen estos compromisos.",
|
||||
"items": {
|
||||
"changesYouMake": " Los cambios que has hecho",
|
||||
"username": "Tu nombre de usuario",
|
||||
"date": "Cuándo se efectuó el cambio",
|
||||
"theme": "El tema que utilizaste mientras que hacías el cambio",
|
||||
"language": "El idioma de la interfaz de usuario",
|
||||
"distanceIndicator": "Una indicación de como de cerca estabas a los objetos cambiados. Otros mapeadores pueden utilizar esta información para determina si un cambio se hizo basándose en un sondeo o en una investigación remota"
|
||||
},
|
||||
"miscCookies": "MapComplete se integra con varios otros servicios, especialmente para cargar imágenes de características. Las imágenes se alojan en varios servidores de terceros, que puede que establezcan cookies por si mismos.",
|
||||
"miscCookiesTitle": "Otras cookies",
|
||||
"surveillance": "Ya que estás leyendo la política de privacidad, probablemente te importe la privacidad - ¡también a nosotros! Incluso hemos hecho <a href=\"https://mapcomplete.org/surveillance\">un tema que muestra cámaras de seguridad.</a> ¡Siéntete libre de mapearlas todas!",
|
||||
|
|
|
@ -430,11 +430,20 @@
|
|||
"takeImages": "Prenez des photos de l'arbre pour détecter automatiquement de quel type il s'agit"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "Lorsque vous faites une modification sur la carte, cette modification est enregistrée dans OpenStreetMap et est displnible publiquement pour tout le monde. Un groupe de modification fait avec MapComplete inclus les données suivantes : <ul><li>Les modifications que vous avez faites</li><li>Votre nom d'utilisateur</li><li>Quand la modification a été faite</li><li>Le thème utilisé lorsque vous faites la modification</li><li>La langue de l'interface utilisateur</li><li>Une indication sur votre proximité avec l'objet modifié. D'autres utilisateurs peuvent utiliser cette information pour déterminer si la modification a été faite par un relevé de terrain ou par une recherche à distance</li></ul> Merci de vous référer à <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>la politique de confidentialité d'OpenStreetMap.org</a> pour plus de détails. Nous vous rappelons que vous pouvez utiliser un pseudonyme lors de votre inscription.",
|
||||
"editingIntro": "Lorsque vous faites une modification sur la carte, cette modification est enregistrée dans OpenStreetMap et est displnible publiquement pour tout le monde. Un groupe de modification fait avec MapComplete inclus les données suivantes :",
|
||||
"editingOutro": "Merci de vous référer à <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>la politique de confidentialité d'OpenStreetMap.org</a> pour plus de détails. Nous vous rappelons que vous pouvez utiliser un pseudonyme lors de votre inscription.",
|
||||
"editingTitle": "Lorsque vous faites une modification",
|
||||
"geodata": "Quand MapComplete obtient votre géolocalisation, votre géolocalisation et les lieux visités précédemment restent sur votre appareil. Vos données de localisation ne sont jamais envoyées automatiquement ailleurs - sauf si une fonctionnalité vous indique que c'est le cas.",
|
||||
"geodataTitle": "Votre géolocalisation",
|
||||
"intro": "La vie privée est importante - tant pour l'individu que pour la société. MapComplete s'efforce de respecter votre vie privée autant que possible - jusqu'au point où aucune bannière de cookie gênante n'est nécessaire. Toutefois, nous tenons à vous informer des informations qui sont recueillies et partagées, des circonstances dans lesquelles elles le sont et des raisons pour lesquelles ces compromis sont faits.",
|
||||
"items": {
|
||||
"changesYouMake": "Les modifications que vous avez faites",
|
||||
"username": "Votre nom d'utilisateur",
|
||||
"date": "Quand la modification a été faite",
|
||||
"theme": "Le thème utilisé lorsque vous faites la modification",
|
||||
"language": "La langue de l'interface utilisateur",
|
||||
"distanceIndicator": "Une indication sur votre proximité avec l'objet modifié. D'autres utilisateurs peuvent utiliser cette information pour déterminer si la modification a été faite par un relevé de terrain ou par une recherche à distance"
|
||||
},
|
||||
"miscCookiesTitle": "Autres cookies",
|
||||
"title": "Politique de confidentialité",
|
||||
"tracking": "Afin d'avoir une idée des personnes qui visitent notre site web, certaines informations techniques sont collectées. Il s'agit notamment du pays depuis lequel vous avez visité la page Web, du site Web qui vous a renvoyé vers MapComplete, du type de votre appareil et de la taille de l'écran. Un cookie est placé sur votre appareil pour indiquer que vous avez visité MapComplete plus tôt dans la journée. Ces données ne sont pas suffisamment détaillées pour vous identifier personnellement. Ces statistiques ne sont accessibles à quiconque que sous forme agrégée et sont <a href='https://pietervdvn.goatcounter.com' target='_blank'>accessible à tout le monde</a>",
|
||||
|
|
|
@ -581,11 +581,20 @@
|
|||
"takeImages": "Neem afbeeldingen van de boom om de soort automatisch te herkennen"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "Wanneer je een wijziging maakt, wordt deze wijziging opgeslaan op OpenStreetMap. Dit is zichtbaar voor iedereen. Een wijzigingenset gemaakt met MapComplete bevat de volgende data:\n<ul><li>De aanpassingen aan de data</li><li>Je gebruikersnaam</li><li>Wanneer deze wijziging werd gemaakt</li><li>Het thema dat je gebruikt om de wijziging te maken</li><li>De taal van de gebruikersinterface</li><li>Een indicatie hoe ver jij je van de gewijzigde objecten bevindt. Andere bijdragers kunnen deze informatie gebruiken om af te leiden of de wijziging gemaakt door lokaal te gaan kijken of door onderzoek vanop afstand</li></ul> Bekijk ook <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\">de privacy-policy op OpenStreetMap.org</a> voor gedetailleerde info. We herinneren je eraan dat je een pseudoniem of fictieve naam kan gebruiken wanneer je je registreert.",
|
||||
"editingIntro": "Wanneer je een wijziging maakt, wordt deze wijziging opgeslaan op OpenStreetMap. Dit is zichtbaar voor iedereen. Een wijzigingenset gemaakt met MapComplete bevat de volgende data:",
|
||||
"editingOutro": "Bekijk ook <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\">de privacy-policy op OpenStreetMap.org</a> voor gedetailleerde info. We herinneren je eraan dat je een pseudoniem of fictieve naam kan gebruiken wanneer je je registreert.",
|
||||
"editingTitle": "Wanneer je wijzigingen maakt",
|
||||
"geodata": "Op het moment dat MapComplete je locatie krijgt, blijft deze informatie en de geschiedenis ervan lokaal op je toestel. Je locatiedata wordt nooit automatisch doorgestuurd naar waar dan ook - behalve wanneer een bepaalde functionaliteit daar expliciet om vraagt.",
|
||||
"geodataTitle": "Jouw locatie",
|
||||
"intro": "We vinden privacy belangrijk, zowel for het individu als voor de samenleving. MapComplete probeert zo veel mogelijk te vermijden dat private gegevens worden verzameld. Daarom is er zelfs geen cookie banner nodig. Maar we geven graag informatie over welke data verzameld en gedeeld worden, onder welke omstandigheden, en waarom deze afwegingen gemaakt worden.",
|
||||
"items": {
|
||||
"changesYouMake": "De aanpassingen aan de data",
|
||||
"username": "Je gebruikersnaam",
|
||||
"date": "Wanneer deze wijziging werd gemaakt",
|
||||
"theme": "Het thema dat je gebruikt om de wijziging te maken",
|
||||
"language": "De taal van de gebruikersinterface",
|
||||
"distanceIndicator": "Een indicatie hoe ver jij je van de gewijzigde objecten bevindt. Andere bijdragers kunnen deze informatie gebruiken om af te leiden of de wijziging gemaakt door lokaal te gaan kijken of door onderzoek vanop afstand"
|
||||
},
|
||||
"miscCookies": "MapComplete integreert met verschillende andere services, in het bijzonder om afbeeldingen van kaart-objecten te tonen. Deze afbeeldingen zijn opgeslaan bij diverse websites, die elk cookies kunnen instellen.",
|
||||
"miscCookiesTitle": "Andere cookies",
|
||||
"surveillance": "Gezien je de privacy-policy leest, vind je privacy waarschijnlijk belangrijk - wij ook! We hebben zelfs <a href=\"https://mapcomplete.org/surveillance\">een kaart met bewakingcamera's</a> gemaakt. Voeg er zeker toe!",
|
||||
|
|
|
@ -540,11 +540,20 @@
|
|||
"tryAgain": "Wybierz inny gatunek"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "Kiedy dokonasz zmiany na mapie, zmiana ta zostanie zarejestrowana w OpenStreetMap i będzie publicznie dostępna dla każdego. Zestaw zmian wprowadzony za pomocą MapComplete zawiera następujące dane: <ul><li>Wprowadzone zmiany</li><li>Twoja nazwa użytkownika</li><li>Kiedy dokonano tej zmiany</li><li>Motyw, którego użyłeś podczas wprowadzania zmiany</li><li>Język interfejsu użytkownika</li><li>Wskazanie, jak blisko byłeś zmienionych obiektów. Inni twórcy map mogą wykorzystać te informacje do ustalenia, czy zmiana została wprowadzona na podstawie realnych odwiedzin miejsca czy zdalnych badań.</li></ul> Zapoznaj się z <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>polityką prywatności na OpenStreetMap.org</a>, aby uzyskać szczegółowe informacje. Przypominamy, że podczas rejestracji możesz użyć fikcyjnego imienia i nazwiska.",
|
||||
"editingIntro": "Kiedy dokonasz zmiany na mapie, zmiana ta zostanie zarejestrowana w OpenStreetMap i będzie publicznie dostępna dla każdego. Zestaw zmian wprowadzony za pomocą MapComplete zawiera następujące dane:",
|
||||
"editingOutro": "Zapoznaj się z <a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>polityką prywatności na OpenStreetMap.org</a>, aby uzyskać szczegółowe informacje. Przypominamy, że podczas rejestracji możesz użyć fikcyjnego imienia i nazwiska.",
|
||||
"editingTitle": "Podczas wprowadzania zmian",
|
||||
"geodata": "Gdy MapComplete pobierze Twoją geolokalizację, Twoja geolokalizacja i wcześniej odwiedzone lokalizacje pozostaną na Twoim urządzeniu. Twoje dane o lokalizacji nigdy nie są automatycznie wysyłane gdziekolwiek indziej, chyba że niektóre funkcje wyraźnie stanowią inaczej.",
|
||||
"geodataTitle": "Twoja geolokalizacja",
|
||||
"intro": "Prywatność jest ważna – zarówno dla jednostki, jak i dla społeczeństwa. MapComplete stara się w jak największym stopniu szanować Twoją prywatność - do tego stopnia, że nie jest potrzebny irytujący baner z plikami cookie. Jednakże nadal chcielibyśmy poinformować Cię, jakie informacje są gromadzone i udostępniane, w jakich okolicznościach i dlaczego dokonuje się takich kompromisów.",
|
||||
"items": {
|
||||
"changesYouMake": "Wprowadzone zmiany",
|
||||
"username": "Twoja nazwa użytkownika",
|
||||
"date": "Kiedy dokonano tej zmiany",
|
||||
"theme": "Motyw, którego użyłeś podczas wprowadzania zmiany",
|
||||
"language": "Język interfejsu użytkownika",
|
||||
"distanceIndicator": "Wskazanie, jak blisko byłeś zmienionych obiektów. Inni twórcy map mogą wykorzystać te informacje do ustalenia, czy zmiana została wprowadzona na podstawie realnych odwiedzin miejsca czy zdalnych badań."
|
||||
},
|
||||
"miscCookies": "MapComplete integruje się z różnymi innymi usługami, szczególnie w celu wczytywania obrazów obiektów. Obrazy są przechowywane na różnych serwerach stron trzecich, które mogą samodzielnie ustawiać pliki cookie.",
|
||||
"miscCookiesTitle": "Inne ciasteczka",
|
||||
"surveillance": "Czytając politykę prywatności, prawdopodobnie zależy Ci na prywatności - nam też! Stworzyliśmy nawet <a href='https://mapcomplete.org/surveillance'>motyw przedstawiający kamery monitorujące.</a> Możesz zmapować je wszystkie!",
|
||||
|
|
|
@ -651,11 +651,20 @@
|
|||
"tryAgain": "選擇不同物種"
|
||||
},
|
||||
"privacy": {
|
||||
"editing": "當你對地圖變動時,這些變動會存在開放街圖並且是公開給所有人。採用 MapComplete 的編輯變動包括以下資料:<ul><li>你做的變動</li><li>你的使用者名稱</li><li>你在什麼時間做的變動</li><li>當你做出變動時使用的主題</li><li>使用者介面語言</li><li>你會多接近時變動物件的指示。其他的圖客可以用這些資訊來決定是否是居於踏查還是遠端研究</li></ul>請參考<a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>OpenStreetMap.org的隱私政策</a>來取得更多資訊。我們也提醒你註冊帳號時能夠採用假名。",
|
||||
"editingIntro": "當你對地圖變動時,這些變動會存在開放街圖並且是公開給所有人。採用 MapComplete 的編輯變動包括以下資料:",
|
||||
"editingOutro": "請參考<a href='https://wiki.osmfoundation.org/wiki/Privacy_Policy' target='_blank'>OpenStreetMap.org的隱私政策</a>來取得更多資訊。我們也提醒你註冊帳號時能夠採用假名。",
|
||||
"editingTitle": "當做出變動",
|
||||
"geodata": "當 MapComplete 取得你地理位置時,你的地理位置與先前造訪的地點資訊會留在你的裝置上。你的位置資訊從來不會自動傳送到任何地方 - 除非有些功能很清楚顯示其他狀態。",
|
||||
"geodataTitle": "你的地理位置",
|
||||
"intro": "隱私相當重要 - 對個人與對社會都是。MapComplete 試著盡可能尊重你的隱私 - 所以不會需要惱人的 cookie。然而我們仍然告知,在那些情境下,以及做出的選擇與取捨下,有那些資訊會被收集與分享。",
|
||||
"items": {
|
||||
"changesYouMake": "你做的變動",
|
||||
"username": "你的使用者名稱",
|
||||
"date": "你在什麼時間做的變動",
|
||||
"theme": "當你做出變動時使用的主題",
|
||||
"language": "使用者介面語言",
|
||||
"distanceIndicator": "你會多接近時變動物件的指示。其他的圖客可以用這些資訊來決定是否是居於踏查還是遠端研究"
|
||||
},
|
||||
"miscCookies": "MapComplete 整合多項服務,特別是載入圖徵的圖片。圖片是放在多個第三方服務供應商,也許會有他們自己的 cookies。",
|
||||
"miscCookiesTitle": "其他 cookies",
|
||||
"surveillance": "你會閱讀隱私政策,你大概相當在意隱私 - 所以我們也是!我們甚至製作 <a href='https://mapcomplete.org/surveillance'> 主題地圖顯示監視器。</a>如果在意就繪製這些圖徵吧!",
|
||||
|
|
22
package-lock.json
generated
22
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "mapcomplete",
|
||||
"version": "0.42.4",
|
||||
"version": "0.42.5",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mapcomplete",
|
||||
"version": "0.42.4",
|
||||
"version": "0.42.5",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@comunica/core": "^3.0.1",
|
||||
|
@ -9812,14 +9812,15 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.4",
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://github.com/sponsors/RubenVerborgh"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4.0"
|
||||
},
|
||||
|
@ -10947,8 +10948,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/jose": {
|
||||
"version": "4.11.2",
|
||||
"license": "MIT",
|
||||
"version": "4.15.5",
|
||||
"resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz",
|
||||
"integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/panva"
|
||||
}
|
||||
|
@ -26266,7 +26268,9 @@
|
|||
"version": "1.1.0"
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.15.4"
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
|
||||
},
|
||||
"for-each": {
|
||||
"version": "0.3.3",
|
||||
|
@ -26951,7 +26955,9 @@
|
|||
}
|
||||
},
|
||||
"jose": {
|
||||
"version": "4.11.2"
|
||||
"version": "4.15.5",
|
||||
"resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz",
|
||||
"integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg=="
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "4.0.0",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "mapcomplete",
|
||||
"version": "0.42.5",
|
||||
"version": "0.42.6",
|
||||
"repository": "https://github.com/pietervdvn/MapComplete",
|
||||
"description": "A small website to edit OSM easily",
|
||||
"bugs": "https://github.com/pietervdvn/MapComplete/issues",
|
||||
|
|
|
@ -27,23 +27,23 @@ export default class LinkedDataLoader {
|
|||
opening_hours: { "@id": "http://schema.org/openingHoursSpecification" },
|
||||
openingHours: { "@id": "http://schema.org/openingHours", "@container": "@set" },
|
||||
geo: { "@id": "http://schema.org/geo" },
|
||||
alt_name: { "@id": "http://schema.org/alternateName" },
|
||||
alt_name: { "@id": "http://schema.org/alternateName" }
|
||||
}
|
||||
private static COMPACTING_CONTEXT_OH = {
|
||||
dayOfWeek: { "@id": "http://schema.org/dayOfWeek", "@container": "@set" },
|
||||
closes: {
|
||||
"@id": "http://schema.org/closes",
|
||||
"@type": "http://www.w3.org/2001/XMLSchema#time",
|
||||
"@type": "http://www.w3.org/2001/XMLSchema#time"
|
||||
},
|
||||
opens: {
|
||||
"@id": "http://schema.org/opens",
|
||||
"@type": "http://www.w3.org/2001/XMLSchema#time",
|
||||
},
|
||||
"@type": "http://www.w3.org/2001/XMLSchema#time"
|
||||
}
|
||||
}
|
||||
private static formatters: Record<"phone" | "email" | "website", Validator> = {
|
||||
phone: new PhoneValidator(),
|
||||
email: new EmailValidator(),
|
||||
website: new UrlValidator(undefined, undefined, true),
|
||||
website: new UrlValidator(undefined, undefined, true)
|
||||
}
|
||||
private static ignoreKeys = [
|
||||
"http://schema.org/logo",
|
||||
|
@ -56,7 +56,7 @@ export default class LinkedDataLoader {
|
|||
"http://schema.org/description",
|
||||
"http://schema.org/hasMap",
|
||||
"http://schema.org/priceRange",
|
||||
"http://schema.org/contactPoint",
|
||||
"http://schema.org/contactPoint"
|
||||
]
|
||||
|
||||
private static shapeToPolygon(str: string): Polygon {
|
||||
|
@ -69,8 +69,8 @@ export default class LinkedDataLoader {
|
|||
.trim()
|
||||
.split(" ")
|
||||
.map((n) => Number(n))
|
||||
),
|
||||
],
|
||||
)
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -92,18 +92,18 @@ export default class LinkedDataLoader {
|
|||
const context = {
|
||||
lat: {
|
||||
"@id": "http://schema.org/latitude",
|
||||
"@type": "http://www.w3.org/2001/XMLSchema#double",
|
||||
"@type": "http://www.w3.org/2001/XMLSchema#double"
|
||||
},
|
||||
lon: {
|
||||
"@id": "http://schema.org/longitude",
|
||||
"@type": "http://www.w3.org/2001/XMLSchema#double",
|
||||
},
|
||||
"@type": "http://www.w3.org/2001/XMLSchema#double"
|
||||
}
|
||||
}
|
||||
const flattened = await jsonld.compact(geo, context)
|
||||
|
||||
return {
|
||||
type: "Point",
|
||||
coordinates: [Number(flattened.lon), Number(flattened.lat)],
|
||||
coordinates: [Number(flattened.lon), Number(flattened.lat)]
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -194,7 +194,7 @@ export default class LinkedDataLoader {
|
|||
)
|
||||
delete compacted["openingHours"]
|
||||
}
|
||||
if(compacted["opening_hours"] === undefined){
|
||||
if (compacted["opening_hours"] === undefined) {
|
||||
delete compacted["opening_hours"]
|
||||
}
|
||||
if (compacted["geo"]) {
|
||||
|
@ -288,7 +288,7 @@ export default class LinkedDataLoader {
|
|||
if (properties["latitude"] && properties["longitude"]) {
|
||||
geometry = {
|
||||
type: "Point",
|
||||
coordinates: [Number(properties["longitude"]), Number(properties["latitude"])],
|
||||
coordinates: [Number(properties["longitude"]), Number(properties["latitude"])]
|
||||
}
|
||||
delete properties["latitude"]
|
||||
delete properties["longitude"]
|
||||
|
@ -300,7 +300,7 @@ export default class LinkedDataLoader {
|
|||
const geo: GeoJSON = {
|
||||
type: "Feature",
|
||||
properties,
|
||||
geometry,
|
||||
geometry
|
||||
}
|
||||
delete linkedData.geo
|
||||
delete properties.shape
|
||||
|
@ -331,7 +331,7 @@ export default class LinkedDataLoader {
|
|||
return
|
||||
}
|
||||
output[key] = output[key].map((v) => applyF(v))
|
||||
if(!output[key].some(v => v !== undefined)){
|
||||
if (!output[key].some(v => v !== undefined)) {
|
||||
delete output[key]
|
||||
}
|
||||
}
|
||||
|
@ -416,7 +416,7 @@ export default class LinkedDataLoader {
|
|||
"brede publiek",
|
||||
"iedereen",
|
||||
"bezoekers",
|
||||
"iedereen - vooral bezoekers gemeentehuis of bibliotheek.",
|
||||
"iedereen - vooral bezoekers gemeentehuis of bibliotheek."
|
||||
].indexOf(audience.toLowerCase()) >= 0
|
||||
) {
|
||||
return "yes"
|
||||
|
@ -483,7 +483,6 @@ export default class LinkedDataLoader {
|
|||
}
|
||||
rename("capacityElectric", "capacity:electric_bicycle")
|
||||
|
||||
delete output["name"]
|
||||
delete output["numberOfLevels"]
|
||||
|
||||
return output
|
||||
|
@ -500,13 +499,14 @@ export default class LinkedDataLoader {
|
|||
mv: "http://schema.mobivoc.org/",
|
||||
gr: "http://purl.org/goodrelations/v1#",
|
||||
vp: "https://data.velopark.be/openvelopark/vocabulary#",
|
||||
vpt: "https://data.velopark.be/openvelopark/terms#",
|
||||
vpt: "https://data.velopark.be/openvelopark/terms#"
|
||||
},
|
||||
[url],
|
||||
undefined,
|
||||
" ?parking a <http://schema.mobivoc.org/BicycleParkingStation>",
|
||||
"?parking " + property + " " + (variable ?? "")
|
||||
)
|
||||
console.log("Fetching a velopark property gave", property, results)
|
||||
return results
|
||||
}
|
||||
|
||||
|
@ -521,7 +521,7 @@ export default class LinkedDataLoader {
|
|||
mv: "http://schema.mobivoc.org/",
|
||||
gr: "http://purl.org/goodrelations/v1#",
|
||||
vp: "https://data.velopark.be/openvelopark/vocabulary#",
|
||||
vpt: "https://data.velopark.be/openvelopark/terms#",
|
||||
vpt: "https://data.velopark.be/openvelopark/terms#"
|
||||
},
|
||||
[url],
|
||||
"g",
|
||||
|
@ -646,7 +646,7 @@ export default class LinkedDataLoader {
|
|||
return this.mergeResults(...allPartialResults)
|
||||
}
|
||||
|
||||
private static veloparkCache : Record<string, Feature[]> = {}
|
||||
private static veloparkCache: Record<string, Feature[]> = {}
|
||||
|
||||
/**
|
||||
* Fetches all data relevant to velopark.
|
||||
|
@ -654,29 +654,29 @@ export default class LinkedDataLoader {
|
|||
* @param url
|
||||
*/
|
||||
public static async fetchVeloparkEntry(url: string, includeExtras: boolean = false): Promise<Feature[]> {
|
||||
const cacheKey = includeExtras+url
|
||||
if(this.veloparkCache[cacheKey]){
|
||||
const cacheKey = includeExtras + url
|
||||
if (this.veloparkCache[cacheKey]) {
|
||||
return this.veloparkCache[cacheKey]
|
||||
}
|
||||
const withProxyUrl = Constants.linkedDataProxy.replace("{url}", encodeURIComponent(url))
|
||||
const optionalPaths: Record<string, string | Record<string, string>> = {
|
||||
"schema:interactionService": {
|
||||
"schema:url": "website",
|
||||
"schema:url": "website"
|
||||
},
|
||||
"schema:name": "name",
|
||||
"mv:operatedBy": {
|
||||
"gr:legalName": "operator",
|
||||
"gr:legalName": "operator"
|
||||
},
|
||||
"schema:contactPoint": {
|
||||
"schema:email": "email",
|
||||
"schema:telephone": "phone",
|
||||
"schema:telephone": "phone"
|
||||
},
|
||||
"schema:dateModified": "_last_edit_timestamp",
|
||||
"schema:dateModified": "_last_edit_timestamp"
|
||||
}
|
||||
if(includeExtras){
|
||||
if (includeExtras) {
|
||||
optionalPaths["schema:address"] = {
|
||||
"schema:streetAddress":"addr"
|
||||
"schema:streetAddress": "addr"
|
||||
}
|
||||
optionalPaths["schema:name"] = "name"
|
||||
optionalPaths["schema:description"] = "description"
|
||||
}
|
||||
|
||||
|
@ -692,11 +692,11 @@ export default class LinkedDataLoader {
|
|||
"schema:geo": {
|
||||
"schema:latitude": "latitude",
|
||||
"schema:longitude": "longitude",
|
||||
"schema:polygon": "shape",
|
||||
"schema:polygon": "shape"
|
||||
},
|
||||
"schema:priceSpecification": {
|
||||
"mv:freeOfCharge": "fee",
|
||||
"schema:price": "charge",
|
||||
"schema:price": "charge"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -704,7 +704,7 @@ export default class LinkedDataLoader {
|
|||
"schema:priceSpecification [ mv:dueForTime [ mv:timeStartValue ?chargeStart; mv:timeEndValue ?chargeEnd; mv:timeUnit ?timeUnit ] ]",
|
||||
"vp:allows [vp:bicycleType <https://data.velopark.be/openvelopark/terms#CargoBicycle>; vp:bicyclesAmount ?capacityCargobike; vp:bicycleType ?cargoBikeType]",
|
||||
"vp:allows [vp:bicycleType <https://data.velopark.be/openvelopark/terms#ElectricBicycle>; vp:bicyclesAmount ?capacityElectric; vp:bicycleType ?electricBikeType]",
|
||||
"vp:allows [vp:bicycleType <https://data.velopark.be/openvelopark/terms#TandemBicycle>; vp:bicyclesAmount ?capacityTandem; vp:bicycleType ?tandemBikeType]",
|
||||
"vp:allows [vp:bicycleType <https://data.velopark.be/openvelopark/terms#TandemBicycle>; vp:bicyclesAmount ?capacityTandem; vp:bicycleType ?tandemBikeType]"
|
||||
]
|
||||
|
||||
const unpatched = await this.fetchEntry(
|
||||
|
|
|
@ -100,6 +100,11 @@ export class MenuState {
|
|||
})
|
||||
|
||||
this.allToggles = [
|
||||
{
|
||||
toggle: this.privacyPanelIsOpened,
|
||||
name: "privacy",
|
||||
showOverOthers: true,
|
||||
},
|
||||
{
|
||||
toggle: this.menuIsOpened,
|
||||
name: "menu",
|
||||
|
@ -120,11 +125,6 @@ export class MenuState {
|
|||
name: "community",
|
||||
showOverOthers: true,
|
||||
},
|
||||
{
|
||||
toggle: this.privacyPanelIsOpened,
|
||||
name: "privacy",
|
||||
showOverOthers: true,
|
||||
},
|
||||
{
|
||||
toggle: this.filtersPanelIsOpened,
|
||||
name: "filters",
|
||||
|
|
|
@ -69,6 +69,7 @@ import {
|
|||
import summaryLayer from "../assets/generated/layers/summary.json"
|
||||
import { LayerConfigJson } from "./ThemeConfig/Json/LayerConfigJson"
|
||||
import Locale from "../UI/i18n/Locale"
|
||||
import Hash from "../Logic/Web/Hash"
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -496,6 +497,12 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
|||
if (this.layout.customCss !== undefined && window.location.pathname.indexOf("theme") >= 0) {
|
||||
Utils.LoadCustomCss(this.layout.customCss)
|
||||
}
|
||||
|
||||
Hash.hash.addCallbackAndRunD(hash => {
|
||||
if(hash === "current_view" || hash.match(/current_view_[0-9]+/)){
|
||||
this.selectCurrentView()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -821,4 +828,9 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
|||
this.userRelatedState.preferredBackgroundLayer
|
||||
)
|
||||
}
|
||||
|
||||
public selectCurrentView(){
|
||||
this.guistate.closeAll()
|
||||
this.selectedElement.setData(this.currentView.features?.data?.[0])
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ console.log("Animating", debug," to", opened)
|
|||
}
|
||||
|
||||
onDestroy(isOpened.addCallback(opened => animate(opened)))
|
||||
onMount(() => animate(isOpened.data))
|
||||
onMount(() => requestAnimationFrame(() => animate(isOpened.data)))
|
||||
|
||||
|
||||
</script>
|
||||
|
@ -42,7 +42,7 @@ console.log("Animating", debug," to", opened)
|
|||
</div>
|
||||
|
||||
<div bind:this={elem} class="pointer-events-none absolute bottom-0 right-0 low-interaction rounded-2xl"
|
||||
style="transition: all 0.65s ease-out, background-color 1.8s ease-out; background: var(--background-color);">
|
||||
style="transition: all 0.5s ease-out, background-color 1.4s ease-out; background: var(--background-color);">
|
||||
<!-- Classes should be the same as the 'floatoaver' -->
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
<script lang="ts">
|
||||
import Tr from "../Base/Tr.svelte"
|
||||
import Translations from "../i18n/Translations"
|
||||
import TagRenderingEditable from "../Popup/TagRendering/TagRenderingEditable.svelte"
|
||||
import type { SpecialVisualizationState } from "../SpecialVisualization"
|
||||
import UserRelatedState from "../../Logic/State/UserRelatedState"
|
||||
|
||||
const t = Translations.t.privacy
|
||||
export let state: SpecialVisualizationState
|
||||
const usersettings = UserRelatedState.usersettingsConfig
|
||||
const editPrivacy = usersettings.tagRenderings.find(tr => tr.id === "more_privacy")
|
||||
const isLoggedIn = state.osmConnection.isLoggedIn
|
||||
</script>
|
||||
|
||||
<div class="link-underline flex flex-col">
|
||||
|
@ -20,7 +27,41 @@
|
|||
<h3>
|
||||
<Tr t={t.editingTitle} />
|
||||
</h3>
|
||||
<Tr t={t.editing} />
|
||||
<Tr t={t.editingIntro} />
|
||||
<Tr t={t.editingIntro} />
|
||||
<ul>
|
||||
<li>
|
||||
<Tr t={t.items.changesYouMake} />
|
||||
</li>
|
||||
<li>
|
||||
<Tr t={t.items.username} />
|
||||
</li>
|
||||
<li>
|
||||
<Tr t={t.items.date} />
|
||||
</li>
|
||||
<li>
|
||||
<Tr t={t.items.theme} />
|
||||
</li>
|
||||
<li>
|
||||
<Tr t={t.items.language} />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
{#if $isLoggedIn}
|
||||
<TagRenderingEditable config={editPrivacy} selectedElement={{
|
||||
type: "Feature",
|
||||
properties: { id: "settings" },
|
||||
geometry: { type: "Point", coordinates: [0, 0] },
|
||||
}}
|
||||
{state}
|
||||
tags={state.userRelatedState.preferencesAsTags} />
|
||||
{:else}
|
||||
<Tr t={t.items.distanceIndicator} />
|
||||
{/if}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<Tr t={t.editingOutro} />
|
||||
|
||||
<h3>
|
||||
<Tr t={t.miscCookiesTitle} />
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
import Add from "../../assets/svg/Add.svelte"
|
||||
import Location_refused from "../../assets/svg/Location_refused.svelte"
|
||||
import Location from "../../assets/svg/Location.svelte"
|
||||
import SpecialTranslation from "../Popup/TagRendering/SpecialTranslation.svelte"
|
||||
|
||||
/**
|
||||
* The theme introduction panel
|
||||
|
@ -48,6 +49,7 @@
|
|||
<div class="flex h-full flex-col justify-between">
|
||||
<div>
|
||||
<!-- Intro, description, ... -->
|
||||
|
||||
<Tr t={layout.description} />
|
||||
<Tr t={Translations.t.general.welcomeExplanation.general} />
|
||||
{#if layout.layers.some((l) => l.presets?.length > 0)}
|
||||
|
|
|
@ -109,16 +109,17 @@
|
|||
<div class="low-interaction border-interactive p-1">
|
||||
{#if !readonly}
|
||||
<Tr t={t.loadedFrom.Subs({ url: sourceUrl, source: sourceUrl })} />
|
||||
<h3>
|
||||
<Tr t={t.conflicting.title} />
|
||||
</h3>
|
||||
{/if}
|
||||
|
||||
<div class="flex flex-col" class:gap-y-8={!readonly}>
|
||||
{#if !readonly}
|
||||
<Tr t={t.conflicting.intro} />
|
||||
{/if}
|
||||
|
||||
{#if $different.length > 0}
|
||||
{#if !readonly}
|
||||
<h3>
|
||||
<Tr t={t.conflicting.title} />
|
||||
</h3>
|
||||
<Tr t={t.conflicting.intro} />
|
||||
{/if}
|
||||
{#each $different as key (key)}
|
||||
<div class="mx-2 rounded-2xl">
|
||||
<ComparisonAction
|
||||
|
@ -135,6 +136,13 @@
|
|||
{/if}
|
||||
|
||||
{#if $missing.length > 0}
|
||||
{#if !readonly}
|
||||
<h3 class="m-0">
|
||||
<Tr t={t.missing.title} />
|
||||
</h3>
|
||||
|
||||
<Tr t={t.missing.intro} />
|
||||
{/if}
|
||||
{#if currentStep === "init"}
|
||||
{#each $missing as key (key)}
|
||||
<div class:glowing-shadow={applyAllHovered} class="mx-2 rounded-2xl">
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
checkedMappings,
|
||||
tags.data
|
||||
)
|
||||
if (state.featureSwitches.featureSwitchIsDebugging.data) {
|
||||
if (featureSwitchIsDebugging?.data) {
|
||||
console.log(
|
||||
"Constructing change spec from",
|
||||
{
|
||||
|
|
|
@ -6,6 +6,15 @@
|
|||
import { Utils } from "../Utils"
|
||||
import Add from "../assets/svg/Add.svelte"
|
||||
import LanguagePicker from "./InputElement/LanguagePicker.svelte"
|
||||
import type { SpecialVisualizationState } from "./SpecialVisualization"
|
||||
import { OsmConnection } from "../Logic/Osm/OsmConnection"
|
||||
import UserRelatedState from "../Logic/State/UserRelatedState"
|
||||
|
||||
const osmConnection = new OsmConnection()
|
||||
let state: SpecialVisualizationState = {
|
||||
osmConnection,
|
||||
userRelatedState: new UserRelatedState(osmConnection)
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="flex h-screen flex-col overflow-hidden px-4">
|
||||
|
@ -17,7 +26,7 @@
|
|||
<LanguagePicker availableLanguages={Translations.t.privacy.intro.SupportedLanguages()} />
|
||||
</div>
|
||||
<div class="h-full overflow-auto border border-gray-500 p-4">
|
||||
<PrivacyPolicy />
|
||||
<PrivacyPolicy {state} />
|
||||
</div>
|
||||
<a class="button flex" href={Utils.HomepageLink()}>
|
||||
<Add class="h-6 w-6" />
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import { Store, UIEventSource } from "../Logic/UIEventSource"
|
||||
import BaseUIElement from "./BaseUIElement"
|
||||
import LayoutConfig from "../Models/ThemeConfig/LayoutConfig"
|
||||
import { IndexedFeatureSource, WritableFeatureSource } from "../Logic/FeatureSource/FeatureSource"
|
||||
import { FeatureSource, IndexedFeatureSource, WritableFeatureSource } from "../Logic/FeatureSource/FeatureSource"
|
||||
import { OsmConnection } from "../Logic/Osm/OsmConnection"
|
||||
import { Changes } from "../Logic/Osm/Changes"
|
||||
import { ExportableMap, MapProperties } from "../Models/MapProperties"
|
||||
import LayerState from "../Logic/State/LayerState"
|
||||
import { Feature, Geometry, Point } from "geojson"
|
||||
import { Feature, Geometry, Point, Polygon } from "geojson"
|
||||
import FullNodeDatabaseSource from "../Logic/FeatureSource/TiledFeatureSource/FullNodeDatabaseSource"
|
||||
import { MangroveIdentity } from "../Logic/Web/MangroveReviews"
|
||||
import { GeoIndexedStoreForLayer } from "../Logic/FeatureSource/Actors/GeoIndexedStore"
|
||||
|
@ -61,8 +61,10 @@ export interface SpecialVisualizationState {
|
|||
|
||||
readonly selectedElement: UIEventSource<Feature>
|
||||
|
||||
readonly currentView: FeatureSource<Feature<Polygon>>
|
||||
readonly favourites: FavouritesFeatureSource
|
||||
|
||||
|
||||
/**
|
||||
* If data is currently being fetched from external sources
|
||||
*/
|
||||
|
|
|
@ -1814,7 +1814,6 @@ console.log(">>> ",helpTexts.join("\n\n"))
|
|||
) ?? features[0]
|
||||
const properties = feature.properties
|
||||
properties["ref:velopark"] = url
|
||||
delete properties["name"]
|
||||
console.log("Got properties from velopark:", properties)
|
||||
return properties
|
||||
} catch (e) {
|
||||
|
|
|
@ -271,7 +271,7 @@
|
|||
{#if currentViewLayer?.tagRenderings && currentViewLayer.defaultIcon()}
|
||||
<MapControlButton
|
||||
on:click={() => {
|
||||
state.selectedElement.setData(state.currentView.features?.data?.[0])
|
||||
state.selectCurrentView()
|
||||
}}
|
||||
on:keydown={forwardEventToMap}
|
||||
htmlElem={openCurrentViewLayerButton}
|
||||
|
@ -661,7 +661,7 @@
|
|||
<Tr t={Translations.t.privacy.title} />
|
||||
</h2>
|
||||
<div class="overflow-auto p-4">
|
||||
<PrivacyPolicy />
|
||||
<PrivacyPolicy {state}/>
|
||||
</div>
|
||||
</div>
|
||||
</FloatOver>
|
||||
|
|
Loading…
Reference in a new issue