umap-project 3.3.4__py3-none-any.whl → 3.3.6__py3-none-any.whl
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.
- umap/__init__.py +1 -1
- umap/locale/de/LC_MESSAGES/django.mo +0 -0
- umap/locale/de/LC_MESSAGES/django.po +43 -38
- umap/static/umap/js/modules/browser.js +1 -1
- umap/static/umap/js/modules/data/features.js +4 -3
- umap/static/umap/js/modules/data/layer.js +49 -23
- umap/static/umap/js/modules/managers.js +1 -0
- umap/static/umap/js/modules/rendering/layers/base.js +3 -3
- umap/static/umap/js/modules/rendering/layers/cluster.js +12 -8
- umap/static/umap/js/modules/umap.js +12 -0
- umap/static/umap/locale/de.js +55 -55
- umap/static/umap/locale/de.json +55 -55
- umap/static/umap/locale/en.js +2 -1
- umap/static/umap/locale/en.json +2 -1
- umap/static/umap/locale/fr.js +2 -1
- umap/static/umap/locale/fr.json +2 -1
- umap/static/umap/locale/zh_TW.js +2 -2
- umap/static/umap/locale/zh_TW.json +2 -2
- umap/tests/integration/test_cluster.py +61 -0
- umap/tests/integration/test_datalayer.py +9 -16
- umap/tests/integration/test_edit_marker.py +11 -0
- {umap_project-3.3.4.dist-info → umap_project-3.3.6.dist-info}/METADATA +1 -1
- {umap_project-3.3.4.dist-info → umap_project-3.3.6.dist-info}/RECORD +26 -26
- {umap_project-3.3.4.dist-info → umap_project-3.3.6.dist-info}/WHEEL +0 -0
- {umap_project-3.3.4.dist-info → umap_project-3.3.6.dist-info}/entry_points.txt +0 -0
- {umap_project-3.3.4.dist-info → umap_project-3.3.6.dist-info}/licenses/LICENSE +0 -0
umap/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION = "3.3.
|
|
1
|
+
VERSION = "3.3.6"
|
|
Binary file
|
|
@@ -15,14 +15,15 @@
|
|
|
15
15
|
# Paul Vogel, 2025
|
|
16
16
|
# pgeo, 2023
|
|
17
17
|
# Klumbumbus, 2013-2014,2018-2019
|
|
18
|
+
# s r, 2025
|
|
18
19
|
# YOHAN BONIFACE <yb@enix.org>, 2012
|
|
19
20
|
msgid ""
|
|
20
21
|
msgstr ""
|
|
21
22
|
"Project-Id-Version: uMap\n"
|
|
22
23
|
"Report-Msgid-Bugs-To: \n"
|
|
23
|
-
"POT-Creation-Date: 2025-
|
|
24
|
+
"POT-Creation-Date: 2025-08-14 15:22+0000\n"
|
|
24
25
|
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
|
|
25
|
-
"Last-Translator:
|
|
26
|
+
"Last-Translator: s r, 2025\n"
|
|
26
27
|
"Language-Team: German (http://app.transifex.com/openstreetmap/umap/language/de/)\n"
|
|
27
28
|
"MIME-Version: 1.0\n"
|
|
28
29
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
@@ -212,11 +213,11 @@ msgstr "Fahrradfahren"
|
|
|
212
213
|
|
|
213
214
|
#: settings/base.py:320
|
|
214
215
|
msgid "Business"
|
|
215
|
-
msgstr ""
|
|
216
|
+
msgstr "Gewerblich"
|
|
216
217
|
|
|
217
218
|
#: settings/base.py:321
|
|
218
219
|
msgid "Environment"
|
|
219
|
-
msgstr "
|
|
220
|
+
msgstr "Umwelt"
|
|
220
221
|
|
|
221
222
|
#: settings/base.py:322
|
|
222
223
|
msgid "Education"
|
|
@@ -224,11 +225,11 @@ msgstr "Bildung"
|
|
|
224
225
|
|
|
225
226
|
#: settings/base.py:323
|
|
226
227
|
msgid "Food and Agriculture"
|
|
227
|
-
msgstr ""
|
|
228
|
+
msgstr "Nahrungsmittel und Landwirtschaft"
|
|
228
229
|
|
|
229
230
|
#: settings/base.py:324
|
|
230
231
|
msgid "Geopolitics"
|
|
231
|
-
msgstr ""
|
|
232
|
+
msgstr "Geopolitik"
|
|
232
233
|
|
|
233
234
|
#: settings/base.py:325
|
|
234
235
|
msgid "Health"
|
|
@@ -244,7 +245,7 @@ msgstr "Geschichte"
|
|
|
244
245
|
|
|
245
246
|
#: settings/base.py:328
|
|
246
247
|
msgid "Public sector"
|
|
247
|
-
msgstr ""
|
|
248
|
+
msgstr "Öffentlicher Sektor"
|
|
248
249
|
|
|
249
250
|
#: settings/base.py:329
|
|
250
251
|
msgid "Science"
|
|
@@ -252,7 +253,7 @@ msgstr "Wissenschaft"
|
|
|
252
253
|
|
|
253
254
|
#: settings/base.py:330
|
|
254
255
|
msgid "Shopping"
|
|
255
|
-
msgstr "
|
|
256
|
+
msgstr "Einkaufsmöglichkeiten"
|
|
256
257
|
|
|
257
258
|
#: settings/base.py:331
|
|
258
259
|
msgid "Sport and Leisure"
|
|
@@ -264,7 +265,7 @@ msgstr "Reisen"
|
|
|
264
265
|
|
|
265
266
|
#: settings/base.py:333
|
|
266
267
|
msgid "Transports"
|
|
267
|
-
msgstr ""
|
|
268
|
+
msgstr "Transport"
|
|
268
269
|
|
|
269
270
|
#: settings/base.py:334
|
|
270
271
|
msgid "Tourism"
|
|
@@ -337,7 +338,7 @@ msgstr "Schaue dir %(current_user)s's favorisierten Karten an"
|
|
|
337
338
|
msgid "%(current_user)s has no starred maps yet."
|
|
338
339
|
msgstr "%(current_user)s hat keine favorisierten Karten."
|
|
339
340
|
|
|
340
|
-
#: templates/base.html:
|
|
341
|
+
#: templates/base.html:16
|
|
341
342
|
msgid ""
|
|
342
343
|
"uMap lets you create maps with OpenStreetMap layers in a minute and embed "
|
|
343
344
|
"them in your site."
|
|
@@ -349,11 +350,11 @@ msgstr "Anmeldung"
|
|
|
349
350
|
|
|
350
351
|
#: templates/registration/login.html:22
|
|
351
352
|
msgid "To save and easily find your maps, identify yourself."
|
|
352
|
-
msgstr "
|
|
353
|
+
msgstr "Melde dich an um deine Karten einfach zu speichern und wieder zu finden."
|
|
353
354
|
|
|
354
355
|
#: templates/registration/login.html:25
|
|
355
356
|
msgid "Please log in with your account:"
|
|
356
|
-
msgstr "Bitte
|
|
357
|
+
msgstr "Bitte melde dich mit deinem Konto an"
|
|
357
358
|
|
|
358
359
|
#: templates/registration/login.html:42
|
|
359
360
|
msgid "Username"
|
|
@@ -513,11 +514,11 @@ msgstr "Meine Karten"
|
|
|
513
514
|
#: templates/umap/dashboard_menu.html:11
|
|
514
515
|
#, python-format
|
|
515
516
|
msgid "My Templates (%(count)s)"
|
|
516
|
-
msgstr ""
|
|
517
|
+
msgstr "Meine Vorlagen (%(count)s)"
|
|
517
518
|
|
|
518
519
|
#: templates/umap/dashboard_menu.html:13 templates/umap/user_templates.html:6
|
|
519
520
|
msgid "My Templates"
|
|
520
|
-
msgstr ""
|
|
521
|
+
msgstr "Meine Vorlagen"
|
|
521
522
|
|
|
522
523
|
#: templates/umap/dashboard_menu.html:17
|
|
523
524
|
msgid "My profile"
|
|
@@ -543,7 +544,7 @@ msgstr "Du bist eingeloggt. Weiterleitung..."
|
|
|
543
544
|
msgid "template"
|
|
544
545
|
msgstr "Vorlage"
|
|
545
546
|
|
|
546
|
-
#: templates/umap/map_list.html:18 views.py:
|
|
547
|
+
#: templates/umap/map_list.html:18 views.py:459
|
|
547
548
|
msgid "by"
|
|
548
549
|
msgstr "von"
|
|
549
550
|
|
|
@@ -720,7 +721,7 @@ msgstr "Keine Karte gefunden."
|
|
|
720
721
|
|
|
721
722
|
#: templates/umap/search.html:36
|
|
722
723
|
msgid "Latest created maps in category"
|
|
723
|
-
msgstr ""
|
|
724
|
+
msgstr "Zuletzt erstelle Karten in Kategorie"
|
|
724
725
|
|
|
725
726
|
#: templates/umap/search.html:43
|
|
726
727
|
msgid "Latest created maps"
|
|
@@ -775,7 +776,7 @@ msgstr "Meine Karten suchen"
|
|
|
775
776
|
|
|
776
777
|
#: templates/umap/user_dashboard.html:11
|
|
777
778
|
msgid "Map’s name"
|
|
778
|
-
msgstr ""
|
|
779
|
+
msgstr "Kartenname"
|
|
779
780
|
|
|
780
781
|
#: templates/umap/user_dashboard.html:12
|
|
781
782
|
#, python-format
|
|
@@ -800,93 +801,97 @@ msgstr "Neues Team"
|
|
|
800
801
|
|
|
801
802
|
#: templates/umap/user_templates.html:10
|
|
802
803
|
msgid "Search my templates"
|
|
803
|
-
msgstr ""
|
|
804
|
+
msgstr "Meine Vorlagen durchsuchen"
|
|
804
805
|
|
|
805
806
|
#: templates/umap/user_templates.html:11
|
|
806
807
|
msgid "Template’s name"
|
|
807
|
-
msgstr ""
|
|
808
|
+
msgstr "Vorlagenname"
|
|
808
809
|
|
|
809
810
|
#: templates/umap/user_templates.html:12
|
|
810
811
|
#, python-format
|
|
811
812
|
msgid "Download %(count)s templates"
|
|
812
|
-
msgstr ""
|
|
813
|
+
msgstr "Herunterladen von %(count)s Vorlage(n)"
|
|
813
814
|
|
|
814
815
|
#: templates/umap/user_templates.html:15
|
|
815
816
|
msgid "You have no template yet."
|
|
816
|
-
msgstr ""
|
|
817
|
+
msgstr "Du hast noch keine Vorlagen"
|
|
817
818
|
|
|
818
819
|
#: templates/umap/user_templates.html:16
|
|
819
820
|
msgid "Create a template"
|
|
820
|
-
msgstr ""
|
|
821
|
+
msgstr "Erstelle Vorlage"
|
|
821
822
|
|
|
822
823
|
#: templates/umap/user_templates.html:17
|
|
823
824
|
msgid "No template found."
|
|
824
|
-
msgstr ""
|
|
825
|
+
msgstr "Keine Vorlage gefunden"
|
|
825
826
|
|
|
826
|
-
#: views.py:
|
|
827
|
+
#: views.py:235
|
|
827
828
|
msgid "Cannot delete a team with more than one member"
|
|
828
829
|
msgstr "Teams mit mehr als einem Mitglied können nicht gelöscht werden"
|
|
829
830
|
|
|
830
|
-
#: views.py:
|
|
831
|
+
#: views.py:239
|
|
831
832
|
#, python-format
|
|
832
833
|
msgid "Team “%(name)s” has been deleted"
|
|
833
834
|
msgstr "Team “%(name)s” wurde gelöscht"
|
|
834
835
|
|
|
835
|
-
#: views.py:
|
|
836
|
+
#: views.py:464
|
|
836
837
|
msgid "View the map"
|
|
837
838
|
msgstr "Diese Karte anzeigen"
|
|
838
839
|
|
|
839
|
-
#: views.py:
|
|
840
|
+
#: views.py:867
|
|
840
841
|
msgid "See full screen"
|
|
841
842
|
msgstr "Vollbildanzeige"
|
|
842
843
|
|
|
843
|
-
#: views.py:
|
|
844
|
+
#: views.py:1010
|
|
844
845
|
msgid "Map editors updated with success!"
|
|
845
846
|
msgstr "Bearbeiter erfolgreich geändert"
|
|
846
847
|
|
|
847
|
-
#: views.py:
|
|
848
|
+
#: views.py:1046
|
|
848
849
|
#, python-format
|
|
849
850
|
msgid "The uMap edit link for your map: %(map_name)s"
|
|
850
851
|
msgstr "Der uMap-Bearbeitungslink für Deine Karte: %(map_name)s"
|
|
851
852
|
|
|
852
|
-
#: views.py:
|
|
853
|
+
#: views.py:1049
|
|
853
854
|
#, python-format
|
|
854
855
|
msgid "Here is your secret edit link: %(link)s"
|
|
855
856
|
msgstr "Dies ist der geheime Bearbeitungslink: %(link)s"
|
|
856
857
|
|
|
857
|
-
#: views.py:
|
|
858
|
+
#: views.py:1056
|
|
858
859
|
#, python-format
|
|
859
860
|
msgid "Can't send email to %(email)s"
|
|
860
861
|
msgstr "E-Mail kann nicht gesendet werden an %(email)s"
|
|
861
862
|
|
|
862
|
-
#: views.py:
|
|
863
|
+
#: views.py:1059
|
|
863
864
|
#, python-format
|
|
864
865
|
msgid "Email sent to %(email)s"
|
|
865
866
|
msgstr "Email gesendet an %(email)s"
|
|
866
867
|
|
|
867
|
-
#: views.py:
|
|
868
|
+
#: views.py:1070
|
|
868
869
|
msgid "Only its owner can delete the map."
|
|
869
870
|
msgstr "Nur der Ersteller kann die Karte löschen."
|
|
870
871
|
|
|
871
|
-
#: views.py:
|
|
872
|
+
#: views.py:1076
|
|
872
873
|
msgid "Map successfully deleted."
|
|
873
874
|
msgstr "Karte erfolgreich gelöscht."
|
|
874
875
|
|
|
875
|
-
#: views.py:
|
|
876
|
+
#: views.py:1102
|
|
876
877
|
#, python-format
|
|
877
878
|
msgid ""
|
|
878
879
|
"Your map has been cloned! If you want to edit this map from another "
|
|
879
880
|
"computer, please use this link: %(anonymous_url)s"
|
|
880
881
|
msgstr "Deine Karte wurde kopiert! Wenn du diese Karte von einem anderen Computer aus bearbeiten möchtest, benutze bitte diesen Link: %(anonymous_url)s"
|
|
881
882
|
|
|
882
|
-
#: views.py:
|
|
883
|
+
#: views.py:1107
|
|
883
884
|
msgid "Congratulations, your map has been cloned!"
|
|
884
885
|
msgstr "Glückwunsch, deine Karte wurde kopiert!"
|
|
885
886
|
|
|
886
|
-
#: views.py:
|
|
887
|
+
#: views.py:1361
|
|
887
888
|
msgid "Layer successfully deleted."
|
|
888
889
|
msgstr "Ebene erfolgreich gelöscht."
|
|
889
890
|
|
|
890
|
-
#: views.py:
|
|
891
|
+
#: views.py:1383
|
|
891
892
|
msgid "Permissions updated with success!"
|
|
892
893
|
msgstr "Berechtigungen erfolgreich aktualisiert!"
|
|
894
|
+
|
|
895
|
+
#: views.py:1400
|
|
896
|
+
msgid "Generic"
|
|
897
|
+
msgstr "Allgemein"
|
|
@@ -252,7 +252,7 @@ export default class Browser {
|
|
|
252
252
|
if (datalayer.isVisible()) allHidden = false
|
|
253
253
|
})
|
|
254
254
|
this._umap.datalayers.browsable().map((datalayer) => {
|
|
255
|
-
datalayer.
|
|
255
|
+
datalayer.autoLoaded = false
|
|
256
256
|
if (allHidden) {
|
|
257
257
|
datalayer.show()
|
|
258
258
|
} else {
|
|
@@ -241,11 +241,12 @@ class Feature {
|
|
|
241
241
|
|
|
242
242
|
const properties = []
|
|
243
243
|
for (const field of this.fields) {
|
|
244
|
-
|
|
244
|
+
const options = { handler: 'Input', label: field.key }
|
|
245
245
|
if (field.key === 'description' || field.type === 'Text') {
|
|
246
|
-
handler = 'Textarea'
|
|
246
|
+
options.handler = 'Textarea'
|
|
247
|
+
options.helpEntries = ['textFormatting']
|
|
247
248
|
}
|
|
248
|
-
properties.push([`properties.${field.key}`,
|
|
249
|
+
properties.push([`properties.${field.key}`, options])
|
|
249
250
|
}
|
|
250
251
|
builder = new MutatingForm(this, properties, {
|
|
251
252
|
id: 'umap-feature-properties',
|
|
@@ -225,17 +225,27 @@ export class DataLayer {
|
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
showAtLoad() {
|
|
228
|
-
return this.autoLoaded
|
|
228
|
+
return this.autoLoaded && this.showAtZoom()
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
autoLoaded() {
|
|
232
|
-
if (
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
231
|
+
get autoLoaded() {
|
|
232
|
+
if (this._autoLoaded === undefined) {
|
|
233
|
+
if (this._umap.datalayersFromQueryString) {
|
|
234
|
+
const datalayerIds = this._umap.datalayersFromQueryString
|
|
235
|
+
this._autoLoaded = datalayerIds.includes(this.id.toString())
|
|
236
|
+
if (this.properties.old_id) {
|
|
237
|
+
this._autoLoaded =
|
|
238
|
+
this._autoLoaded || datalayerIds.includes(this.properties.old_id.toString())
|
|
239
|
+
}
|
|
240
|
+
} else {
|
|
241
|
+
this._autoLoaded = this.properties.displayOnLoad
|
|
242
|
+
}
|
|
237
243
|
}
|
|
238
|
-
return
|
|
244
|
+
return this._autoLoaded
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
set autoLoaded(value) {
|
|
248
|
+
this._autoLoaded = value
|
|
239
249
|
}
|
|
240
250
|
|
|
241
251
|
insertBefore(other) {
|
|
@@ -304,10 +314,9 @@ export class DataLayer {
|
|
|
304
314
|
|
|
305
315
|
fromGeoJSON(geojson, sync = true) {
|
|
306
316
|
if (!geojson) return []
|
|
307
|
-
const features = this.addData(geojson, sync)
|
|
308
317
|
this._needsFetch = false
|
|
318
|
+
const features = this.addData(geojson, sync)
|
|
309
319
|
this.onDataLoaded()
|
|
310
|
-
this.dataChanged()
|
|
311
320
|
return features
|
|
312
321
|
}
|
|
313
322
|
|
|
@@ -431,14 +440,27 @@ export class DataLayer {
|
|
|
431
440
|
this.layer.removeLayer(feature.ui)
|
|
432
441
|
}
|
|
433
442
|
|
|
434
|
-
addFeature(feature) {
|
|
443
|
+
addFeature(feature, sync = false) {
|
|
435
444
|
feature.connectToDataLayer(this)
|
|
436
445
|
this.features.add(feature)
|
|
437
446
|
this._umap.featuresIndex[feature.getSlug()] = feature
|
|
438
447
|
// TODO: quid for remote data ?
|
|
439
448
|
this.inferFields(feature)
|
|
440
|
-
|
|
449
|
+
try {
|
|
450
|
+
this.showFeature(feature)
|
|
451
|
+
} catch {
|
|
452
|
+
if (this._umap.editEnabled) {
|
|
453
|
+
Alert.error(translate('Skipping invalid geometry'))
|
|
454
|
+
}
|
|
455
|
+
console.error('Invalid geometry', feature)
|
|
456
|
+
this.removeFeature(feature, false)
|
|
457
|
+
return
|
|
458
|
+
}
|
|
441
459
|
this.dataChanged()
|
|
460
|
+
if (sync) {
|
|
461
|
+
feature.sync.upsert(feature.toGeoJSON(), null)
|
|
462
|
+
}
|
|
463
|
+
return feature
|
|
442
464
|
}
|
|
443
465
|
|
|
444
466
|
removeFeature(feature, sync) {
|
|
@@ -450,7 +472,9 @@ export class DataLayer {
|
|
|
450
472
|
const oldValue = feature.toGeoJSON()
|
|
451
473
|
feature.sync.delete(oldValue)
|
|
452
474
|
}
|
|
453
|
-
|
|
475
|
+
try {
|
|
476
|
+
this.hideFeature(feature)
|
|
477
|
+
} catch {}
|
|
454
478
|
delete this._umap.featuresIndex[feature.getSlug()]
|
|
455
479
|
feature.disconnectFromDataLayer(this)
|
|
456
480
|
this.features.del(feature)
|
|
@@ -601,16 +625,18 @@ export class DataLayer {
|
|
|
601
625
|
|
|
602
626
|
switch (geometry.type) {
|
|
603
627
|
case 'Point':
|
|
604
|
-
// FIXME: deal with MultiPoint
|
|
605
|
-
feature = new Point(this._umap, this, geojson, id)
|
|
606
|
-
break
|
|
607
628
|
case 'MultiPoint':
|
|
608
|
-
if (
|
|
629
|
+
if (
|
|
630
|
+
geometry.coordinates?.length === 1 &&
|
|
631
|
+
Array.isArray(geometry.coordinates?.[0])
|
|
632
|
+
) {
|
|
609
633
|
geojson.geometry.coordinates = geojson.geometry.coordinates[0]
|
|
610
|
-
|
|
611
|
-
} else if (this._umap.editEnabled) {
|
|
634
|
+
geojson.geometry.type = 'Point'
|
|
635
|
+
} else if (geometry.type === 'MultiPoint' && this._umap.editEnabled) {
|
|
612
636
|
Alert.error(translate('Cannot process MultiPoint'))
|
|
637
|
+
break
|
|
613
638
|
}
|
|
639
|
+
feature = new Point(this._umap, this, geojson, id)
|
|
614
640
|
break
|
|
615
641
|
case 'MultiLineString':
|
|
616
642
|
case 'LineString':
|
|
@@ -631,9 +657,7 @@ export class DataLayer {
|
|
|
631
657
|
}
|
|
632
658
|
}
|
|
633
659
|
if (feature && !feature.isEmpty()) {
|
|
634
|
-
this.addFeature(feature)
|
|
635
|
-
if (sync) feature.sync.upsert(feature.toGeoJSON(), null)
|
|
636
|
-
return feature
|
|
660
|
+
return this.addFeature(feature, sync)
|
|
637
661
|
}
|
|
638
662
|
}
|
|
639
663
|
|
|
@@ -735,7 +759,9 @@ export class DataLayer {
|
|
|
735
759
|
}
|
|
736
760
|
|
|
737
761
|
clear(sync = true) {
|
|
762
|
+
this._batch = true
|
|
738
763
|
this.features.forEach((feature) => feature.del(sync))
|
|
764
|
+
this._batch = false
|
|
739
765
|
this.dataChanged()
|
|
740
766
|
}
|
|
741
767
|
|
|
@@ -1197,7 +1223,7 @@ export class DataLayer {
|
|
|
1197
1223
|
// From now on, do not try to how/hide
|
|
1198
1224
|
// automatically this layer, as user
|
|
1199
1225
|
// has taken control on this.
|
|
1200
|
-
this.
|
|
1226
|
+
this.autoLoaded = false
|
|
1201
1227
|
let display = force
|
|
1202
1228
|
if (force === undefined) {
|
|
1203
1229
|
if (!this.isVisible()) display = true
|
|
@@ -59,6 +59,7 @@ export class FeatureManager extends Map {
|
|
|
59
59
|
if (this.has(feature.id)) {
|
|
60
60
|
console.error('Duplicate id', feature, this.get(feature.id))
|
|
61
61
|
feature.id = Utils.generateId()
|
|
62
|
+
feature.datalayer._found_duplicate_id = true
|
|
62
63
|
}
|
|
63
64
|
this.set(feature.id, feature)
|
|
64
65
|
}
|
|
@@ -6,7 +6,7 @@ export const LayerMixin = {
|
|
|
6
6
|
browsable: true,
|
|
7
7
|
|
|
8
8
|
onInit: function (leafletMap) {
|
|
9
|
-
|
|
9
|
+
leafletMap.on('zoomend', this.onZoomEnd, this)
|
|
10
10
|
},
|
|
11
11
|
|
|
12
12
|
onDelete: function (leafletMap) {
|
|
@@ -48,12 +48,12 @@ export const LayerMixin = {
|
|
|
48
48
|
|
|
49
49
|
onMoveEnd: function () {
|
|
50
50
|
if (this.datalayer.hasDynamicData() && this.datalayer.showAtZoom()) {
|
|
51
|
-
this.datalayer.
|
|
51
|
+
this.datalayer.fetchData()
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
|
|
55
55
|
onZoomEnd() {
|
|
56
|
-
if (this.datalayer.
|
|
56
|
+
if (!this.datalayer.autoLoaded) return
|
|
57
57
|
if (!this.datalayer.showAtZoom() && this.datalayer.isVisible()) {
|
|
58
58
|
this.datalayer.hide()
|
|
59
59
|
}
|
|
@@ -198,16 +198,12 @@ export const Cluster = FeatureGroup.extend({
|
|
|
198
198
|
this.on('mouseout', this.onMouseOut)
|
|
199
199
|
this.compute()
|
|
200
200
|
LayerMixin.onAdd.call(this, leafletMap)
|
|
201
|
-
leafletMap.on('moveend', this.onMoveEnd, this)
|
|
202
|
-
leafletMap.on('zoomend', this.onZoomEnd, this)
|
|
203
201
|
this.addClusters()
|
|
204
202
|
leafletMap.addLayer(this._group)
|
|
205
203
|
return FeatureGroup.prototype.onAdd.call(this, leafletMap)
|
|
206
204
|
},
|
|
207
205
|
|
|
208
206
|
onRemove: function (leafletMap) {
|
|
209
|
-
leafletMap.off('zoomend', this.onZoomEnd, this)
|
|
210
|
-
leafletMap.off('moveend', this.onMoveEnd, this)
|
|
211
207
|
this.off('click', this.onClick)
|
|
212
208
|
this.off('mouseover', this.onMouseOver)
|
|
213
209
|
this.off('mouseout', this.onMouseOut)
|
|
@@ -218,12 +214,18 @@ export const Cluster = FeatureGroup.extend({
|
|
|
218
214
|
},
|
|
219
215
|
|
|
220
216
|
onZoomEnd: function () {
|
|
217
|
+
LayerMixin.onZoomEnd.call(this)
|
|
221
218
|
this.removeClusters()
|
|
222
219
|
},
|
|
223
220
|
|
|
224
221
|
onMoveEnd: function () {
|
|
225
|
-
|
|
226
|
-
|
|
222
|
+
LayerMixin.onMoveEnd.call(this)
|
|
223
|
+
// In case of dynamic data, the LayerMixin.onMoveEnd
|
|
224
|
+
// call with fetch the data and then call the compute
|
|
225
|
+
if (!this.datalayer.hasDynamicData()) {
|
|
226
|
+
this.compute()
|
|
227
|
+
this.addClusters()
|
|
228
|
+
}
|
|
227
229
|
},
|
|
228
230
|
|
|
229
231
|
showCoverage(cluster) {
|
|
@@ -234,7 +236,9 @@ export const Cluster = FeatureGroup.extend({
|
|
|
234
236
|
},
|
|
235
237
|
|
|
236
238
|
hideCoverage() {
|
|
237
|
-
if (this._shownCoverage
|
|
239
|
+
if (this._shownCoverage && this._map) {
|
|
240
|
+
this._map.removeLayer(this._shownCoverage)
|
|
241
|
+
}
|
|
238
242
|
},
|
|
239
243
|
|
|
240
244
|
onMouseOver(event) {
|
|
@@ -259,7 +263,7 @@ export const Cluster = FeatureGroup.extend({
|
|
|
259
263
|
'properties.cluster.radius',
|
|
260
264
|
{
|
|
261
265
|
handler: 'Range',
|
|
262
|
-
min:
|
|
266
|
+
min: 10,
|
|
263
267
|
max: 200,
|
|
264
268
|
step: 10,
|
|
265
269
|
placeholder: translate('Clustering radius'),
|
|
@@ -1269,6 +1269,18 @@ export default class Umap {
|
|
|
1269
1269
|
this.drop.enable()
|
|
1270
1270
|
this.fire('edit:enabled')
|
|
1271
1271
|
this.initSyncEngine()
|
|
1272
|
+
this.datalayers.active().forEach((datalayer) => {
|
|
1273
|
+
if (!datalayer.isReadOnly() && datalayer._found_duplicate_id) {
|
|
1274
|
+
datalayer._found_duplicate_id = false
|
|
1275
|
+
// Force user to resave those datalayers
|
|
1276
|
+
datalayer.sync.update(
|
|
1277
|
+
'properties.name',
|
|
1278
|
+
datalayer.properties.name,
|
|
1279
|
+
datalayer.properties.name
|
|
1280
|
+
)
|
|
1281
|
+
Alert.info(translate('Layer has been migrated, please save the map.'))
|
|
1282
|
+
}
|
|
1283
|
+
})
|
|
1272
1284
|
}
|
|
1273
1285
|
|
|
1274
1286
|
disableEdit() {
|
umap/static/umap/locale/de.js
CHANGED
|
@@ -518,8 +518,8 @@ const locale = {
|
|
|
518
518
|
"Edit map default view": "Standardansicht der Karte bearbeiten",
|
|
519
519
|
"Use current center and zoom": "Aktuelle Position und Zoomstufe speichern",
|
|
520
520
|
"Layer permalink": "Permalink für Ebene",
|
|
521
|
-
"Back to home": "
|
|
522
|
-
"Home logo": "
|
|
521
|
+
"Back to home": "Zurück zur Startseite",
|
|
522
|
+
"Home logo": "Logo der Startseite",
|
|
523
523
|
"Add this geometry to my map": "Add this geometry to my map",
|
|
524
524
|
"Add this place to my map": "Add this place to my map",
|
|
525
525
|
"Cancel last edit": "Letzte Bearbeitung abbrechen",
|
|
@@ -538,7 +538,7 @@ const locale = {
|
|
|
538
538
|
"Cannot save layer, please try again in a few minutes.": "Ebene konnte nicht gespeichert werden. Bitte versuche es in ein paar Minuten erneut.",
|
|
539
539
|
"Activate collaborative live editing on this map. Other users must reload the map after changing this setting.": "Activate collaborative live editing on this map. Other users must reload the map after changing this setting.",
|
|
540
540
|
"More help resources": "More help resources",
|
|
541
|
-
"This map is a template": "
|
|
541
|
+
"This map is a template": "Die Karte ist eine Vorlage",
|
|
542
542
|
"Add text along path": "Add text along path",
|
|
543
543
|
"Text color": "Textfarbe",
|
|
544
544
|
"Text offset": "Text offset",
|
|
@@ -555,67 +555,67 @@ const locale = {
|
|
|
555
555
|
"From community": "Von der Community",
|
|
556
556
|
"You must select a template.": "Du musst eine Vorlage auswählen.",
|
|
557
557
|
"Line decoration": "Line decoration",
|
|
558
|
-
"Reuse this template": "
|
|
558
|
+
"Reuse this template": "Vorlage wiederverwenden",
|
|
559
559
|
"Create a new map using this template": "Erstelle eine neue Karte aus dieser Vorlage.",
|
|
560
560
|
"Save template": "Vorlage speichern",
|
|
561
561
|
"Load template": "Vorlage laden",
|
|
562
|
-
"Loading a template will apply predefined styles and settings to your map": "
|
|
563
|
-
"Load template with data": "
|
|
564
|
-
"You have no registered template yet. You can add one by creating a new map and flagging it as \"template\".": "
|
|
565
|
-
"There is no recommended template yet. Recommended templates are the ones starred by uMap administrators.": "
|
|
566
|
-
"There is no public template yet.": "
|
|
567
|
-
"Explore": "
|
|
562
|
+
"Loading a template will apply predefined styles and settings to your map": "Eine Vorlage zu laden wird die vordefinierten Stiele und Einstellungen auf die Karte anwenden.",
|
|
563
|
+
"Load template with data": "Vorlagen mit Daten laden",
|
|
564
|
+
"You have no registered template yet. You can add one by creating a new map and flagging it as \"template\".": "Du hast noch keine Vorlage eingetragen. Füge eine hinzu, indem du eine neue Karte erstellst und als \"Vorlage\" markierst.",
|
|
565
|
+
"There is no recommended template yet. Recommended templates are the ones starred by uMap administrators.": "Es gibt noch keine empfohlene Vorlage. Empfohlene Vorlagen werden von uMap Adminstratoren markiert.",
|
|
566
|
+
"There is no public template yet.": "Es gibt noch keine öffentliche Vorlage",
|
|
567
|
+
"Explore": "Erkunden",
|
|
568
568
|
"Import data from public open data portals": "Import data from public open data portals",
|
|
569
569
|
"Choose a portal": "Choose a portal",
|
|
570
|
-
"Limit results to current map view": "
|
|
571
|
-
"Please choose an instance first.": "
|
|
570
|
+
"Limit results to current map view": "Treffer auf aktuelle Ansicht einschränken",
|
|
571
|
+
"Please choose an instance first.": "Bitte zuerst eine Instanz wählen",
|
|
572
572
|
"No geo column found: must be either `lat(itude)` and `lon(gitude)` or `geom(etry)`.": "No geo column found: must be either `lat(itude)` and `lon(gitude)` or `geom(etry)`.",
|
|
573
|
-
"Add a new field": "
|
|
574
|
-
"Are you sure you want to delete this field on all the features?": "
|
|
575
|
-
"Please enter the new name of this field": "
|
|
576
|
-
"Cannot process MultiPoint": "
|
|
577
|
-
"Manage Fields": "
|
|
578
|
-
"Rename this field": "
|
|
579
|
-
"Delete this field": "
|
|
580
|
-
"Double click to edit the name": "
|
|
581
|
-
"Print map": "
|
|
582
|
-
"Choose a format": "
|
|
583
|
-
"Scale map": "
|
|
584
|
-
"portrait": "
|
|
585
|
-
"landscape": "
|
|
586
|
-
"Print": "
|
|
587
|
-
"Preparing the print…": "
|
|
588
|
-
"Large Circle": "
|
|
589
|
-
"Icon size": "Icon
|
|
590
|
-
"Will only affect raw and large circle icons.": "
|
|
591
|
-
"Route": "
|
|
592
|
-
"Display the print control": "
|
|
573
|
+
"Add a new field": "Neues Feld hinzufügen",
|
|
574
|
+
"Are you sure you want to delete this field on all the features?": "Bist du dir sicher dieses Feld in allen Einstellungen zu löschen?",
|
|
575
|
+
"Please enter the new name of this field": "Bitte den neuen Namen des Feldes eingeben",
|
|
576
|
+
"Cannot process MultiPoint": "Multipoint kann nicht verarbeitet werden",
|
|
577
|
+
"Manage Fields": "Felder bearbeiten",
|
|
578
|
+
"Rename this field": "Feld umbennen",
|
|
579
|
+
"Delete this field": "Feld löschen",
|
|
580
|
+
"Double click to edit the name": "Doppel-Klick um den Namen zu ändern",
|
|
581
|
+
"Print map": "Karte drucken",
|
|
582
|
+
"Choose a format": "Format wählen",
|
|
583
|
+
"Scale map": "Karte skalieren",
|
|
584
|
+
"portrait": "Langformat",
|
|
585
|
+
"landscape": "Querformat",
|
|
586
|
+
"Print": "Drucken",
|
|
587
|
+
"Preparing the print…": "Druck vorbereiten...",
|
|
588
|
+
"Large Circle": "Großer Kreis",
|
|
589
|
+
"Icon size": "Icon Größe",
|
|
590
|
+
"Will only affect raw and large circle icons.": "Das wird nur ursprüngliche- und große Kreisicons beinflussen.",
|
|
591
|
+
"Route": "Strecke",
|
|
592
|
+
"Display the print control": "Druckeinstellungen anzeigen",
|
|
593
593
|
"Compute isochrone from here": "Compute isochrone from here",
|
|
594
|
-
"Route settings": "
|
|
594
|
+
"Route settings": "Strecken Einstellungen",
|
|
595
595
|
"Transform to regular line": "Transform to regular line",
|
|
596
|
-
"Transform to route": "
|
|
597
|
-
"Restore route": "
|
|
598
|
-
"
|
|
599
|
-
"Profile": "Profile",
|
|
596
|
+
"Transform to route": "In Strecke umwandeln",
|
|
597
|
+
"Restore route": "Strecke wiederherstellen",
|
|
598
|
+
"Profile": "Profil",
|
|
600
599
|
"Compute elevations": "Compute elevations",
|
|
601
|
-
"Route preference": "
|
|
602
|
-
"Compute route": "
|
|
603
|
-
"Walking": "
|
|
604
|
-
"Hiking": "
|
|
605
|
-
"By car": "
|
|
606
|
-
"Cycling": "
|
|
607
|
-
"Wheelchair": "
|
|
608
|
-
"Recommended": "
|
|
609
|
-
"Fastest": "
|
|
610
|
-
"Shortest": "
|
|
611
|
-
"Max time (in minutes)": "
|
|
612
|
-
"Number of lines": "
|
|
613
|
-
"Distance:": "
|
|
614
|
-
"Gain:": "
|
|
615
|
-
"Loss:": "
|
|
616
|
-
"Altitude:": "
|
|
617
|
-
"Right-click to edit": "
|
|
618
|
-
"Draw along routes": "Draw along routes"
|
|
600
|
+
"Route preference": "Streckenvoreinstellung",
|
|
601
|
+
"Compute route": "Strecke berechnen",
|
|
602
|
+
"Walking": "Gehen",
|
|
603
|
+
"Hiking": "Wandern",
|
|
604
|
+
"By car": "mit Auto",
|
|
605
|
+
"Cycling": "Fahrradfahren",
|
|
606
|
+
"Wheelchair": "Rollstuhl",
|
|
607
|
+
"Recommended": "Empfohlen",
|
|
608
|
+
"Fastest": "Am Schnellsten",
|
|
609
|
+
"Shortest": "Am Kürzesten",
|
|
610
|
+
"Max time (in minutes)": "Maximale Zeit (in Minuten)",
|
|
611
|
+
"Number of lines": "Zeilennummern",
|
|
612
|
+
"Distance:": "Entfernung:",
|
|
613
|
+
"Gain:": "Anstieg:",
|
|
614
|
+
"Loss:": "Abstieg:",
|
|
615
|
+
"Altitude:": "Höhe:",
|
|
616
|
+
"Right-click to edit": "Rechts-Klick zum editieren",
|
|
617
|
+
"Draw along routes": "Draw along routes",
|
|
618
|
+
"Skipping invalid geometry": "Skipping invalid geometry"
|
|
619
619
|
}
|
|
620
620
|
L.registerLocale("de", locale)
|
|
621
621
|
L.setLocale("de")
|
umap/static/umap/locale/de.json
CHANGED
|
@@ -518,8 +518,8 @@
|
|
|
518
518
|
"Edit map default view": "Standardansicht der Karte bearbeiten",
|
|
519
519
|
"Use current center and zoom": "Aktuelle Position und Zoomstufe speichern",
|
|
520
520
|
"Layer permalink": "Permalink für Ebene",
|
|
521
|
-
"Back to home": "
|
|
522
|
-
"Home logo": "
|
|
521
|
+
"Back to home": "Zurück zur Startseite",
|
|
522
|
+
"Home logo": "Logo der Startseite",
|
|
523
523
|
"Add this geometry to my map": "Add this geometry to my map",
|
|
524
524
|
"Add this place to my map": "Add this place to my map",
|
|
525
525
|
"Cancel last edit": "Letzte Bearbeitung abbrechen",
|
|
@@ -538,7 +538,7 @@
|
|
|
538
538
|
"Cannot save layer, please try again in a few minutes.": "Ebene konnte nicht gespeichert werden. Bitte versuche es in ein paar Minuten erneut.",
|
|
539
539
|
"Activate collaborative live editing on this map. Other users must reload the map after changing this setting.": "Activate collaborative live editing on this map. Other users must reload the map after changing this setting.",
|
|
540
540
|
"More help resources": "More help resources",
|
|
541
|
-
"This map is a template": "
|
|
541
|
+
"This map is a template": "Die Karte ist eine Vorlage",
|
|
542
542
|
"Add text along path": "Add text along path",
|
|
543
543
|
"Text color": "Textfarbe",
|
|
544
544
|
"Text offset": "Text offset",
|
|
@@ -555,65 +555,65 @@
|
|
|
555
555
|
"From community": "Von der Community",
|
|
556
556
|
"You must select a template.": "Du musst eine Vorlage auswählen.",
|
|
557
557
|
"Line decoration": "Line decoration",
|
|
558
|
-
"Reuse this template": "
|
|
558
|
+
"Reuse this template": "Vorlage wiederverwenden",
|
|
559
559
|
"Create a new map using this template": "Erstelle eine neue Karte aus dieser Vorlage.",
|
|
560
560
|
"Save template": "Vorlage speichern",
|
|
561
561
|
"Load template": "Vorlage laden",
|
|
562
|
-
"Loading a template will apply predefined styles and settings to your map": "
|
|
563
|
-
"Load template with data": "
|
|
564
|
-
"You have no registered template yet. You can add one by creating a new map and flagging it as \"template\".": "
|
|
565
|
-
"There is no recommended template yet. Recommended templates are the ones starred by uMap administrators.": "
|
|
566
|
-
"There is no public template yet.": "
|
|
567
|
-
"Explore": "
|
|
562
|
+
"Loading a template will apply predefined styles and settings to your map": "Eine Vorlage zu laden wird die vordefinierten Stiele und Einstellungen auf die Karte anwenden.",
|
|
563
|
+
"Load template with data": "Vorlagen mit Daten laden",
|
|
564
|
+
"You have no registered template yet. You can add one by creating a new map and flagging it as \"template\".": "Du hast noch keine Vorlage eingetragen. Füge eine hinzu, indem du eine neue Karte erstellst und als \"Vorlage\" markierst.",
|
|
565
|
+
"There is no recommended template yet. Recommended templates are the ones starred by uMap administrators.": "Es gibt noch keine empfohlene Vorlage. Empfohlene Vorlagen werden von uMap Adminstratoren markiert.",
|
|
566
|
+
"There is no public template yet.": "Es gibt noch keine öffentliche Vorlage",
|
|
567
|
+
"Explore": "Erkunden",
|
|
568
568
|
"Import data from public open data portals": "Import data from public open data portals",
|
|
569
569
|
"Choose a portal": "Choose a portal",
|
|
570
|
-
"Limit results to current map view": "
|
|
571
|
-
"Please choose an instance first.": "
|
|
570
|
+
"Limit results to current map view": "Treffer auf aktuelle Ansicht einschränken",
|
|
571
|
+
"Please choose an instance first.": "Bitte zuerst eine Instanz wählen",
|
|
572
572
|
"No geo column found: must be either `lat(itude)` and `lon(gitude)` or `geom(etry)`.": "No geo column found: must be either `lat(itude)` and `lon(gitude)` or `geom(etry)`.",
|
|
573
|
-
"Add a new field": "
|
|
574
|
-
"Are you sure you want to delete this field on all the features?": "
|
|
575
|
-
"Please enter the new name of this field": "
|
|
576
|
-
"Cannot process MultiPoint": "
|
|
577
|
-
"Manage Fields": "
|
|
578
|
-
"Rename this field": "
|
|
579
|
-
"Delete this field": "
|
|
580
|
-
"Double click to edit the name": "
|
|
581
|
-
"Print map": "
|
|
582
|
-
"Choose a format": "
|
|
583
|
-
"Scale map": "
|
|
584
|
-
"portrait": "
|
|
585
|
-
"landscape": "
|
|
586
|
-
"Print": "
|
|
587
|
-
"Preparing the print…": "
|
|
588
|
-
"Large Circle": "
|
|
589
|
-
"Icon size": "Icon
|
|
590
|
-
"Will only affect raw and large circle icons.": "
|
|
591
|
-
"Route": "
|
|
592
|
-
"Display the print control": "
|
|
573
|
+
"Add a new field": "Neues Feld hinzufügen",
|
|
574
|
+
"Are you sure you want to delete this field on all the features?": "Bist du dir sicher dieses Feld in allen Einstellungen zu löschen?",
|
|
575
|
+
"Please enter the new name of this field": "Bitte den neuen Namen des Feldes eingeben",
|
|
576
|
+
"Cannot process MultiPoint": "Multipoint kann nicht verarbeitet werden",
|
|
577
|
+
"Manage Fields": "Felder bearbeiten",
|
|
578
|
+
"Rename this field": "Feld umbennen",
|
|
579
|
+
"Delete this field": "Feld löschen",
|
|
580
|
+
"Double click to edit the name": "Doppel-Klick um den Namen zu ändern",
|
|
581
|
+
"Print map": "Karte drucken",
|
|
582
|
+
"Choose a format": "Format wählen",
|
|
583
|
+
"Scale map": "Karte skalieren",
|
|
584
|
+
"portrait": "Langformat",
|
|
585
|
+
"landscape": "Querformat",
|
|
586
|
+
"Print": "Drucken",
|
|
587
|
+
"Preparing the print…": "Druck vorbereiten...",
|
|
588
|
+
"Large Circle": "Großer Kreis",
|
|
589
|
+
"Icon size": "Icon Größe",
|
|
590
|
+
"Will only affect raw and large circle icons.": "Das wird nur ursprüngliche- und große Kreisicons beinflussen.",
|
|
591
|
+
"Route": "Strecke",
|
|
592
|
+
"Display the print control": "Druckeinstellungen anzeigen",
|
|
593
593
|
"Compute isochrone from here": "Compute isochrone from here",
|
|
594
|
-
"Route settings": "
|
|
594
|
+
"Route settings": "Strecken Einstellungen",
|
|
595
595
|
"Transform to regular line": "Transform to regular line",
|
|
596
|
-
"Transform to route": "
|
|
597
|
-
"Restore route": "
|
|
598
|
-
"
|
|
599
|
-
"Profile": "Profile",
|
|
596
|
+
"Transform to route": "In Strecke umwandeln",
|
|
597
|
+
"Restore route": "Strecke wiederherstellen",
|
|
598
|
+
"Profile": "Profil",
|
|
600
599
|
"Compute elevations": "Compute elevations",
|
|
601
|
-
"Route preference": "
|
|
602
|
-
"Compute route": "
|
|
603
|
-
"Walking": "
|
|
604
|
-
"Hiking": "
|
|
605
|
-
"By car": "
|
|
606
|
-
"Cycling": "
|
|
607
|
-
"Wheelchair": "
|
|
608
|
-
"Recommended": "
|
|
609
|
-
"Fastest": "
|
|
610
|
-
"Shortest": "
|
|
611
|
-
"Max time (in minutes)": "
|
|
612
|
-
"Number of lines": "
|
|
613
|
-
"Distance:": "
|
|
614
|
-
"Gain:": "
|
|
615
|
-
"Loss:": "
|
|
616
|
-
"Altitude:": "
|
|
617
|
-
"Right-click to edit": "
|
|
618
|
-
"Draw along routes": "Draw along routes"
|
|
600
|
+
"Route preference": "Streckenvoreinstellung",
|
|
601
|
+
"Compute route": "Strecke berechnen",
|
|
602
|
+
"Walking": "Gehen",
|
|
603
|
+
"Hiking": "Wandern",
|
|
604
|
+
"By car": "mit Auto",
|
|
605
|
+
"Cycling": "Fahrradfahren",
|
|
606
|
+
"Wheelchair": "Rollstuhl",
|
|
607
|
+
"Recommended": "Empfohlen",
|
|
608
|
+
"Fastest": "Am Schnellsten",
|
|
609
|
+
"Shortest": "Am Kürzesten",
|
|
610
|
+
"Max time (in minutes)": "Maximale Zeit (in Minuten)",
|
|
611
|
+
"Number of lines": "Zeilennummern",
|
|
612
|
+
"Distance:": "Entfernung:",
|
|
613
|
+
"Gain:": "Anstieg:",
|
|
614
|
+
"Loss:": "Abstieg:",
|
|
615
|
+
"Altitude:": "Höhe:",
|
|
616
|
+
"Right-click to edit": "Rechts-Klick zum editieren",
|
|
617
|
+
"Draw along routes": "Draw along routes",
|
|
618
|
+
"Skipping invalid geometry": "Skipping invalid geometry"
|
|
619
619
|
}
|
umap/static/umap/locale/en.js
CHANGED
|
@@ -614,7 +614,8 @@ const locale = {
|
|
|
614
614
|
"Loss:": "Loss:",
|
|
615
615
|
"Altitude:": "Altitude:",
|
|
616
616
|
"Right-click to edit": "Right-click to edit",
|
|
617
|
-
"Draw along routes": "Draw along routes"
|
|
617
|
+
"Draw along routes": "Draw along routes",
|
|
618
|
+
"Skipping invalid geometry": "Skipping invalid geometry"
|
|
618
619
|
}
|
|
619
620
|
L.registerLocale("en", locale)
|
|
620
621
|
L.setLocale("en")
|
umap/static/umap/locale/en.json
CHANGED
|
@@ -614,5 +614,6 @@
|
|
|
614
614
|
"Loss:": "Loss:",
|
|
615
615
|
"Altitude:": "Altitude:",
|
|
616
616
|
"Right-click to edit": "Right-click to edit",
|
|
617
|
-
"Draw along routes": "Draw along routes"
|
|
617
|
+
"Draw along routes": "Draw along routes",
|
|
618
|
+
"Skipping invalid geometry": "Skipping invalid geometry"
|
|
618
619
|
}
|
umap/static/umap/locale/fr.js
CHANGED
|
@@ -614,7 +614,8 @@ const locale = {
|
|
|
614
614
|
"Loss:": "Dénivelé négatif :",
|
|
615
615
|
"Altitude:": "Altitude :",
|
|
616
616
|
"Right-click to edit": "Clic droit pour éditer",
|
|
617
|
-
"Draw along routes": "Dessiner en suivant les routes"
|
|
617
|
+
"Draw along routes": "Dessiner en suivant les routes",
|
|
618
|
+
"Skipping invalid geometry": "Géométrie invalide ignorée"
|
|
618
619
|
}
|
|
619
620
|
L.registerLocale("fr", locale)
|
|
620
621
|
L.setLocale("fr")
|
umap/static/umap/locale/fr.json
CHANGED
|
@@ -614,5 +614,6 @@
|
|
|
614
614
|
"Loss:": "Dénivelé négatif :",
|
|
615
615
|
"Altitude:": "Altitude :",
|
|
616
616
|
"Right-click to edit": "Clic droit pour éditer",
|
|
617
|
-
"Draw along routes": "Dessiner en suivant les routes"
|
|
617
|
+
"Draw along routes": "Dessiner en suivant les routes",
|
|
618
|
+
"Skipping invalid geometry": "Géométrie invalide ignorée"
|
|
618
619
|
}
|
umap/static/umap/locale/zh_TW.js
CHANGED
|
@@ -595,7 +595,6 @@ const locale = {
|
|
|
595
595
|
"Transform to regular line": "轉換為普通線條",
|
|
596
596
|
"Transform to route": "轉換為路線",
|
|
597
597
|
"Restore route": "恢復路線",
|
|
598
|
-
"Compute elevation": "計畫等高線",
|
|
599
598
|
"Profile": "設定檔案",
|
|
600
599
|
"Compute elevations": "計算等高線。",
|
|
601
600
|
"Route preference": "路線偏好設定",
|
|
@@ -615,7 +614,8 @@ const locale = {
|
|
|
615
614
|
"Loss:": "減少:",
|
|
616
615
|
"Altitude:": "海拔:",
|
|
617
616
|
"Right-click to edit": "按右鍵來編輯",
|
|
618
|
-
"Draw along routes": "沿著路線繪製"
|
|
617
|
+
"Draw along routes": "沿著路線繪製",
|
|
618
|
+
"Skipping invalid geometry": "略過無效的地理空間"
|
|
619
619
|
}
|
|
620
620
|
L.registerLocale("zh_TW", locale)
|
|
621
621
|
L.setLocale("zh_TW")
|
|
@@ -595,7 +595,6 @@
|
|
|
595
595
|
"Transform to regular line": "轉換為普通線條",
|
|
596
596
|
"Transform to route": "轉換為路線",
|
|
597
597
|
"Restore route": "恢復路線",
|
|
598
|
-
"Compute elevation": "計畫等高線",
|
|
599
598
|
"Profile": "設定檔案",
|
|
600
599
|
"Compute elevations": "計算等高線。",
|
|
601
600
|
"Route preference": "路線偏好設定",
|
|
@@ -615,5 +614,6 @@
|
|
|
615
614
|
"Loss:": "減少:",
|
|
616
615
|
"Altitude:": "海拔:",
|
|
617
616
|
"Right-click to edit": "按右鍵來編輯",
|
|
618
|
-
"Draw along routes": "沿著路線繪製"
|
|
617
|
+
"Draw along routes": "沿著路線繪製",
|
|
618
|
+
"Skipping invalid geometry": "略過無效的地理空間"
|
|
619
619
|
}
|
|
@@ -100,3 +100,64 @@ def test_can_change_datalayer_of_marker_in_cluster(
|
|
|
100
100
|
page.locator(".umap-div-icon").click(modifiers=["Shift"])
|
|
101
101
|
page.get_by_role("combobox").select_option(str(datalayer.pk))
|
|
102
102
|
expect(page.locator(".umap-ball-icon")).to_have_count(1)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def test_can_combine_cluster_with_remote_data_and_fromZoom(
|
|
106
|
+
page, live_server, tilelayer, map
|
|
107
|
+
):
|
|
108
|
+
settings = {
|
|
109
|
+
"fromZoom": "7",
|
|
110
|
+
"type": "Cluster",
|
|
111
|
+
"showLabel": True,
|
|
112
|
+
"remoteData": {
|
|
113
|
+
"url": "https://remote.org/data.json",
|
|
114
|
+
"format": "geojson",
|
|
115
|
+
"dynamic": True,
|
|
116
|
+
},
|
|
117
|
+
}
|
|
118
|
+
DataLayerFactory(map=map, settings=settings)
|
|
119
|
+
data = [
|
|
120
|
+
{
|
|
121
|
+
"type": "FeatureCollection",
|
|
122
|
+
"features": [
|
|
123
|
+
{
|
|
124
|
+
"type": "Feature",
|
|
125
|
+
"properties": {"name": "Point 2"},
|
|
126
|
+
"geometry": {
|
|
127
|
+
"type": "Point",
|
|
128
|
+
"coordinates": [4.3375, 11.2707],
|
|
129
|
+
},
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"type": "FeatureCollection",
|
|
135
|
+
"features": [
|
|
136
|
+
{
|
|
137
|
+
"type": "Feature",
|
|
138
|
+
"properties": {"name": "Point 1"},
|
|
139
|
+
"geometry": {
|
|
140
|
+
"type": "Point",
|
|
141
|
+
"coordinates": [4.3375, 12.2707],
|
|
142
|
+
},
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
]
|
|
147
|
+
|
|
148
|
+
def handle(route):
|
|
149
|
+
route.fulfill(json=data.pop())
|
|
150
|
+
|
|
151
|
+
page.route("https://remote.org/data.json", handle)
|
|
152
|
+
page.goto(f"{live_server.url}{map.get_absolute_url()}#7/12.271/4.338")
|
|
153
|
+
expect(page.locator(".umap-div-icon")).to_have_count(1)
|
|
154
|
+
expect(page.get_by_role("tooltip", name="Point 1")).to_be_visible()
|
|
155
|
+
page.get_by_role("button", name="Zoom out").click()
|
|
156
|
+
|
|
157
|
+
# We are above fromZoom
|
|
158
|
+
expect(page.locator(".umap-div-icon")).to_have_count(0)
|
|
159
|
+
|
|
160
|
+
page.get_by_role("button", name="Zoom in").click()
|
|
161
|
+
|
|
162
|
+
expect(page.locator(".umap-div-icon")).to_have_count(1)
|
|
163
|
+
expect(page.get_by_role("tooltip", name="Point 2")).to_be_visible()
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import json
|
|
2
1
|
import re
|
|
3
2
|
|
|
4
3
|
import pytest
|
|
5
|
-
from django.core.files.base import ContentFile
|
|
6
4
|
from playwright.sync_api import expect
|
|
7
5
|
|
|
8
6
|
from ..base import DataLayerFactory
|
|
@@ -10,17 +8,9 @@ from ..base import DataLayerFactory
|
|
|
10
8
|
pytestmark = pytest.mark.django_db
|
|
11
9
|
|
|
12
10
|
|
|
13
|
-
def set_options(datalayer, **options):
|
|
14
|
-
# For now we need to change both the DB and the FS…
|
|
15
|
-
datalayer.settings.update(options)
|
|
16
|
-
data = json.load(datalayer.geojson.file)
|
|
17
|
-
data["_umap_options"].update(**options)
|
|
18
|
-
datalayer.geojson = ContentFile(json.dumps(data), "foo.json")
|
|
19
|
-
datalayer.save()
|
|
20
|
-
|
|
21
|
-
|
|
22
11
|
def test_honour_displayOnLoad_false(map, live_server, datalayer, page):
|
|
23
|
-
|
|
12
|
+
datalayer.settings.update(displayOnLoad=False)
|
|
13
|
+
datalayer.save()
|
|
24
14
|
page.goto(f"{live_server.url}{map.get_absolute_url()}?onLoadPanel=datalayers")
|
|
25
15
|
expect(page.locator(".leaflet-marker-icon")).to_be_hidden()
|
|
26
16
|
layers = page.locator(".umap-browser .datalayer")
|
|
@@ -30,14 +20,17 @@ def test_honour_displayOnLoad_false(map, live_server, datalayer, page):
|
|
|
30
20
|
expect(layers_off).to_have_count(1)
|
|
31
21
|
page.get_by_role("button", name="Open browser").click()
|
|
32
22
|
page.get_by_label("Zoom in").click()
|
|
23
|
+
page.wait_for_timeout(300)
|
|
33
24
|
expect(markers).to_be_hidden()
|
|
34
|
-
page.
|
|
25
|
+
with page.expect_response(re.compile(rf".*/datalayer/{map.pk}/{datalayer.pk}/.*")):
|
|
26
|
+
page.get_by_title("Show/hide layer").click()
|
|
35
27
|
expect(layers_off).to_have_count(0)
|
|
36
28
|
expect(markers).to_be_visible()
|
|
37
29
|
|
|
38
30
|
|
|
39
31
|
def test_should_honour_fromZoom(live_server, map, datalayer, page):
|
|
40
|
-
|
|
32
|
+
datalayer.settings.update(displayOnLoad=True, fromZoom=6)
|
|
33
|
+
datalayer.save()
|
|
41
34
|
page.goto(f"{live_server.url}{map.get_absolute_url()}#5/48.55/14.68")
|
|
42
35
|
markers = page.locator(".leaflet-marker-icon")
|
|
43
36
|
expect(markers).to_be_hidden()
|
|
@@ -55,7 +48,8 @@ def test_should_honour_fromZoom(live_server, map, datalayer, page):
|
|
|
55
48
|
|
|
56
49
|
|
|
57
50
|
def test_should_honour_toZoom(live_server, map, datalayer, page, new_page):
|
|
58
|
-
|
|
51
|
+
datalayer.settings.update(displayOnLoad=True, toZoom=6)
|
|
52
|
+
datalayer.save()
|
|
59
53
|
# Loading at zoom 7 should not show the marker
|
|
60
54
|
page.goto(f"{live_server.url}{map.get_absolute_url()}#7/48.55/14.68")
|
|
61
55
|
markers = page.locator(".leaflet-marker-icon")
|
|
@@ -123,7 +117,6 @@ def test_datalayers_in_query_string(live_server, datalayer, map, page):
|
|
|
123
117
|
map.settings["properties"]["onLoadPanel"] = "datalayers"
|
|
124
118
|
map.save()
|
|
125
119
|
with_old_id = DataLayerFactory(old_id=134, map=map, name="with old id")
|
|
126
|
-
set_options(with_old_id, name="with old id")
|
|
127
120
|
visible = page.locator(".umap-browser .datalayer:not(.off) .datalayer-name")
|
|
128
121
|
hidden = page.locator(".umap-browser .datalayer.off .datalayer-name")
|
|
129
122
|
page.goto(f"{live_server.url}{map.get_absolute_url()}")
|
|
@@ -33,6 +33,17 @@ def bootstrap(map, live_server):
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
def test_can_edit_on_shift_click(live_server, openmap, page, datalayer):
|
|
36
|
+
page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit")
|
|
37
|
+
page.locator(".leaflet-marker-icon").click(modifiers=["Shift"])
|
|
38
|
+
expect(page.get_by_text("Feature properties")).to_be_visible()
|
|
39
|
+
# Help button for text
|
|
40
|
+
page.locator(".umap-field-description").get_by_role(
|
|
41
|
+
"button", name="description"
|
|
42
|
+
).click()
|
|
43
|
+
expect(page.locator("dialog").get_by_role("heading", name="Help")).to_be_visible()
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def test_can_edit_on_ctrl_shift_click(live_server, openmap, page, datalayer):
|
|
36
47
|
modifier = "Meta" if platform.system() == "Darwin" else "Control"
|
|
37
48
|
page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit")
|
|
38
49
|
page.locator(".leaflet-marker-icon").click(modifiers=[modifier, "Shift"])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
umap/__init__.py,sha256=
|
|
1
|
+
umap/__init__.py,sha256=dXcxAQVoifk8mnJp_WE7_cuoi0cl0OiyMlYF2X9SLWI,18
|
|
2
2
|
umap/admin.py,sha256=YlK4CgEWb2eFYRKiklsKouxeiQ8z_b-H2Fv2XCaiGFQ,3014
|
|
3
3
|
umap/apps.py,sha256=5ssKqPUuNJlapaBmr4LY_HDb7J1NFCT3wzythxQOOfs,109
|
|
4
4
|
umap/asgi.py,sha256=sJkGqDLgMoPkq2nMRyRE_Hz3ZLJm1X5lgXiQJu6rYt0,660
|
|
@@ -31,8 +31,8 @@ umap/locale/cs_CZ/LC_MESSAGES/django.mo,sha256=3rvUUEYFDqA4pNXEqv9E1qkmiXmlrT3Ac
|
|
|
31
31
|
umap/locale/cs_CZ/LC_MESSAGES/django.po,sha256=IFiiN_krWV-hNxb_cymO-InjLijST0-RcqHDGk8MUfc,23025
|
|
32
32
|
umap/locale/da/LC_MESSAGES/django.mo,sha256=ZjvoMeBervGEeln7yBqNSx1yb98ovwtag9Ox7hPmg1w,15358
|
|
33
33
|
umap/locale/da/LC_MESSAGES/django.po,sha256=l3k3LwGQrESZc8XWHa2If5EoTuLzy1MvedZoAKusu0M,23101
|
|
34
|
-
umap/locale/de/LC_MESSAGES/django.mo,sha256=
|
|
35
|
-
umap/locale/de/LC_MESSAGES/django.po,sha256=
|
|
34
|
+
umap/locale/de/LC_MESSAGES/django.mo,sha256=iVCWLUbKxfhLgj2MThO81-rZoieHC-Gog7P-BfY_y4g,16081
|
|
35
|
+
umap/locale/de/LC_MESSAGES/django.po,sha256=bT6rkkt76f5xMuqi2TBIgoZK9cLTYqX684ra1swc6VE,24012
|
|
36
36
|
umap/locale/el/LC_MESSAGES/django.mo,sha256=kH6JnkfGmno6c9GVSI6ysnge98UGbN7XyT2IkaXK9c4,21521
|
|
37
37
|
umap/locale/el/LC_MESSAGES/django.po,sha256=kqZoM2vVNiwROF_VtB3Rvokb_G6xG1hplEPrDcISCLo,29353
|
|
38
38
|
umap/locale/en/LC_MESSAGES/django.mo,sha256=UXCQbz2AxBvh-IQ7bGgjoBnijo8h9DfE9107A-2Mgkk,337
|
|
@@ -238,7 +238,7 @@ umap/static/umap/js/components/modal.js,sha256=ugaibc2n5Pftocs1crN6zaPRJztSQm1at
|
|
|
238
238
|
umap/static/umap/js/components/alerts/alert.css,sha256=fSmbDDjXjEYLfgnEAVDhyqWiBOUy2YhVRy0_den-7Dk,4930
|
|
239
239
|
umap/static/umap/js/components/alerts/alert.js,sha256=_BcG9WluOkJTj_v795c0PIXvv5EZQs0uO5-rUhcwEco,4482
|
|
240
240
|
umap/static/umap/js/modules/autocomplete.js,sha256=CLw4KP_Mmf5s55OWimK3Xw7GkwDLtuCqeEI2WqPSsOU,8729
|
|
241
|
-
umap/static/umap/js/modules/browser.js,sha256=
|
|
241
|
+
umap/static/umap/js/modules/browser.js,sha256=9uug5dbf0HCsg90xUAbva-_dwW_6znFFDUbaPDoUflc,9747
|
|
242
242
|
umap/static/umap/js/modules/caption.js,sha256=glOSK2HIENR-tPO4iDWOvPRX8xgeWloKAbntRpYH1qc,5813
|
|
243
243
|
umap/static/umap/js/modules/dompurify.js,sha256=SOmoM-pTgYCKCKXFo6-znemWPLiLsFgR4lxM_moWaA8,328
|
|
244
244
|
umap/static/umap/js/modules/drop.js,sha256=aHuz_sDgWAqDEH49OWNhnnyFvGLDMCoeeo5xaBLZwAg,1431
|
|
@@ -249,7 +249,7 @@ umap/static/umap/js/modules/help.js,sha256=fnkc6ugsYI1TeermtqiJUYJFm9P1pcC-CoDuJ
|
|
|
249
249
|
umap/static/umap/js/modules/i18n.js,sha256=dEpjsWoEZa-Tr5_MDO0tuWkt7kLL3crxXqhttyP-khU,1387
|
|
250
250
|
umap/static/umap/js/modules/importer.js,sha256=UEEUodCoWmrhq1ActNusz4jU6n6R3DRuhPVd3_oSF00,11458
|
|
251
251
|
umap/static/umap/js/modules/leaflet-configure.js,sha256=P3aD8iNGxuVNv-xW4Di4txAjNmnlpKtCCzDvPaKEdQ8,243
|
|
252
|
-
umap/static/umap/js/modules/managers.js,sha256=
|
|
252
|
+
umap/static/umap/js/modules/managers.js,sha256=7MCeiB5INYN1XTlksZSPDi2VwVBrr2tzzGUs4ePpLso,2513
|
|
253
253
|
umap/static/umap/js/modules/orderable.js,sha256=zDtcElZ_MVPoGba8Iv9bxOzk4vuN7C-5XVl4UomDYHE,2521
|
|
254
254
|
umap/static/umap/js/modules/permissions.js,sha256=t-kZvgGIGva8MNMu9Ydr-U9KVrdKUQery_BqniFWut0,8734
|
|
255
255
|
umap/static/umap/js/modules/printer.js,sha256=fvb44tLBiYR7TyBdXJdroYsjQOrnbzw7-6F0dBCUEGg,3607
|
|
@@ -260,11 +260,11 @@ umap/static/umap/js/modules/share.js,sha256=xgojG1xHDcbgJZlUd-oP7VFrbGDpl2k1LmTl
|
|
|
260
260
|
umap/static/umap/js/modules/slideshow.js,sha256=7tmW32iuEwLXTY_4A_DmiRMjdDr5luhpJSdmbz2SXPc,3608
|
|
261
261
|
umap/static/umap/js/modules/tableeditor.js,sha256=NbUgJul5_fFhikWyXIZ1nOEp9hSVKO61i2y52noGISc,8537
|
|
262
262
|
umap/static/umap/js/modules/templates.js,sha256=41fliDQLrVo-WosiyLkxpRry3WXpCVz4IW7kYn0AMfQ,4415
|
|
263
|
-
umap/static/umap/js/modules/umap.js,sha256=
|
|
263
|
+
umap/static/umap/js/modules/umap.js,sha256=GD3vS_MGMqH3I0SIgSNIDgdCKKJJ3sLjMqNuQYcVG48,54785
|
|
264
264
|
umap/static/umap/js/modules/urls.js,sha256=76cFqycj2O8huuoYYBvxnVt2Fc2UDbgrRsiv6lQmcSY,890
|
|
265
265
|
umap/static/umap/js/modules/utils.js,sha256=rT_RILODFUWAvvgjFpT5TtNbu8A9jzn0mlkpHEB8QqM,16044
|
|
266
|
-
umap/static/umap/js/modules/data/features.js,sha256=
|
|
267
|
-
umap/static/umap/js/modules/data/layer.js,sha256=
|
|
266
|
+
umap/static/umap/js/modules/data/features.js,sha256=goCRmPzAx47VE_A-WB_2xJbopid4UpW0jLOLibZ_aUk,38334
|
|
267
|
+
umap/static/umap/js/modules/data/layer.js,sha256=E0nDlWk7ovEA5PdV58Pv4Z8CUPlBkLImWfn42m_kIXk,44262
|
|
268
268
|
umap/static/umap/js/modules/form/builder.js,sha256=akRoO8VpKXqWr3LO4Y_B1zr9gXJL2S5RCJqRDREweq8,6452
|
|
269
269
|
umap/static/umap/js/modules/form/fields.js,sha256=yUEUPDHF3tgnpDv7UdfMXHsabCMaGsUDXQq2-Qe1krg,36152
|
|
270
270
|
umap/static/umap/js/modules/importers/banfr.js,sha256=TBwL3GQJdzYtaDtxeHxyPQ7Ycy5zTaQyvzXa55X7n2I,2932
|
|
@@ -281,9 +281,9 @@ umap/static/umap/js/modules/rendering/map.js,sha256=frdccjuaoK9-PMCNAGGk0y_rG5DV
|
|
|
281
281
|
umap/static/umap/js/modules/rendering/popup.js,sha256=OtQYpjhWCoW20XBFeeSKCXMqN-szohaX1TKWhPc9eBo,2577
|
|
282
282
|
umap/static/umap/js/modules/rendering/template.js,sha256=n74YzbZOS_4CeK3-Jn7NXbkzqsh4zjCbEX9w15QxKu0,11468
|
|
283
283
|
umap/static/umap/js/modules/rendering/ui.js,sha256=3Uow0IHOHrPW7LJCa00kjCyZQFdRq5hViAOhoBuipHc,17617
|
|
284
|
-
umap/static/umap/js/modules/rendering/layers/base.js,sha256=
|
|
284
|
+
umap/static/umap/js/modules/rendering/layers/base.js,sha256=k_TlwHiGc16CFvE41-OmgjTFa99LbkG0IUKCUoZaruk,2483
|
|
285
285
|
umap/static/umap/js/modules/rendering/layers/classified.js,sha256=CLktnkjf5_6CzkKVyZcx5wAKvhsRp4pRpCIBauwKeO0,15068
|
|
286
|
-
umap/static/umap/js/modules/rendering/layers/cluster.js,sha256=
|
|
286
|
+
umap/static/umap/js/modules/rendering/layers/cluster.js,sha256=yRv9pXJtYQGimRL6hJXbE9xT1xUmQ4qy2Ja8GjFC5pE,8054
|
|
287
287
|
umap/static/umap/js/modules/rendering/layers/heat.js,sha256=K_LsxnfpGImy2HlneV5nK0cBu1FxDmPNxR5VmsV4LaM,4975
|
|
288
288
|
umap/static/umap/js/modules/sync/engine.js,sha256=LDB7HHCmfVb0Cz30yVXBSV0f-1CGG5bkzrPtaT5RePM,18390
|
|
289
289
|
umap/static/umap/js/modules/sync/hlc.js,sha256=XeJz3x7qiDz7v-mcgGIynj5ks34FpWx_oSPUPFd_ZGA,2991
|
|
@@ -312,12 +312,12 @@ umap/static/umap/locale/cs_CZ.js,sha256=hHwQfF_416U6HcViVZepJga20EwtKGhkDUiks4qt
|
|
|
312
312
|
umap/static/umap/locale/cs_CZ.json,sha256=jIGpH3nab3egJ6mdzboF9Ktrn-0FRE-xIU8SyFge5aI,37547
|
|
313
313
|
umap/static/umap/locale/da.js,sha256=OE4mjb3sc_AxQaUenidkDXCoppAFVX3wublc1T7ATC0,36024
|
|
314
314
|
umap/static/umap/locale/da.json,sha256=gX_qXfTamFKZ6HyK2UzkxCFNRj5bD7EnuWxkb2-VlPg,35959
|
|
315
|
-
umap/static/umap/locale/de.js,sha256
|
|
316
|
-
umap/static/umap/locale/de.json,sha256=
|
|
315
|
+
umap/static/umap/locale/de.js,sha256=LkME9eFGYgUbWpGWlKJiAAp8h6NbulQRrTaZhk7T2Ek,38253
|
|
316
|
+
umap/static/umap/locale/de.json,sha256=79lFWoGUPdjnOYk2HbmyU0y1C163ZNDDrRkNCzpatnQ,38188
|
|
317
317
|
umap/static/umap/locale/el.js,sha256=2ehzzHMTkrGWQuxg5Pgf1eA1rNP49oH04rIRN_eKRPo,53650
|
|
318
318
|
umap/static/umap/locale/el.json,sha256=CppMxb3eOff8tozGdFoAtGmJGlak0W2A2NxGnjycTMc,53585
|
|
319
|
-
umap/static/umap/locale/en.js,sha256=
|
|
320
|
-
umap/static/umap/locale/en.json,sha256=
|
|
319
|
+
umap/static/umap/locale/en.js,sha256=w9WBdkXdI33-ja7R0LghAgieCwyJ6-Yinm__09qIGzQ,34949
|
|
320
|
+
umap/static/umap/locale/en.json,sha256=nqPI3PxGo1m1Ce7h_yZnLDmL6Ft2ZOiI0m0viYDgliw,34884
|
|
321
321
|
umap/static/umap/locale/en_US.json,sha256=3UI6ecOfs6vaMDVC2WDvJ0lb4pWTwNrXayuj-DZWYFU,34662
|
|
322
322
|
umap/static/umap/locale/es.js,sha256=Nqwi2DkIRdnONhwZMSDDcGNIuEVGEbdmO9LhwNl8bQQ,38309
|
|
323
323
|
umap/static/umap/locale/es.json,sha256=Pgmoz9lXN6B62p_IMdX4uEJfGsYQxsm1XakvdLizxK8,38244
|
|
@@ -329,8 +329,8 @@ umap/static/umap/locale/fa_IR.js,sha256=cegs43aHAEsBXoMitji9KVhRLYX7aa7o9FYPMpD_
|
|
|
329
329
|
umap/static/umap/locale/fa_IR.json,sha256=cRPc42Z0Rfelxc_Ebs3QEoiFrORBO5ZU1UfYLwv8o70,43132
|
|
330
330
|
umap/static/umap/locale/fi.js,sha256=rfjcFAXpG1KHQphGys1l24hYPITYpZ6065J5utEyrVk,35706
|
|
331
331
|
umap/static/umap/locale/fi.json,sha256=ks77grVEgGxcjbT0Re5gFrhXPB5wDtKHazCwqppn89E,35641
|
|
332
|
-
umap/static/umap/locale/fr.js,sha256=
|
|
333
|
-
umap/static/umap/locale/fr.json,sha256=
|
|
332
|
+
umap/static/umap/locale/fr.js,sha256=WtLjfP4u7-KV9TITdzRa80nffHrkgvdG_MuPFYoHwdU,38362
|
|
333
|
+
umap/static/umap/locale/fr.json,sha256=SIaElYwqv5AEaN8VnxVKeVIA8AsmGn0qM4IkNP7ejbA,38297
|
|
334
334
|
umap/static/umap/locale/gl.js,sha256=UI2AACApwGhYluuJcGPE_f7389T6tEpytrwLsWawgKY,37745
|
|
335
335
|
umap/static/umap/locale/gl.json,sha256=3LN5rMA1FB9KxR_4rolTJdr-k99qDUYYLK6vfMk1rig,37680
|
|
336
336
|
umap/static/umap/locale/he.js,sha256=5GeT5SQloXbq-tAu_g19LungnjzMfg1yvJrDD4-22O8,38091
|
|
@@ -393,8 +393,8 @@ umap/static/umap/locale/zh.js,sha256=Uzjdp0Oe4QXCewo_YtDuxbC8VTK7RqeBEmXwulGvV48
|
|
|
393
393
|
umap/static/umap/locale/zh.json,sha256=Z6IaQd0Sy1MjmdJP2BfQ3ka7CcWpY37h3ytUPniYka8,34646
|
|
394
394
|
umap/static/umap/locale/zh_CN.json,sha256=aGzn8kP65zQ4c9Z4Cw95XtJge94LgVeC2w-72mnODaU,34868
|
|
395
395
|
umap/static/umap/locale/zh_TW.Big5.json,sha256=aGzn8kP65zQ4c9Z4Cw95XtJge94LgVeC2w-72mnODaU,34868
|
|
396
|
-
umap/static/umap/locale/zh_TW.js,sha256=
|
|
397
|
-
umap/static/umap/locale/zh_TW.json,sha256
|
|
396
|
+
umap/static/umap/locale/zh_TW.js,sha256=MTmNcH8LLqEcnKLsormJR5IetMiyHUjE7Yg8pm8FEm0,34411
|
|
397
|
+
umap/static/umap/locale/zh_TW.json,sha256=0aGY_OSMS6F37hscpK8EPE1KrbH7X3FpKw8tBBkZerI,34340
|
|
398
398
|
umap/static/umap/unittests/URLs.js,sha256=wF0hfRX3NqwFAe31QGeKFwavUpNP2T8pHwXBlcpiwNo,2070
|
|
399
399
|
umap/static/umap/unittests/hlc.js,sha256=GvpBaBSgfMs0Zym0_zOs2QldUOcbFNVIKweBhuwM_QI,5294
|
|
400
400
|
umap/static/umap/unittests/sync.js,sha256=SRzK5N7o7iZodye53evBTZZjXG1mMm6dguV_Iyh69XQ,11096
|
|
@@ -563,16 +563,16 @@ umap/tests/integration/test_caption.py,sha256=9JHQvTju2W-IoV2UBrEUAH4nV2W7eKN2hJ
|
|
|
563
563
|
umap/tests/integration/test_categorized_layer.py,sha256=XCCK62fBljTEbt0EKoGsHf9hY2bCEIkyeuPxyhEGJDs,5381
|
|
564
564
|
umap/tests/integration/test_choropleth.py,sha256=Lsd7tszSIua_GUeXhosB-JWk35zYN-3WKRVYI0ZrNSM,3777
|
|
565
565
|
umap/tests/integration/test_circles_layer.py,sha256=PjYGmCvAd9qDnldnbiw6nomJs1YgUdX181a9xrWSUYE,2396
|
|
566
|
-
umap/tests/integration/test_cluster.py,sha256=
|
|
566
|
+
umap/tests/integration/test_cluster.py,sha256=Ltkk0KUeUtU59lbNwZeoTyaGSYWto5k-rS6_SZ_QnGc,5457
|
|
567
567
|
umap/tests/integration/test_conditional_rules.py,sha256=D1vs3-fcxmLvlKK17Xf0i6dDkOK1UQWqBBFKodxfm0c,15657
|
|
568
568
|
umap/tests/integration/test_dashboard.py,sha256=LClLBc8lgDM1-NGhkvUSUMLmMuKt3sR1ubt2Eo-Iq7A,1550
|
|
569
|
-
umap/tests/integration/test_datalayer.py,sha256=
|
|
569
|
+
umap/tests/integration/test_datalayer.py,sha256=tjerFu7npF3bQ8L8VOHWjdFJrKU22rGjEqSv2-fj-bY,5525
|
|
570
570
|
umap/tests/integration/test_draw_polygon.py,sha256=WNKXcxMqlTmwI0Yro_PbdpTi-M4gZNeIVa-fSXpS6rE,25298
|
|
571
571
|
umap/tests/integration/test_draw_polyline.py,sha256=RgivhjEzjHVE6niPG5uAxJjtmEVD11ftuU4Tb47bXh8,14717
|
|
572
572
|
umap/tests/integration/test_draw_route.py,sha256=hxa_uVqHLLEbbSsEIMsPsq5fMCNoKWY7cRCpMwqudmM,7276
|
|
573
573
|
umap/tests/integration/test_edit_datalayer.py,sha256=l5DwzpWXsy80HxMKrF7z7HZPZi1RtFluONpjDrUBqb8,10224
|
|
574
574
|
umap/tests/integration/test_edit_map.py,sha256=0TXwrjgSKok7nxa-wy7WjVb8-lG0-zfS8s-f9klmqOQ,8784
|
|
575
|
-
umap/tests/integration/test_edit_marker.py,sha256=
|
|
575
|
+
umap/tests/integration/test_edit_marker.py,sha256=JwLP8bngvY0RsOBAMuXBoZ_LsEO1nw_m4IhoxFgHXuY,5777
|
|
576
576
|
umap/tests/integration/test_edit_polygon.py,sha256=l2CxnTnblRYUiiBV3ERwPkZ-VQTEWzFSFWhAzTF9BgA,5252
|
|
577
577
|
umap/tests/integration/test_export_map.py,sha256=tpn37iZOwi7rKRqxRS41CiREagwLdTos8DeH2vWXpYs,15047
|
|
578
578
|
umap/tests/integration/test_facets_browser.py,sha256=nMspm4fR-e-qaO6Dn-N7ZVJ3AK_-jOQ_4fhJ72LrahE,10676
|
|
@@ -602,8 +602,8 @@ umap/tests/integration/test_view_marker.py,sha256=NFCwNez__E_WsE1DuW5RuB0HVKDP4C
|
|
|
602
602
|
umap/tests/integration/test_view_polygon.py,sha256=NMJC6Nt9VpQ8FIU9Pqq2OspHv49xsWlsoXCr8iBa0VA,2060
|
|
603
603
|
umap/tests/integration/test_view_polyline.py,sha256=aJoXKmLhJaN0yhPdDCVskZNGx3q3mLDkjVPhZ30cadA,13959
|
|
604
604
|
umap/tests/integration/test_websocket_sync.py,sha256=n3Nd9cDdYMfJjMIkGUidqeceAW2loM8nx17Bh57m0fo,28341
|
|
605
|
-
umap_project-3.3.
|
|
606
|
-
umap_project-3.3.
|
|
607
|
-
umap_project-3.3.
|
|
608
|
-
umap_project-3.3.
|
|
609
|
-
umap_project-3.3.
|
|
605
|
+
umap_project-3.3.6.dist-info/METADATA,sha256=I6p1JERct-0XUpF8rTBHHFqaC4bTXvZdsIKlOm1tbGY,5747
|
|
606
|
+
umap_project-3.3.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
607
|
+
umap_project-3.3.6.dist-info/entry_points.txt,sha256=gz-KDQfEsMLBae8ABOD3foJsCYGPW1tA4Y394R_1RW8,39
|
|
608
|
+
umap_project-3.3.6.dist-info/licenses/LICENSE,sha256=kQtrtRKgiPhcl7aO0-lmvbrNAXu7WHyiXvPrUk-TD2Q,820
|
|
609
|
+
umap_project-3.3.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|