umap-project 3.3.0__py3-none-any.whl → 3.3.2__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/el/LC_MESSAGES/django.mo +0 -0
- umap/locale/el/LC_MESSAGES/django.po +42 -38
- umap/locale/hu/LC_MESSAGES/django.mo +0 -0
- umap/locale/hu/LC_MESSAGES/django.po +39 -35
- umap/locale/nl/LC_MESSAGES/django.mo +0 -0
- umap/locale/nl/LC_MESSAGES/django.po +31 -27
- umap/static/umap/js/modules/data/features.js +1 -1
- umap/static/umap/js/modules/data/layer.js +11 -13
- umap/static/umap/js/modules/rendering/layers/cluster.js +28 -8
- umap/static/umap/js/modules/rendering/ui.js +43 -4
- umap/static/umap/js/modules/umap.js +1 -1
- umap/static/umap/locale/da.js +38 -38
- umap/static/umap/locale/da.json +38 -38
- umap/static/umap/locale/el.js +81 -81
- umap/static/umap/locale/el.json +81 -81
- umap/static/umap/locale/en.js +0 -1
- umap/static/umap/locale/en.json +0 -1
- umap/static/umap/locale/es.js +38 -38
- umap/static/umap/locale/es.json +38 -38
- umap/static/umap/locale/eu.js +1 -1
- umap/static/umap/locale/eu.json +1 -1
- umap/static/umap/locale/hu.js +55 -55
- umap/static/umap/locale/hu.json +55 -55
- umap/static/umap/locale/ms.js +13 -13
- umap/static/umap/locale/ms.json +13 -13
- umap/static/umap/locale/nl.js +57 -57
- umap/static/umap/locale/nl.json +57 -57
- umap/static/umap/locale/zh_TW.js +38 -38
- umap/static/umap/locale/zh_TW.json +38 -38
- umap/tests/integration/test_edit_datalayer.py +4 -0
- {umap_project-3.3.0.dist-info → umap_project-3.3.2.dist-info}/METADATA +5 -5
- {umap_project-3.3.0.dist-info → umap_project-3.3.2.dist-info}/RECORD +36 -36
- {umap_project-3.3.0.dist-info → umap_project-3.3.2.dist-info}/WHEEL +0 -0
- {umap_project-3.3.0.dist-info → umap_project-3.3.2.dist-info}/entry_points.txt +0 -0
- {umap_project-3.3.0.dist-info → umap_project-3.3.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -43,7 +43,6 @@ export class DataLayer {
|
|
|
43
43
|
this._umap = umap
|
|
44
44
|
this.sync = umap.syncEngine.proxy(this)
|
|
45
45
|
this.features = new FeatureManager()
|
|
46
|
-
this._geojson = null
|
|
47
46
|
this._propertiesIndex = []
|
|
48
47
|
|
|
49
48
|
this._leafletMap = leafletMap
|
|
@@ -306,7 +305,6 @@ export class DataLayer {
|
|
|
306
305
|
fromGeoJSON(geojson, sync = true) {
|
|
307
306
|
if (!geojson) return []
|
|
308
307
|
const features = this.addData(geojson, sync)
|
|
309
|
-
this._geojson = geojson
|
|
310
308
|
this._needsFetch = false
|
|
311
309
|
this.onDataLoaded()
|
|
312
310
|
this.dataChanged()
|
|
@@ -318,7 +316,11 @@ export class DataLayer {
|
|
|
318
316
|
}
|
|
319
317
|
|
|
320
318
|
async fromUmapGeoJSON(geojson) {
|
|
321
|
-
if (geojson._storage)
|
|
319
|
+
if (geojson._storage) {
|
|
320
|
+
// Retrocompat
|
|
321
|
+
geojson._umap_options = geojson._storage
|
|
322
|
+
delete geojson._storage
|
|
323
|
+
}
|
|
322
324
|
if (geojson._umap_options) this.setProperties(geojson._umap_options)
|
|
323
325
|
if (this.isRemoteLayer()) {
|
|
324
326
|
await this.fetchRemoteData()
|
|
@@ -327,12 +329,6 @@ export class DataLayer {
|
|
|
327
329
|
}
|
|
328
330
|
}
|
|
329
331
|
|
|
330
|
-
backupData() {
|
|
331
|
-
if (this._geojson) {
|
|
332
|
-
this._geojson_bk = Utils.CopyJSON(this._geojson)
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
|
|
336
332
|
showAtZoom() {
|
|
337
333
|
const from = Number.parseInt(this.properties.fromZoom, 10)
|
|
338
334
|
const to = Number.parseInt(this.properties.toZoom, 10)
|
|
@@ -747,7 +743,7 @@ export class DataLayer {
|
|
|
747
743
|
const properties = Utils.CopyJSON(this.properties)
|
|
748
744
|
properties.name = translate('Clone of {name}', { name: this.properties.name })
|
|
749
745
|
delete properties.id
|
|
750
|
-
const geojson = Utils.CopyJSON(this.
|
|
746
|
+
const geojson = Utils.CopyJSON(this.umapGeoJSON())
|
|
751
747
|
const datalayer = this._umap.createDirtyDataLayer(properties)
|
|
752
748
|
datalayer.fromGeoJSON(geojson)
|
|
753
749
|
return datalayer
|
|
@@ -1164,7 +1160,11 @@ export class DataLayer {
|
|
|
1164
1160
|
this.getVersionUrl(version)
|
|
1165
1161
|
)
|
|
1166
1162
|
if (!error) {
|
|
1167
|
-
if (geojson._storage)
|
|
1163
|
+
if (geojson._storage) {
|
|
1164
|
+
// Retrocompat.
|
|
1165
|
+
geojson._umap_options = geojson._storage
|
|
1166
|
+
delete geojson._storage
|
|
1167
|
+
}
|
|
1168
1168
|
if (geojson._umap_options) {
|
|
1169
1169
|
const oldProperties = Utils.CopyJSON(this.properties)
|
|
1170
1170
|
this.setProperties(geojson._umap_options)
|
|
@@ -1323,7 +1323,6 @@ export class DataLayer {
|
|
|
1323
1323
|
? { 'X-Datalayer-Reference': this._referenceVersion }
|
|
1324
1324
|
: {}
|
|
1325
1325
|
const status = await this._trySave(saveURL, headers, formData)
|
|
1326
|
-
this._geojson = geojson
|
|
1327
1326
|
return status
|
|
1328
1327
|
}
|
|
1329
1328
|
|
|
@@ -1363,7 +1362,6 @@ export class DataLayer {
|
|
|
1363
1362
|
|
|
1364
1363
|
this.setReferenceVersion({ response, sync: true })
|
|
1365
1364
|
|
|
1366
|
-
this.backupData()
|
|
1367
1365
|
this.connectToMap()
|
|
1368
1366
|
this.redraw() // Needed for reordering features
|
|
1369
1367
|
return true
|
|
@@ -104,6 +104,7 @@ export const Cluster = FeatureGroup.extend({
|
|
|
104
104
|
initialize: function (datalayer) {
|
|
105
105
|
this.datalayer = datalayer
|
|
106
106
|
this._bucket = []
|
|
107
|
+
this._group = new LayerGroup()
|
|
107
108
|
if (!Utils.isObject(this.datalayer.properties.cluster)) {
|
|
108
109
|
this.datalayer.properties.cluster = {}
|
|
109
110
|
}
|
|
@@ -117,11 +118,11 @@ export const Cluster = FeatureGroup.extend({
|
|
|
117
118
|
|
|
118
119
|
removeClusters() {
|
|
119
120
|
this.hideCoverage()
|
|
121
|
+
for (const layer of this._bucket) {
|
|
122
|
+
delete layer._cluster
|
|
123
|
+
}
|
|
120
124
|
if (this._map) {
|
|
121
|
-
|
|
122
|
-
const layer = cluster._layers.length === 1 ? cluster._layers[0] : cluster
|
|
123
|
-
this._map.removeLayer(layer)
|
|
124
|
-
}
|
|
125
|
+
this._group.clearLayers()
|
|
125
126
|
}
|
|
126
127
|
},
|
|
127
128
|
|
|
@@ -129,7 +130,7 @@ export const Cluster = FeatureGroup.extend({
|
|
|
129
130
|
if (this._map) {
|
|
130
131
|
for (const cluster of this._clusters) {
|
|
131
132
|
const layer = cluster._layers.length === 1 ? cluster._layers[0] : cluster
|
|
132
|
-
this.
|
|
133
|
+
this._group.addLayer(layer)
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
},
|
|
@@ -144,8 +145,11 @@ export const Cluster = FeatureGroup.extend({
|
|
|
144
145
|
const radius = this.datalayer.properties.cluster?.radius || 80
|
|
145
146
|
this._clusters = []
|
|
146
147
|
const map = this.datalayer._umap._leafletMap
|
|
148
|
+
this._bounds = map.getBounds().pad(0.1)
|
|
147
149
|
const CRS = map.options.crs
|
|
148
150
|
for (const layer of this._bucket) {
|
|
151
|
+
if (layer._cluster) continue
|
|
152
|
+
if (!this._bounds.contains(layer._latlng)) continue
|
|
149
153
|
layer._xy = CRS.latLngToPoint(layer._latlng, map.getZoom())
|
|
150
154
|
let cluster = null
|
|
151
155
|
for (const candidate of this._clusters) {
|
|
@@ -188,21 +192,34 @@ export const Cluster = FeatureGroup.extend({
|
|
|
188
192
|
this.on('mouseout', this.onMouseOut)
|
|
189
193
|
this.compute()
|
|
190
194
|
LayerMixin.onAdd.call(this, leafletMap)
|
|
191
|
-
leafletMap.on('
|
|
195
|
+
leafletMap.on('moveend', this.onMoveEnd, this)
|
|
196
|
+
leafletMap.on('zoomend', this.onZoomEnd, this)
|
|
192
197
|
this.addClusters()
|
|
198
|
+
leafletMap.addLayer(this._group)
|
|
193
199
|
return FeatureGroup.prototype.onAdd.call(this, leafletMap)
|
|
194
200
|
},
|
|
195
201
|
|
|
196
202
|
onRemove: function (leafletMap) {
|
|
197
|
-
leafletMap.off('zoomend', this.
|
|
203
|
+
leafletMap.off('zoomend', this.onZoomEnd, this)
|
|
204
|
+
leafletMap.off('moveend', this.onMoveEnd, this)
|
|
198
205
|
this.off('click', this.onClick)
|
|
199
206
|
this.off('mouseover', this.onMouseOver)
|
|
200
207
|
this.off('mouseout', this.onMouseOut)
|
|
201
208
|
LayerMixin.onRemove.call(this, leafletMap)
|
|
202
209
|
this.removeClusters()
|
|
210
|
+
leafletMap.removeLayer(this._group)
|
|
203
211
|
return FeatureGroup.prototype.onRemove.call(this, leafletMap)
|
|
204
212
|
},
|
|
205
213
|
|
|
214
|
+
onZoomEnd: function () {
|
|
215
|
+
this.removeClusters()
|
|
216
|
+
},
|
|
217
|
+
|
|
218
|
+
onMoveEnd: function () {
|
|
219
|
+
this.compute()
|
|
220
|
+
this.addClusters()
|
|
221
|
+
},
|
|
222
|
+
|
|
206
223
|
showCoverage(cluster) {
|
|
207
224
|
if (cluster._coverage) {
|
|
208
225
|
this._shownCoverage = cluster._coverage
|
|
@@ -235,7 +252,10 @@ export const Cluster = FeatureGroup.extend({
|
|
|
235
252
|
[
|
|
236
253
|
'properties.cluster.radius',
|
|
237
254
|
{
|
|
238
|
-
handler: '
|
|
255
|
+
handler: 'Range',
|
|
256
|
+
min: 40,
|
|
257
|
+
max: 200,
|
|
258
|
+
step: 10,
|
|
239
259
|
placeholder: translate('Clustering radius'),
|
|
240
260
|
helpText: translate('Override clustering radius (default 80)'),
|
|
241
261
|
},
|
|
@@ -29,6 +29,7 @@ const FeatureMixin = {
|
|
|
29
29
|
},
|
|
30
30
|
|
|
31
31
|
onRemove: function (map) {
|
|
32
|
+
this.removeInteractions()
|
|
32
33
|
this.parentClass.prototype.onRemove.call(this, map)
|
|
33
34
|
if (map._umap.editedFeature === this.feature) {
|
|
34
35
|
this.feature.endEdit()
|
|
@@ -49,6 +50,13 @@ const FeatureMixin = {
|
|
|
49
50
|
this.on('mouseover', this.onMouseOver)
|
|
50
51
|
},
|
|
51
52
|
|
|
53
|
+
removeInteractions: function () {
|
|
54
|
+
this.off('contextmenu editable:vertex:contextmenu', this.onContextMenu)
|
|
55
|
+
this.off('click', this.onClick)
|
|
56
|
+
this.off('editable:edited', this.onCommit)
|
|
57
|
+
this.off('mouseover', this.onMouseOver)
|
|
58
|
+
},
|
|
59
|
+
|
|
52
60
|
onMouseOver: function () {
|
|
53
61
|
if (this._map._umap.editEnabled && !this._map._umap.editedFeature) {
|
|
54
62
|
this._map._umap.tooltip.open({
|
|
@@ -112,13 +120,26 @@ const PointMixin = {
|
|
|
112
120
|
|
|
113
121
|
addInteractions() {
|
|
114
122
|
FeatureMixin.addInteractions.call(this)
|
|
115
|
-
this.on('dragend',
|
|
116
|
-
this.feature.edit(event)
|
|
117
|
-
})
|
|
123
|
+
this.on('dragend', this._onDragEnd)
|
|
118
124
|
if (!this.feature.isReadOnly()) this.on('mouseover', this._enableDragging)
|
|
119
125
|
this.on('mouseout', this._onMouseOut)
|
|
120
126
|
},
|
|
121
127
|
|
|
128
|
+
removeInteractions() {
|
|
129
|
+
FeatureMixin.removeInteractions.call(this)
|
|
130
|
+
this.off('dragend', this._onDragEnd)
|
|
131
|
+
if (!this.feature.isReadOnly()) this.off('mouseover', this._enableDragging)
|
|
132
|
+
this.off('mouseout', this._onMouseOut)
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
_onDragEnd(event) {
|
|
136
|
+
if (this._cluster) {
|
|
137
|
+
delete this._originalLatLng
|
|
138
|
+
this.feature.datalayer.dataChanged()
|
|
139
|
+
}
|
|
140
|
+
this.feature.edit(event)
|
|
141
|
+
},
|
|
142
|
+
|
|
122
143
|
_onMouseOut: function () {
|
|
123
144
|
if (this.dragging?._draggable && !this.dragging._draggable._moving) {
|
|
124
145
|
// Do not disable if the mouse went out while dragging
|
|
@@ -127,7 +148,6 @@ const PointMixin = {
|
|
|
127
148
|
},
|
|
128
149
|
|
|
129
150
|
_enableDragging: function () {
|
|
130
|
-
if (this._cluster) return
|
|
131
151
|
// TODO: start dragging after 1 second on mouse down
|
|
132
152
|
if (this._map._umap.editEnabled) {
|
|
133
153
|
if (!this.editEnabled()) this.enableEdit()
|
|
@@ -177,6 +197,12 @@ export const LeafletMarker = Marker.extend({
|
|
|
177
197
|
this.on('popupclose', this.resetHighlight)
|
|
178
198
|
},
|
|
179
199
|
|
|
200
|
+
removeInteractions() {
|
|
201
|
+
PointMixin.removeInteractions.call(this)
|
|
202
|
+
this.off('popupopen', this.highlight)
|
|
203
|
+
this.off('popupclose', this.resetHighlight)
|
|
204
|
+
},
|
|
205
|
+
|
|
180
206
|
onMoveEnd: function () {
|
|
181
207
|
this._initIcon()
|
|
182
208
|
this.update()
|
|
@@ -295,6 +321,13 @@ const PathMixin = {
|
|
|
295
321
|
this.on('popupclose', this._redraw)
|
|
296
322
|
},
|
|
297
323
|
|
|
324
|
+
removeInteractions: function () {
|
|
325
|
+
FeatureMixin.removeInteractions.call(this)
|
|
326
|
+
this.off('drag editable:drag', this._onDrag)
|
|
327
|
+
this.off('popupopen', this.highlightPath)
|
|
328
|
+
this.off('popupclose', this._redraw)
|
|
329
|
+
},
|
|
330
|
+
|
|
298
331
|
bindTooltip: function (content, options) {
|
|
299
332
|
options.sticky = !options.permanent
|
|
300
333
|
this.parentClass.prototype.bindTooltip.call(this, content, options)
|
|
@@ -486,6 +519,12 @@ export const LeafletRoute = LeafletPolyline.extend({
|
|
|
486
519
|
this.on('editable:vertex:dragend editable:vertex:deleted', this.onDrawingMoved)
|
|
487
520
|
},
|
|
488
521
|
|
|
522
|
+
removeInteractions: function () {
|
|
523
|
+
PathMixin.removeInteractions.call(this)
|
|
524
|
+
this.off('editable:drawing:clicked', this.onDrawingClick)
|
|
525
|
+
this.off('editable:vertex:dragend editable:vertex:deleted', this.onDrawingMoved)
|
|
526
|
+
},
|
|
527
|
+
|
|
489
528
|
getEditorClass: (tools) => {
|
|
490
529
|
return RouteEditor
|
|
491
530
|
},
|
|
@@ -1609,8 +1609,8 @@ export default class Umap {
|
|
|
1609
1609
|
for (const geojson of importedData.layers) {
|
|
1610
1610
|
if (!geojson._umap_options && geojson._storage) {
|
|
1611
1611
|
geojson._umap_options = geojson._storage
|
|
1612
|
-
delete geojson._storage
|
|
1613
1612
|
}
|
|
1613
|
+
delete geojson._storage
|
|
1614
1614
|
delete geojson._umap_options?.id // Never trust an id at this stage
|
|
1615
1615
|
if (geojson._umap_options?.iconUrl?.startsWith('/')) {
|
|
1616
1616
|
geojson._umap_options.iconUrl = remoteOrigin + geojson._umap_options.iconUrl
|
umap/static/umap/locale/da.js
CHANGED
|
@@ -578,44 +578,44 @@ const locale = {
|
|
|
578
578
|
"Rename this field": "Omdøb dette felt",
|
|
579
579
|
"Delete this field": "Slet dette felt",
|
|
580
580
|
"Double click to edit the name": "Dobbeltklik for at redigere navnet",
|
|
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": "
|
|
590
|
-
"Will only affect raw and large circle icons.": "
|
|
591
|
-
"Route": "
|
|
592
|
-
"Display the print control": "
|
|
593
|
-
"Compute isochrone from here": "
|
|
594
|
-
"Route settings": "
|
|
595
|
-
"Transform to regular line": "
|
|
596
|
-
"Transform to route": "
|
|
597
|
-
"Restore route": "
|
|
598
|
-
"Compute elevation": "
|
|
599
|
-
"Profile": "
|
|
600
|
-
"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": "
|
|
581
|
+
"Print map": "Udskriv kort",
|
|
582
|
+
"Choose a format": "Vælg dit format",
|
|
583
|
+
"Scale map": "Skalér kort",
|
|
584
|
+
"portrait": "portræt",
|
|
585
|
+
"landscape": "landskab",
|
|
586
|
+
"Print": "Udskriv",
|
|
587
|
+
"Preparing the print…": "Forbereder udskriften…",
|
|
588
|
+
"Large Circle": "Stor cirkel",
|
|
589
|
+
"Icon size": "Ikonstørrelse",
|
|
590
|
+
"Will only affect raw and large circle icons.": "Vil kun påvirke rå og store cirkelikoner.",
|
|
591
|
+
"Route": "Rute",
|
|
592
|
+
"Display the print control": "Vis udskriftskontrol",
|
|
593
|
+
"Compute isochrone from here": "Beregn isokron herfra",
|
|
594
|
+
"Route settings": "Ruteindstillinger",
|
|
595
|
+
"Transform to regular line": "Omdan til almindelig linje",
|
|
596
|
+
"Transform to route": "Omdan til rute",
|
|
597
|
+
"Restore route": "Gendan rute",
|
|
598
|
+
"Compute elevation": "Beregn højde",
|
|
599
|
+
"Profile": "Profil",
|
|
600
|
+
"Compute elevations": "Beregn højder",
|
|
601
|
+
"Route preference": "Rutepræference",
|
|
602
|
+
"Compute route": "Beregn rute",
|
|
603
|
+
"Walking": "Gåtur",
|
|
604
|
+
"Hiking": "Vandring",
|
|
605
|
+
"By car": "I bil",
|
|
606
|
+
"Cycling": "Cykling",
|
|
607
|
+
"Wheelchair": "Kørestol",
|
|
608
|
+
"Recommended": "Anbefalet",
|
|
609
|
+
"Fastest": "Hurtigst",
|
|
610
|
+
"Shortest": "Korteste",
|
|
611
|
+
"Max time (in minutes)": "Maksimal tid (i minutter)",
|
|
612
|
+
"Number of lines": "Antal linjer",
|
|
613
|
+
"Distance:": "Afstand:",
|
|
614
|
+
"Gain:": "Forøgelse:",
|
|
615
|
+
"Loss:": "Tab:",
|
|
616
|
+
"Altitude:": "Højde:",
|
|
617
|
+
"Right-click to edit": "Højreklik for at redigere",
|
|
618
|
+
"Draw along routes": "Tegn langs ruter"
|
|
619
619
|
}
|
|
620
620
|
L.registerLocale("da", locale)
|
|
621
621
|
L.setLocale("da")
|
umap/static/umap/locale/da.json
CHANGED
|
@@ -578,42 +578,42 @@
|
|
|
578
578
|
"Rename this field": "Omdøb dette felt",
|
|
579
579
|
"Delete this field": "Slet dette felt",
|
|
580
580
|
"Double click to edit the name": "Dobbeltklik for at redigere navnet",
|
|
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": "
|
|
590
|
-
"Will only affect raw and large circle icons.": "
|
|
591
|
-
"Route": "
|
|
592
|
-
"Display the print control": "
|
|
593
|
-
"Compute isochrone from here": "
|
|
594
|
-
"Route settings": "
|
|
595
|
-
"Transform to regular line": "
|
|
596
|
-
"Transform to route": "
|
|
597
|
-
"Restore route": "
|
|
598
|
-
"Compute elevation": "
|
|
599
|
-
"Profile": "
|
|
600
|
-
"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": "
|
|
581
|
+
"Print map": "Udskriv kort",
|
|
582
|
+
"Choose a format": "Vælg dit format",
|
|
583
|
+
"Scale map": "Skalér kort",
|
|
584
|
+
"portrait": "portræt",
|
|
585
|
+
"landscape": "landskab",
|
|
586
|
+
"Print": "Udskriv",
|
|
587
|
+
"Preparing the print…": "Forbereder udskriften…",
|
|
588
|
+
"Large Circle": "Stor cirkel",
|
|
589
|
+
"Icon size": "Ikonstørrelse",
|
|
590
|
+
"Will only affect raw and large circle icons.": "Vil kun påvirke rå og store cirkelikoner.",
|
|
591
|
+
"Route": "Rute",
|
|
592
|
+
"Display the print control": "Vis udskriftskontrol",
|
|
593
|
+
"Compute isochrone from here": "Beregn isokron herfra",
|
|
594
|
+
"Route settings": "Ruteindstillinger",
|
|
595
|
+
"Transform to regular line": "Omdan til almindelig linje",
|
|
596
|
+
"Transform to route": "Omdan til rute",
|
|
597
|
+
"Restore route": "Gendan rute",
|
|
598
|
+
"Compute elevation": "Beregn højde",
|
|
599
|
+
"Profile": "Profil",
|
|
600
|
+
"Compute elevations": "Beregn højder",
|
|
601
|
+
"Route preference": "Rutepræference",
|
|
602
|
+
"Compute route": "Beregn rute",
|
|
603
|
+
"Walking": "Gåtur",
|
|
604
|
+
"Hiking": "Vandring",
|
|
605
|
+
"By car": "I bil",
|
|
606
|
+
"Cycling": "Cykling",
|
|
607
|
+
"Wheelchair": "Kørestol",
|
|
608
|
+
"Recommended": "Anbefalet",
|
|
609
|
+
"Fastest": "Hurtigst",
|
|
610
|
+
"Shortest": "Korteste",
|
|
611
|
+
"Max time (in minutes)": "Maksimal tid (i minutter)",
|
|
612
|
+
"Number of lines": "Antal linjer",
|
|
613
|
+
"Distance:": "Afstand:",
|
|
614
|
+
"Gain:": "Forøgelse:",
|
|
615
|
+
"Loss:": "Tab:",
|
|
616
|
+
"Altitude:": "Højde:",
|
|
617
|
+
"Right-click to edit": "Højreklik for at redigere",
|
|
618
|
+
"Draw along routes": "Tegn langs ruter"
|
|
619
619
|
}
|
umap/static/umap/locale/el.js
CHANGED
|
@@ -535,87 +535,87 @@ const locale = {
|
|
|
535
535
|
"Back to list": "Πίσω στην λίστα",
|
|
536
536
|
"Toggle rule": "Εναλλαγή κανόνα",
|
|
537
537
|
"Delete rule": "Διαγραφή κανόνα",
|
|
538
|
-
"Cannot save layer, please try again in a few minutes.": "Δεν
|
|
539
|
-
"Activate collaborative live editing on this map. Other users must reload the map after changing this setting.": "Ενεργοποιήστε
|
|
540
|
-
"More help resources": "
|
|
541
|
-
"This map is a template": "
|
|
542
|
-
"Add text along path": "
|
|
543
|
-
"Text color": "
|
|
544
|
-
"Text offset": "
|
|
545
|
-
"Text position": "
|
|
546
|
-
"start": "
|
|
547
|
-
"center": "
|
|
548
|
-
"end": "
|
|
549
|
-
"Text repeat": "
|
|
550
|
-
"Text rotate": "
|
|
551
|
-
"Text size": "
|
|
552
|
-
"Load map template": "
|
|
553
|
-
"My templates": "
|
|
554
|
-
"From staff": "
|
|
555
|
-
"From community": "
|
|
556
|
-
"You must select a template.": "
|
|
557
|
-
"Line decoration": "
|
|
558
|
-
"Reuse this template": "
|
|
559
|
-
"Create a new map using this template": "
|
|
560
|
-
"Save template": "
|
|
561
|
-
"Load template": "
|
|
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": "
|
|
568
|
-
"Import data from public open data portals": "
|
|
569
|
-
"Choose a portal": "
|
|
570
|
-
"Limit results to current map view": "
|
|
571
|
-
"Please choose an instance first.": "
|
|
572
|
-
"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": "
|
|
590
|
-
"Will only affect raw and large circle icons.": "
|
|
591
|
-
"Route": "
|
|
592
|
-
"Display the print control": "
|
|
593
|
-
"Compute isochrone from here": "
|
|
594
|
-
"Route settings": "
|
|
595
|
-
"Transform to regular line": "
|
|
596
|
-
"Transform to route": "
|
|
597
|
-
"Restore route": "
|
|
598
|
-
"Compute elevation": "
|
|
599
|
-
"Profile": "
|
|
600
|
-
"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": "
|
|
538
|
+
"Cannot save layer, please try again in a few minutes.": "Δεν ήταν δυνατή η αποθήκευση του επιπέδου, παρακαλούμε δοκιμάστε ξανά σε μερικά λεπτά.",
|
|
539
|
+
"Activate collaborative live editing on this map. Other users must reload the map after changing this setting.": "Ενεργοποιήστε τη ζωντανή συνεργατική επεξεργασία σε αυτόν τον χάρτη. Άλλοι χρήστες θα πρέπει να ξαναφορτώσουν τον χάρτη μετά την αλλαγή αυτής της ρύθμισης.",
|
|
540
|
+
"More help resources": "Περισσότερες πηγές βοήθειας",
|
|
541
|
+
"This map is a template": "Αυτός ο χάρτης είναι ένα πρότυπο",
|
|
542
|
+
"Add text along path": "Προσθήκη κειμένου κατά μήκος του μονοπατιού",
|
|
543
|
+
"Text color": "Χρώμα κειμένου",
|
|
544
|
+
"Text offset": "Μετατόπιση κειμένου",
|
|
545
|
+
"Text position": "Θέση κειμένου",
|
|
546
|
+
"start": "αρχή",
|
|
547
|
+
"center": "κέντρο",
|
|
548
|
+
"end": "τέλος",
|
|
549
|
+
"Text repeat": "Επανάληψη κειμένου",
|
|
550
|
+
"Text rotate": "Περιστροφή κειμένου",
|
|
551
|
+
"Text size": "Μέγεθος κειμένου",
|
|
552
|
+
"Load map template": "Φόρτωση προτύπου χάρτη",
|
|
553
|
+
"My templates": "Τα πρότυπά μου",
|
|
554
|
+
"From staff": "Από το προσωπικό",
|
|
555
|
+
"From community": "Από την κοινότητα",
|
|
556
|
+
"You must select a template.": "Πρέπει να επιλέξετε ένα πρότυπο.",
|
|
557
|
+
"Line decoration": "Διακόσμηση γραμμής",
|
|
558
|
+
"Reuse this template": "Επαναχρησιμοποίηση του προτύπου",
|
|
559
|
+
"Create a new map using this template": "Δημιουργία νέου χάρτη χρησιμοποιώντας αυτό το πρότυπο",
|
|
560
|
+
"Save template": "Αποθήκευση προτύπου",
|
|
561
|
+
"Load template": "Φόρτωση προτύπου",
|
|
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.": "Δεν υπάρχει ακόμη προτεινόμενο πρότυπο. Τα προτεινόμενα πρότυπα είναι αυτά που έχουν επισημανθεί με αστερίσκο από τους διαχειριστές του uMap.",
|
|
566
|
+
"There is no public template yet.": "Δεν υπάρχει ακόμη δημόσιο πρότυπο.",
|
|
567
|
+
"Explore": "Εξερεύνηση",
|
|
568
|
+
"Import data from public open data portals": "Εισαγωγή δεδομένων από δημόσιες πύλες ανοικτών δεδομένων",
|
|
569
|
+
"Choose a portal": "Επιλέξτε μια πύλη",
|
|
570
|
+
"Limit results to current map view": "Περιορισμός αποτελεσμάτων στην τρέχουσα προβολή χάρτη",
|
|
571
|
+
"Please choose an instance first.": "Παρακαλώ επιλέξτε πρώτα μια περίπτωση.",
|
|
572
|
+
"No geo column found: must be either `lat(itude)` and `lon(gitude)` or `geom(etry)`.": "Δεν βρέθηκε στήλη γεωγραφικών συντεταγμένων: πρέπει να είναι είτε `lat(itude)` και `lon(gitude)` είτε `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": "Δεν είναι δυνατή η επεξεργασία 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": "Μέγεθος εικονιδίου",
|
|
590
|
+
"Will only affect raw and large circle icons.": "Θα επηρεάσει μόνο τα ακατέργαστα μεγάλα κυκλικά εικονίδια .",
|
|
591
|
+
"Route": "Διαδρομή",
|
|
592
|
+
"Display the print control": "Εμφάνιση του ελέγχου εκτύπωσης",
|
|
593
|
+
"Compute isochrone from here": "Υπολογισμός ισοχρώματος από εδώ",
|
|
594
|
+
"Route settings": "Ρυθμίσεις διαδρομής",
|
|
595
|
+
"Transform to regular line": "Μετατροπή σε κανονική γραμμή",
|
|
596
|
+
"Transform to route": "Μετατροπή σε διαδρομή",
|
|
597
|
+
"Restore route": "Επαναφορά διαδρομής",
|
|
598
|
+
"Compute elevation": "Υπολογισμός υψομέτρου",
|
|
599
|
+
"Profile": "Προφίλ",
|
|
600
|
+
"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": "Σχεδιάστε κατά μήκος διαδρομών"
|
|
619
619
|
}
|
|
620
620
|
L.registerLocale("el", locale)
|
|
621
621
|
L.setLocale("el")
|