@panoramax/web-viewer 3.1.1 → 3.2.0-develop-df9e865f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -1
- package/build/index.css +2 -2
- package/build/index.css.map +1 -1
- package/build/index.js +6 -6
- package/build/index.js.map +1 -1
- package/docs/02_Usage.md +267 -224
- package/docs/03_URL_settings.md +10 -1
- package/docs/05_Compatibility.md +1 -0
- package/package.json +4 -3
- package/src/Viewer.js +51 -3
- package/src/components/CoreView.css +6 -0
- package/src/components/CoreView.js +25 -10
- package/src/components/Map.js +41 -2
- package/src/components/Photo.css +5 -0
- package/src/translations/de.json +28 -11
- package/src/translations/en.json +22 -11
- package/src/translations/es.json +23 -11
- package/src/translations/fr.json +22 -11
- package/src/translations/hu.json +117 -73
- package/src/translations/nl.json +73 -1
- package/src/translations/zh_Hant.json +53 -9
- package/src/utils/API.js +20 -3
- package/src/utils/Exif.js +5 -10
- package/src/utils/Map.js +56 -10
- package/src/utils/Utils.js +68 -24
- package/src/utils/Widgets.js +64 -2
- package/src/viewer/URLHash.js +18 -3
- package/src/viewer/Widgets.css +139 -0
- package/src/viewer/Widgets.js +207 -42
- package/tests/Viewer.test.js +1 -0
- package/tests/__snapshots__/Editor.test.js.snap +1 -5
- package/tests/components/__snapshots__/Photo.test.js.snap +2 -10
- package/tests/utils/Exif.test.js +10 -10
- package/tests/utils/Map.test.js +8 -0
- package/tests/utils/__snapshots__/API.test.js.snap +5 -0
- package/tests/utils/__snapshots__/Widgets.test.js.snap +1 -1
- package/tests/viewer/__snapshots__/Widgets.test.js.snap +39 -29
package/src/translations/fr.json
CHANGED
|
@@ -62,7 +62,8 @@
|
|
|
62
62
|
"🔍 Analyse des métadonnées EXIF",
|
|
63
63
|
"🏘️ Création du rendu 3D",
|
|
64
64
|
"📷 Initialisation des vues 360°",
|
|
65
|
-
"🟠 Équilibrage des couleurs"
|
|
65
|
+
"🟠 Équilibrage des couleurs",
|
|
66
|
+
"💯 Calcul du score qualité ©"
|
|
66
67
|
],
|
|
67
68
|
"loading_labels_fun": [
|
|
68
69
|
"🦌 Détection des panneaux biche",
|
|
@@ -91,25 +92,29 @@
|
|
|
91
92
|
"error_webgl": "WebGL n'est pas supporté par ce navigateur",
|
|
92
93
|
"error_josm": "JOSM n'a pas répondu, est-il bien lancé et la télécommande activée ?",
|
|
93
94
|
"error_api_compatibility": "Le serveur de photos n'est pas compatible avec cette visionneuse",
|
|
94
|
-
"filter_date": "
|
|
95
|
-
"
|
|
96
|
-
"
|
|
95
|
+
"filter_date": "Date",
|
|
96
|
+
"filter_date_1month": "1 mois",
|
|
97
|
+
"filter_date_1year": "1 an",
|
|
98
|
+
"filter_user": "Utilisateur",
|
|
99
|
+
"filter_user_mypics": "Mes photos",
|
|
100
|
+
"filter_picture": "Type d'image",
|
|
97
101
|
"picture_flat": "Classique",
|
|
98
102
|
"picture_360": "360°",
|
|
99
|
-
"
|
|
100
|
-
"
|
|
103
|
+
"filter_qualityscore": "Score de qualité",
|
|
104
|
+
"filter_qualityscore_help": "Cliquez pour activer ou désactiver",
|
|
101
105
|
"filter_zoom_in": "Zoomez plus pour voir les filtres",
|
|
102
106
|
"map_background": "Fond de carte",
|
|
103
107
|
"map_background_aerial": "Satellite",
|
|
104
108
|
"map_background_streets": "Plan",
|
|
105
109
|
"map_theme": "Rendu de carte",
|
|
106
|
-
"map_theme_default": "
|
|
107
|
-
"map_theme_age": "
|
|
110
|
+
"map_theme_default": "Classique",
|
|
111
|
+
"map_theme_age": "Date de prise de vue",
|
|
108
112
|
"map_theme_age_1": "> 2 ans",
|
|
109
113
|
"map_theme_age_2": "< 2 ans",
|
|
110
114
|
"map_theme_age_3": "< 1 an",
|
|
111
115
|
"map_theme_age_4": "< 1 mois",
|
|
112
|
-
"map_theme_type": "
|
|
116
|
+
"map_theme_type": "Type de caméra",
|
|
117
|
+
"map_theme_score": "Score de qualité",
|
|
113
118
|
"contrast": "Augmenter le contraste de l'image",
|
|
114
119
|
"metadata": "Métadonnées de la photo",
|
|
115
120
|
"metadata_general_picid": "Identifiant de photo",
|
|
@@ -124,12 +129,19 @@
|
|
|
124
129
|
"metadata_camera_make": "Fabricant",
|
|
125
130
|
"metadata_camera_model": "Modèle",
|
|
126
131
|
"metadata_camera_type": "Type",
|
|
132
|
+
"metadata_camera_resolution": "Résolution",
|
|
127
133
|
"metadata_camera_focal_length": "Longueur focale",
|
|
128
134
|
"metadata_location": "Localisation",
|
|
129
135
|
"metadata_location_longitude": "Longitude",
|
|
130
136
|
"metadata_location_latitude": "Latitude",
|
|
131
137
|
"metadata_location_orientation": "Direction de prise de vue",
|
|
132
138
|
"metadata_location_precision": "Précision du positionnement",
|
|
139
|
+
"metadata_quality": "Score de qualité",
|
|
140
|
+
"metadata_quality_help": "En savoir plus sur le score de qualité",
|
|
141
|
+
"metadata_quality_score": "Note globale",
|
|
142
|
+
"metadata_quality_gps_score": "Note du positionnement",
|
|
143
|
+
"metadata_quality_resolution_score": "Note de la résolution",
|
|
144
|
+
"metadata_quality_missing": "pas d'info dans l'image",
|
|
133
145
|
"metadata_exif": "EXIF / XMP",
|
|
134
146
|
"metadata_exif_name": "Balise",
|
|
135
147
|
"metadata_exif_value": "Valeur",
|
|
@@ -153,14 +165,13 @@
|
|
|
153
165
|
"report_email": "Votre email",
|
|
154
166
|
"report_email_placeholder": "Optionnel",
|
|
155
167
|
"report_submit": "Envoyer",
|
|
156
|
-
"report_wait": "Envoi du signalement en cours
|
|
168
|
+
"report_wait": "Envoi du signalement en cours…",
|
|
157
169
|
"report_success": "Le signalement a été envoyé avec succès. Il sera examiné dès que possible.",
|
|
158
170
|
"report_failure": "Une erreur est survenue lors de la création du signalement : {e}. Veuillez réessayer plus tard."
|
|
159
171
|
},
|
|
160
172
|
"map": {
|
|
161
173
|
"loading": "Chargement…",
|
|
162
174
|
"thumbnail": "Miniature de la photo survolée",
|
|
163
|
-
"no_thumbnail": "Pas de miniature",
|
|
164
175
|
"not_public": "Masqué au public",
|
|
165
176
|
"slow_loading": "La carte est longue à charger et pourrait apparaître cassée"
|
|
166
177
|
}
|
package/src/translations/hu.json
CHANGED
|
@@ -1,114 +1,114 @@
|
|
|
1
1
|
{
|
|
2
2
|
"psv": {
|
|
3
|
-
"twoFingers": "
|
|
4
|
-
"ctrlZoom": "
|
|
3
|
+
"twoFingers": "Két ujjal navigálhat",
|
|
4
|
+
"ctrlZoom": "Közelítés vagy távolítás: Ctrl + görgetés",
|
|
5
5
|
"loadError": "A panoráma nem tölthető be"
|
|
6
6
|
},
|
|
7
7
|
"gvs": {
|
|
8
8
|
"zoom": "Nagyítás",
|
|
9
|
-
"zoomOut": "
|
|
10
|
-
"zoomIn": "
|
|
9
|
+
"zoomOut": "Távolítás",
|
|
10
|
+
"zoomIn": "Közelítés",
|
|
11
11
|
"moveUp": "Mozgás fel",
|
|
12
12
|
"moveDown": "Mozgás le",
|
|
13
13
|
"moveLeft": "Mozgás balra",
|
|
14
14
|
"moveRight": "Mozgás jobbra",
|
|
15
15
|
"moveMiddle": "Nézet középre hozása",
|
|
16
|
-
"expand": "
|
|
17
|
-
"expand_info": "
|
|
18
|
-
"show_psv": "
|
|
19
|
-
"show_map": "
|
|
20
|
-
"minimize": "
|
|
16
|
+
"expand": "Bővítés",
|
|
17
|
+
"expand_info": "Widget megjelenítése teljes oldalon",
|
|
18
|
+
"show_psv": "Képnézegető megjelenítése",
|
|
19
|
+
"show_map": "Térkép megjelenítése",
|
|
20
|
+
"minimize": "Widget elrejtése; a bal alsó sarokban lévő gombbal újra megjelenítheti",
|
|
21
21
|
"options": "Beállítások",
|
|
22
22
|
"filters": "Szűrők",
|
|
23
23
|
"layers": "Rétegek",
|
|
24
24
|
"share": "Megosztás",
|
|
25
25
|
"search": "Keresés",
|
|
26
|
-
"search_empty": "Nincs
|
|
27
|
-
"share_links": "
|
|
28
|
-
"share_page": "
|
|
29
|
-
"share_image": "
|
|
30
|
-
"share_rss": "RSS",
|
|
26
|
+
"search_empty": "Nincs találat",
|
|
27
|
+
"share_links": "Linkek",
|
|
28
|
+
"share_page": "Link erre az oldalra",
|
|
29
|
+
"share_image": "Nagy felbontású (HD) kép",
|
|
30
|
+
"share_rss": "RSS hírcsatorna",
|
|
31
31
|
"share_rss_title": "A térkép látható területén lévő új sorozatok RSS-hírcsatornája",
|
|
32
|
-
"share_embed": "Beágyazás a
|
|
32
|
+
"share_embed": "Beágyazás a weboldaladon",
|
|
33
33
|
"share_print": "Nyomtatás",
|
|
34
34
|
"copy": "Másolás",
|
|
35
35
|
"copied": "Másolva",
|
|
36
|
-
"error": "
|
|
36
|
+
"error": "Ajjaj, baj van…",
|
|
37
37
|
"error_subtitle": "Próbálja újra később, vagy nézze meg a böngészőkonzolt a további részletekért.",
|
|
38
38
|
"sequence_next": "A sorozat következő képe",
|
|
39
|
-
"sequence_play": "
|
|
40
|
-
"sequence_pause": "
|
|
39
|
+
"sequence_play": "Sorozat lejátszása",
|
|
40
|
+
"sequence_pause": "Sorozatlejátszás szüneteltetése",
|
|
41
41
|
"sequence_prev": "A sorozat előző képe",
|
|
42
42
|
"sequence_more": "További lejátszási lehetőségek",
|
|
43
|
-
"sequence_speed": "
|
|
43
|
+
"sequence_speed": "Lejátszás sebessége",
|
|
44
44
|
"legend_license": "Licenc: {l}",
|
|
45
|
-
"edit_osm": "
|
|
45
|
+
"edit_osm": "OSM szerkesztése",
|
|
46
46
|
"id": "iD",
|
|
47
47
|
"josm": "JOSM",
|
|
48
|
-
"josm_live": "
|
|
48
|
+
"josm_live": "JOSM automatikus szinkronizálásának engedélyezése képbetöltéskor",
|
|
49
49
|
"loading_labels_serious": [
|
|
50
|
-
"🗺️
|
|
51
|
-
"🖥️
|
|
52
|
-
"🖼️
|
|
53
|
-
"🔍
|
|
54
|
-
"🏘️ 3D
|
|
55
|
-
"📷
|
|
56
|
-
"🟠
|
|
50
|
+
"🗺️ Térképadatok betöltése",
|
|
51
|
+
"🖥️ API lekérdezése",
|
|
52
|
+
"🖼️ Bélyegképek betöltése",
|
|
53
|
+
"🔍 EXIF metaadatok elemzése",
|
|
54
|
+
"🏘️ 3D megjelenítés",
|
|
55
|
+
"📷 360°-os képek inicializálása",
|
|
56
|
+
"🟠 Színek kiegyenlítése",
|
|
57
|
+
"💯 Minőségi pontszám kiszámítása ©"
|
|
57
58
|
],
|
|
58
59
|
"loading_labels_fun": [
|
|
59
|
-
"🦌
|
|
60
|
-
"🚘
|
|
61
|
-
"☕
|
|
62
|
-
"😀
|
|
63
|
-
"🐈
|
|
64
|
-
"😴
|
|
65
|
-
"🫖
|
|
66
|
-
"🐧
|
|
67
|
-
"🚇
|
|
68
|
-
"🧹
|
|
69
|
-
"🚒
|
|
70
|
-
"🚲
|
|
71
|
-
"🚉
|
|
72
|
-
"🛰️
|
|
73
|
-
"👥
|
|
74
|
-
"🐟
|
|
75
|
-
"🧑💻
|
|
76
|
-
"📈
|
|
60
|
+
"🦌 Vadveszélyt jelző tábla észlelése",
|
|
61
|
+
"🚘 Panoramax autó © keresése",
|
|
62
|
+
"☕ Koffeininjekció",
|
|
63
|
+
"😀 Mosolyogj, fel lettél térképezve!",
|
|
64
|
+
"🐈 Kiscicás képek megosztása",
|
|
65
|
+
"😴 Halogatás csökkentése",
|
|
66
|
+
"🫖 Tea megfőzése",
|
|
67
|
+
"🐧 Forráskód felnyitása",
|
|
68
|
+
"🚇 Metróállomások indexelése",
|
|
69
|
+
"🧹 Metaadatok tisztogatása",
|
|
70
|
+
"🚒 Tűzoltóságról szóló fotók beküldése",
|
|
71
|
+
"🚲 Zöldutak frissítése",
|
|
72
|
+
"🚉 Peronok bejárása",
|
|
73
|
+
"🛰️ Műholdak keresése",
|
|
74
|
+
"👥 Personák megírása",
|
|
75
|
+
"🐟 Sültkrumplikapók lokalizálása",
|
|
76
|
+
"🧑💻 Hibakereső felület",
|
|
77
|
+
"📈 Statisztika növelése"
|
|
77
78
|
],
|
|
78
|
-
"error_psv": "A
|
|
79
|
-
"error_pic": "A kért kép nem
|
|
80
|
-
"error_nopic": "
|
|
79
|
+
"error_psv": "A Photo Sphere Viewer (gömbpanoráma-nézegető) nem töltődik be megfelelően",
|
|
80
|
+
"error_pic": "A kért kép nem található",
|
|
81
|
+
"error_nopic": "Az adott helyen nem érhető el kép",
|
|
81
82
|
"error_api": "A képkiszolgáló nem érhető el",
|
|
82
83
|
"error_webgl": "A WebGL nem támogatott ebben a böngészőben",
|
|
83
|
-
"error_josm": "A JOSM nem válaszol
|
|
84
|
-
"error_api_compatibility": "A
|
|
84
|
+
"error_josm": "A JOSM nem válaszol. Valóban fut és elérhető távolról?",
|
|
85
|
+
"error_api_compatibility": "A képkiszolgáló nem kompatibilis a képnézegető ezen verziójával",
|
|
85
86
|
"filter_date": "Dátum szerint",
|
|
86
87
|
"filter_user": "Felhasználó szerint",
|
|
87
|
-
"filter_picture": "
|
|
88
|
+
"filter_picture": "Képtípus szerint",
|
|
88
89
|
"picture_flat": "Klasszikus",
|
|
89
90
|
"picture_360": "360°",
|
|
90
91
|
"filter_camera_model": "Kameramodell szerint",
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"map_background_streets": "Utcák",
|
|
92
|
+
"map_background": "Térképháttér",
|
|
93
|
+
"map_background_aerial": "Légi felvétel",
|
|
94
|
+
"map_background_streets": "képUtca",
|
|
95
95
|
"map_theme": "Térkép témája",
|
|
96
|
-
"map_theme_default": "
|
|
97
|
-
"map_theme_age": "
|
|
96
|
+
"map_theme_default": "Klasszikus",
|
|
97
|
+
"map_theme_age": "Képkészítés ideje",
|
|
98
98
|
"map_theme_age_1": "> 2 éve",
|
|
99
99
|
"map_theme_age_2": "< 2 éve",
|
|
100
100
|
"map_theme_age_3": "< 1 éve",
|
|
101
101
|
"map_theme_age_4": "< 1 hónapja",
|
|
102
|
-
"map_theme_type": "Kameratípus
|
|
103
|
-
"contrast": "
|
|
104
|
-
"metadata": "
|
|
105
|
-
"metadata_general_picid": "
|
|
106
|
-
"metadata_general_seqid": "Sorozat
|
|
107
|
-
"metadata_general_picid_link": "
|
|
108
|
-
"metadata_general_seqid_link": "
|
|
102
|
+
"map_theme_type": "Kameratípus",
|
|
103
|
+
"contrast": "Nagyobb képkontraszt engedélyezése",
|
|
104
|
+
"metadata": "Kép metaadatai",
|
|
105
|
+
"metadata_general_picid": "Kép azonosítójs",
|
|
106
|
+
"metadata_general_seqid": "Sorozat azonosítója",
|
|
107
|
+
"metadata_general_picid_link": "Ugrás a kép JSON leírásához",
|
|
108
|
+
"metadata_general_seqid_link": "Ugrás a sorozat JSON leírásához",
|
|
109
109
|
"metadata_general_author": "Szerző",
|
|
110
|
-
"metadata_general_license": "
|
|
111
|
-
"metadata_general_license_link": "
|
|
110
|
+
"metadata_general_license": "Licenc (engedély)",
|
|
111
|
+
"metadata_general_license_link": "Ugrás a licenc teljes leírásához",
|
|
112
112
|
"metadata_general_date": "Készítés dátuma",
|
|
113
113
|
"metadata_camera": "Kamera",
|
|
114
114
|
"metadata_camera_make": "Gyártó",
|
|
@@ -118,16 +118,60 @@
|
|
|
118
118
|
"metadata_location": "Helyszín",
|
|
119
119
|
"metadata_location_longitude": "Hosszúság",
|
|
120
120
|
"metadata_location_latitude": "Szélesség",
|
|
121
|
-
"metadata_location_orientation": "
|
|
122
|
-
"metadata_location_precision": "
|
|
121
|
+
"metadata_location_orientation": "Felvétel iránya",
|
|
122
|
+
"metadata_location_precision": "Helymeghatározás pontossága",
|
|
123
123
|
"metadata_exif": "EXIF / XMP",
|
|
124
124
|
"metadata_exif_name": "Címke",
|
|
125
|
-
"metadata_exif_value": "Érték"
|
|
125
|
+
"metadata_exif_value": "Érték",
|
|
126
|
+
"report": "Kép bejelentése",
|
|
127
|
+
"report_auth": "A jelentés a fiókod ({a}) felhasználásával lesz elküldve",
|
|
128
|
+
"report_nature": {
|
|
129
|
+
"": "Probléma jellegének kiválasztása…",
|
|
130
|
+
"blur_missing": "A képen látszik egy személy arca vagy egy rendszámtábla",
|
|
131
|
+
"blur_excess": "A képen el van homályosítva egy olyan objektum, amelynek élesnek kellene lennie",
|
|
132
|
+
"inappropriate": "A kép nem megfelelő (irreleváns, meztelenséget jelenít meg stb.)",
|
|
133
|
+
"privacy": "A képen magánút vagy magánterület látható",
|
|
134
|
+
"picture_low_quality": "A kép nagyon rossz minőségű",
|
|
135
|
+
"mislocated": "A kép rosszul van elhelyezve a térképen",
|
|
136
|
+
"copyright": "A kép szerzői jogot sért",
|
|
137
|
+
"other": "Bármilyen más jellegű probléma"
|
|
138
|
+
},
|
|
139
|
+
"report_nature_label": "Probléma jellege",
|
|
140
|
+
"report_details": "További részletek",
|
|
141
|
+
"filter_zoom_in": "Nagyíts a szűrők láthatóvá tételéhez",
|
|
142
|
+
"report_email": "E-mail-cím",
|
|
143
|
+
"report_email_placeholder": "Nem kötelező",
|
|
144
|
+
"report_submit": "Beküldés",
|
|
145
|
+
"report_success": "A jelentés sikeresen be lett küldve; a lehető leghamarabb megvizsgáljuk.",
|
|
146
|
+
"report_failure": "Hiba történt a jelentés létrehozásakor: {e}. Kérjük, próbáld meg később újra.",
|
|
147
|
+
"search_user": "Felhasználónév keresése…",
|
|
148
|
+
"search_address": "Cím, város stb. keresése…",
|
|
149
|
+
"share_embed_docs": "További információ a beágyazás konfigurálásáról",
|
|
150
|
+
"error_click": "Kattints a folytatáshoz",
|
|
151
|
+
"error_retry": "Kérjük, próbáld meg később",
|
|
152
|
+
"legend_title": "Kép adatainak megjelenítése",
|
|
153
|
+
"report_whole_sequence": "A teljes sorozatra vonatkozik",
|
|
154
|
+
"report_wait": "Jelentés beküldése folyamatban…",
|
|
155
|
+
"report_details_placeholder": "Megadhatsz további részleteket a problémáról (nem kötelező)",
|
|
156
|
+
"filter_qualityscore_help": "Kattints az engedélyezéshez vagy a letiltáshoz",
|
|
157
|
+
"filter_qualityscore": "Minőségi pontszám",
|
|
158
|
+
"map_theme_score": "Minőségi pontszám",
|
|
159
|
+
"metadata_camera_resolution": "Felbontás",
|
|
160
|
+
"metadata_quality": "Minőségi pontszám",
|
|
161
|
+
"metadata_quality_help": "További tudnivalók a minőségi pontszámról",
|
|
162
|
+
"metadata_quality_score": "Összesített pontszám",
|
|
163
|
+
"metadata_quality_gps_score": "Pozicionálási pontszám",
|
|
164
|
+
"metadata_quality_resolution_score": "Felbontási pontszám",
|
|
165
|
+
"metadata_quality_missing": "a képben nincs megadva érték"
|
|
126
166
|
},
|
|
127
167
|
"map": {
|
|
128
168
|
"loading": "Betöltés…",
|
|
129
|
-
"thumbnail": "A
|
|
130
|
-
"
|
|
131
|
-
"
|
|
169
|
+
"thumbnail": "A kurzor alatti kép bélyegképe",
|
|
170
|
+
"not_public": "Nem látható nyilvánosan",
|
|
171
|
+
"slow_loading": "A térkép lassan töltődik be, és lehet, hogy lerobbant"
|
|
172
|
+
},
|
|
173
|
+
"maplibre": {
|
|
174
|
+
"GeolocateControl.FindMyLocation": "Tartózkodási hely megtalálása",
|
|
175
|
+
"GeolocateControl.LocationNotAvailable": "Tartózkodási hely nem érhető el"
|
|
132
176
|
}
|
|
133
177
|
}
|
package/src/translations/nl.json
CHANGED
|
@@ -1 +1,73 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"gvs": {
|
|
3
|
+
"zoomIn": "Zoom in",
|
|
4
|
+
"zoom": "Zoom",
|
|
5
|
+
"zoomOut": "Zoom uit",
|
|
6
|
+
"moveDown": "Naar beneden",
|
|
7
|
+
"search_user": "Zoek een gebruikersnaam…",
|
|
8
|
+
"moveUp": "Ga omhoog",
|
|
9
|
+
"share_rss": "RSS feed",
|
|
10
|
+
"loading_labels_serious": [
|
|
11
|
+
"🗺️ Kaart aan het laden",
|
|
12
|
+
"🖥️ API opvragen",
|
|
13
|
+
"🖼️ Miniatuurweergaven laden",
|
|
14
|
+
"🔍 EXIF metadata analyseren",
|
|
15
|
+
"🏘️ 3D rendering",
|
|
16
|
+
"📷 360° afbeelden initialiseren",
|
|
17
|
+
"🟠 Kleur balancering"
|
|
18
|
+
],
|
|
19
|
+
"share_embed_docs": "Lees meer over embedded instellingen",
|
|
20
|
+
"sequence_pause": "Pauzeer sequentie",
|
|
21
|
+
"sequence_prev": "Vorige afbeelding uit de sequentie",
|
|
22
|
+
"id": "iD",
|
|
23
|
+
"josm": "JOSM",
|
|
24
|
+
"sequence_more": "Meer afspeelmogelijkheden",
|
|
25
|
+
"sequence_speed": "Afspeel snelheid",
|
|
26
|
+
"edit_osm": "OSM aanpassen",
|
|
27
|
+
"moveLeft": "Naar links",
|
|
28
|
+
"moveRight": "Naar rechts",
|
|
29
|
+
"moveMiddle": "Middelpunt",
|
|
30
|
+
"expand": "Vergroot",
|
|
31
|
+
"show_psv": "Toon de afbeeldingsviewer",
|
|
32
|
+
"show_map": "Toon de kaart",
|
|
33
|
+
"options": "Opties",
|
|
34
|
+
"filters": "Filters",
|
|
35
|
+
"layers": "Lagen",
|
|
36
|
+
"search": "Zoek",
|
|
37
|
+
"search_empty": "Geen resultaat gevonden",
|
|
38
|
+
"search_address": "Zoek een adres, stad…",
|
|
39
|
+
"share": "Deel",
|
|
40
|
+
"share_links": "Links",
|
|
41
|
+
"share_page": "Link naar deze pagina",
|
|
42
|
+
"share_image": "HD afbeelding",
|
|
43
|
+
"share_embed": "Embedden op uw website",
|
|
44
|
+
"share_print": "Print",
|
|
45
|
+
"copy": "Kopieer",
|
|
46
|
+
"copied": "Gekopieerd",
|
|
47
|
+
"error": "We hebben een probleem…",
|
|
48
|
+
"sequence_next": "Volgende afbeelding van de sequentie",
|
|
49
|
+
"error_click": "Klik om verder te gaan",
|
|
50
|
+
"error_retry": "Probeer later opnieuw",
|
|
51
|
+
"legend_license": "Licentie: {l}",
|
|
52
|
+
"legend_title": "Toon gegevens van de afbeelding",
|
|
53
|
+
"sequence_play": "Speel deze sequentie af",
|
|
54
|
+
"expand_info": "De widget op de volledige pagina weergeven",
|
|
55
|
+
"minimize": "Verberg deze widget, je kan hem terug tonen met de knop linksonder",
|
|
56
|
+
"loading_labels_fun": [
|
|
57
|
+
"🦌 Detectie van verkeersbord overlopende herten",
|
|
58
|
+
"🚘 Panoramax auto zoeken ©",
|
|
59
|
+
"☕ Cafeïne-injectie",
|
|
60
|
+
null,
|
|
61
|
+
"🐈 Foto's delen van katten"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
"psv": {
|
|
65
|
+
"twoFingers": "Gebruik twee vingers om te navigeren",
|
|
66
|
+
"ctrlZoom": "Gebruik ctrl + scroll om de afbeelding in en uit te zoomen",
|
|
67
|
+
"loadError": "Het panorama kan niet worden geupload"
|
|
68
|
+
},
|
|
69
|
+
"maplibre": {
|
|
70
|
+
"GeolocateControl.FindMyLocation": "Mijn locatie zoeken",
|
|
71
|
+
"GeolocateControl.LocationNotAvailable": "Locatitie niet beschikbaar"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -16,10 +16,9 @@
|
|
|
16
16
|
"expand": "展開",
|
|
17
17
|
"expand_info": "在整個畫面顯示此小工具",
|
|
18
18
|
"filter_camera_model": "按相機型號",
|
|
19
|
-
"filter_date": "
|
|
20
|
-
"filter_picture": "
|
|
21
|
-
"
|
|
22
|
-
"filter_user": "按使用者",
|
|
19
|
+
"filter_date": "日期",
|
|
20
|
+
"filter_picture": "相片類型",
|
|
21
|
+
"filter_user": "使用者",
|
|
23
22
|
"filter_zoom_in": "拉近地圖以顯示篩選結果",
|
|
24
23
|
"filters": "篩選器",
|
|
25
24
|
"id": "iD",
|
|
@@ -54,7 +53,8 @@
|
|
|
54
53
|
"🔍 正在分析 EXIF 詮釋資料",
|
|
55
54
|
"🏘️ 正在算繪 3D",
|
|
56
55
|
"📷 正在初始化 360° 相片",
|
|
57
|
-
"🟠 正在平衡色彩"
|
|
56
|
+
"🟠 正在平衡色彩",
|
|
57
|
+
"💯 正在計算品質分數 ©"
|
|
58
58
|
],
|
|
59
59
|
"map_background": "地圖背景",
|
|
60
60
|
"map_background_aerial": "衛星",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"map_theme_age_2": "< 2 年",
|
|
66
66
|
"map_theme_age_3": "< 1 年",
|
|
67
67
|
"map_theme_age_4": "< 1 個月",
|
|
68
|
-
"map_theme_default": "
|
|
68
|
+
"map_theme_default": "經典",
|
|
69
69
|
"map_theme_type": "相機類型",
|
|
70
70
|
"metadata": "相片詮釋資料",
|
|
71
71
|
"metadata_camera": "相機",
|
|
@@ -120,17 +120,61 @@
|
|
|
120
120
|
"show_psv": "顯示相片檢視器",
|
|
121
121
|
"zoom": "縮放",
|
|
122
122
|
"zoomIn": "拉近",
|
|
123
|
-
"zoomOut": "拉遠"
|
|
123
|
+
"zoomOut": "拉遠",
|
|
124
|
+
"report_submit": "送出",
|
|
125
|
+
"report_email": "您的 email",
|
|
126
|
+
"report_nature_label": "問題的類型",
|
|
127
|
+
"report_nature": {
|
|
128
|
+
"": "選擇問題的類型…",
|
|
129
|
+
"blur_missing": "可以看見人臉或車牌",
|
|
130
|
+
"blur_excess": "不需要模糊的物件被模糊處理了",
|
|
131
|
+
"inappropriate": "不當的相片 (不相關、裸體…)",
|
|
132
|
+
"privacy": "可以看見私人的道路或資產",
|
|
133
|
+
"picture_low_quality": "相片的品質很差",
|
|
134
|
+
"mislocated": "相片在地圖上的位置不正確",
|
|
135
|
+
"copyright": "相片侵犯了版權",
|
|
136
|
+
"other": "任何其他類型的問題"
|
|
137
|
+
},
|
|
138
|
+
"share_embed_docs": "深入了解嵌入設定值",
|
|
139
|
+
"error_retry": "請稍後再試",
|
|
140
|
+
"error_click": "點擊以繼續",
|
|
141
|
+
"legend_title": "顯示相片的詳細資料",
|
|
142
|
+
"report_email_placeholder": "選填",
|
|
143
|
+
"report_whole_sequence": "這個問題影響整個序列",
|
|
144
|
+
"report_details": "更多資訊",
|
|
145
|
+
"report_details_placeholder": "選填,您可以詳述此問題和它造成的影響",
|
|
146
|
+
"report_wait": "正在傳送報告…",
|
|
147
|
+
"report_success": "已成功發送報告,我們將儘快對它進行審核。",
|
|
148
|
+
"report_failure": "建立報告時發送錯誤: {e},請稍後再試。",
|
|
149
|
+
"report_auth": "此報告將使用您的帳戶「{a}」發送",
|
|
150
|
+
"filter_qualityscore": "品質分數",
|
|
151
|
+
"filter_qualityscore_help": "點擊以啟用或停用",
|
|
152
|
+
"map_theme_score": "品質分數",
|
|
153
|
+
"metadata_camera_resolution": "解析度",
|
|
154
|
+
"metadata_quality": "品質分數",
|
|
155
|
+
"metadata_quality_help": "了解有關品質分數的更多資訊",
|
|
156
|
+
"metadata_quality_gps_score": "定位分數",
|
|
157
|
+
"metadata_quality_resolution_score": "解析度分數",
|
|
158
|
+
"metadata_quality_missing": "相片未包含資訊",
|
|
159
|
+
"report": "檢舉相片",
|
|
160
|
+
"metadata_quality_score": "整體分數",
|
|
161
|
+
"filter_user_mypics": "我的相片",
|
|
162
|
+
"filter_date_1month": "1 個月",
|
|
163
|
+
"filter_date_1year": "1 年"
|
|
124
164
|
},
|
|
125
165
|
"map": {
|
|
126
166
|
"loading": "正在載入…",
|
|
127
|
-
"no_thumbnail": "沒有縮圖",
|
|
128
167
|
"not_public": "未公開顯示",
|
|
129
|
-
"thumbnail": "遊標懸停相片的縮圖"
|
|
168
|
+
"thumbnail": "遊標懸停相片的縮圖",
|
|
169
|
+
"slow_loading": "地圖載入速度緩慢而且可能出現損壞"
|
|
130
170
|
},
|
|
131
171
|
"psv": {
|
|
132
172
|
"ctrlZoom": "使用 CTRL + 滑鼠滾輪縮放圖片",
|
|
133
173
|
"loadError": "無法載入全景圖",
|
|
134
174
|
"twoFingers": "使用雙指移動"
|
|
175
|
+
},
|
|
176
|
+
"maplibre": {
|
|
177
|
+
"GeolocateControl.FindMyLocation": "尋找我的位置",
|
|
178
|
+
"GeolocateControl.LocationNotAvailable": "無法使用位置資訊"
|
|
135
179
|
}
|
|
136
180
|
}
|
package/src/utils/API.js
CHANGED
|
@@ -76,6 +76,22 @@ export default class API {
|
|
|
76
76
|
return this._isReady == 1;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* List of available features offered by API
|
|
81
|
+
* @returns {string[]} Keywords of enabled features
|
|
82
|
+
*/
|
|
83
|
+
getAvailableFeatures() {
|
|
84
|
+
return Object.entries(this._endpoints).filter(e => e[1] !== null).map(e => e[0]);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* List of unavailable features on API
|
|
89
|
+
* @returns {string[]} Keywords of disabled features
|
|
90
|
+
*/
|
|
91
|
+
getUnavailableFeatures() {
|
|
92
|
+
return Object.entries(this._endpoints).filter(e => e[1] === null).map(e => e[0]);
|
|
93
|
+
}
|
|
94
|
+
|
|
79
95
|
/**
|
|
80
96
|
* Interprets JSON landing page and store important information
|
|
81
97
|
*
|
|
@@ -107,7 +123,7 @@ export default class API {
|
|
|
107
123
|
// Read metadata
|
|
108
124
|
this._metadata.name = landing.title || "Unnamed";
|
|
109
125
|
this._metadata.stac_version = landing.stac_version;
|
|
110
|
-
this._metadata.geovisio_version = landing.geovisio_version
|
|
126
|
+
this._metadata.geovisio_version = landing.geovisio_version;
|
|
111
127
|
|
|
112
128
|
// Read links
|
|
113
129
|
const supportedLinks = [
|
|
@@ -243,7 +259,7 @@ export default class API {
|
|
|
243
259
|
const mapUsers = new Set(users || []);
|
|
244
260
|
|
|
245
261
|
// Load all necessary map styles
|
|
246
|
-
this.mapStyle = { version: 8, sources: {}, layers: [] };
|
|
262
|
+
this.mapStyle = { version: 8, sources: {}, layers: [], metadata: {} };
|
|
247
263
|
const stylePromises = [ this.getMapStyle() ];
|
|
248
264
|
|
|
249
265
|
// General map style
|
|
@@ -263,7 +279,7 @@ export default class API {
|
|
|
263
279
|
return Promise.all(stylePromises)
|
|
264
280
|
.then(styles => {
|
|
265
281
|
const overridableProps = [
|
|
266
|
-
"bearing", "center", "glyphs", "light", "
|
|
282
|
+
"bearing", "center", "glyphs", "light", "name",
|
|
267
283
|
"pitch", "sky", "sprite", "terrain", "transition", "zoom"
|
|
268
284
|
];
|
|
269
285
|
|
|
@@ -272,6 +288,7 @@ export default class API {
|
|
|
272
288
|
if(style[p]) { this.mapStyle[p] = style[p] || this.mapStyle[p]; }
|
|
273
289
|
});
|
|
274
290
|
Object.assign(this.mapStyle.sources, style?.sources || {});
|
|
291
|
+
Object.assign(this.mapStyle.metadata, style?.metadata || {});
|
|
275
292
|
this.mapStyle.layers = this.mapStyle.layers.concat(style?.layers || []);
|
|
276
293
|
});
|
|
277
294
|
})
|
package/src/utils/Exif.js
CHANGED
|
@@ -41,17 +41,12 @@ export function getExifFloat(val) {
|
|
|
41
41
|
* @private
|
|
42
42
|
*/
|
|
43
43
|
export function getGPSPrecision(picture) {
|
|
44
|
-
let quality = "
|
|
45
|
-
const gpsHPosError = getExifFloat(picture?.properties?.exif?.["Exif.GPSInfo.GPSHPositioningError"]);
|
|
44
|
+
let quality = "❓";
|
|
45
|
+
const gpsHPosError = picture?.properties?.["quality:horizontal_accuracy"] || getExifFloat(picture?.properties?.exif?.["Exif.GPSInfo.GPSHPositioningError"]);
|
|
46
46
|
const gpsDop = getExifFloat(picture?.properties?.exif?.["Exif.GPSInfo.GPSDOP"]);
|
|
47
47
|
|
|
48
48
|
if(gpsHPosError !== undefined) {
|
|
49
|
-
|
|
50
|
-
else if(gpsHPosError < 1) { quality = "excellent"; }
|
|
51
|
-
else if(gpsHPosError < 3) { quality = "good"; }
|
|
52
|
-
else if(gpsHPosError < 7) { quality = "moderate"; }
|
|
53
|
-
else if(gpsHPosError < 10) { quality = "fair"; }
|
|
54
|
-
else { quality = "poor"; }
|
|
49
|
+
quality = `${gpsHPosError} m`;
|
|
55
50
|
}
|
|
56
51
|
else if(gpsDop !== undefined) {
|
|
57
52
|
if(gpsDop < 1) { quality = "ideal"; }
|
|
@@ -131,11 +126,11 @@ export function getSphereCorrection(picture) {
|
|
|
131
126
|
roll = roll || 0;
|
|
132
127
|
|
|
133
128
|
// Send result
|
|
134
|
-
return {
|
|
129
|
+
return pitch !== 0 && roll !== 0 ? {
|
|
135
130
|
pan: yaw * Math.PI / 180,
|
|
136
131
|
tilt: pitch * Math.PI / 180,
|
|
137
132
|
roll: roll * Math.PI / 180,
|
|
138
|
-
};
|
|
133
|
+
} : {};
|
|
139
134
|
}
|
|
140
135
|
|
|
141
136
|
/**
|