nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 7294218b1d61c66cc7d45c57a8e70658c0fcc2c2
parent 4a9d0a3bff0a37a8d53797f9acc1a856bc2be3d1
Author: Sergey Orlov <wladimirych@gmail.com>
Date:   Sun, 14 Jun 2020 19:38:03 +0200

tracks: fix point names suggests, related to #217

* account only points in current track, ignore other tracks
* consider numbers longer than 3 digits as not autogenerated
* consider numbers with dots longer than 3 digits as not autogenerated
* if point with name "999" exists, suggest empty name

Diffstat:
Msrc/lib/leaflet.control.track-list/track-list.js | 15++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/lib/leaflet.control.track-list/track-list.js b/src/lib/leaflet.control.track-list/track-list.js @@ -701,10 +701,15 @@ L.Control.TrackList = L.Control.extend({ this.stopPlacingPoint(); }, - getNewPointName: function () { - const maxNumber = Math.max.apply(Math, - this._markerLayer.getMarkers().map((marker) => parseInt(marker.label, 10) || 0)) | 0; - return String(maxNumber + 1).padStart(3, '0'); + getNewPointName: function(track) { + let maxNumber = 0; + for (let marker of track.markers) { + const label = marker.label; + if (label.match(/^\d{3}([^\d.]|$)/u)) { + maxNumber = parseInt(label, 10); + } + } + return maxNumber === 999 ? '' : String(maxNumber + 1).padStart(3, '0'); }, createNewPoint: function(e) { @@ -712,7 +717,7 @@ L.Control.TrackList = L.Control.extend({ return; } const parentTrack = this.trackAddingPoint(); - const name = this.getNewPointName(); + const name = this.getNewPointName(parentTrack); const newLatLng = e.latlng.wrap(); const marker = this.addPoint(parentTrack, {name: name, lat: newLatLng.lat, lng: newLatLng.lng}); this._markerLayer.addMarker(marker);