Leaflet-Karte: per Klick marker setzen + vorherigen *löschen*

04/11/2014 - 12:30 von Roman Düller | Report spam
Hallo,

mit jedem Klick wir eine weiterer Marker gesetzt,
ich möchte aber nur einen und
weiß nicht bzw. finde (noch) nicht,
wie ich das "remove" für den letzten setzen soll.

Anfangs per
..
var map = L.map('map').setView( ...
// + OSM-tilemap erzeugen, dann

var marker;

function onMapClick(e) {
var lat = (e.latlng.lat);
var lng = (e.latlng.lng);
L.marker([lat, lng], {draggable:true}).addTo(map).bindPopup('location');
}

map.on('click', onMapClick);

map.removeLayer(marker);
..

Jeder Marker sitzt doch als Layer auf dem
Basis-tile-Layer. M.E. muss der marker-Layer entfernt werden?
Aber ...
was "sehe" ich da nicht? In der Funktion wirkt das remove auch nicht.


( mit den Marker Koordinaten sollen dann per Klick bzw. drag
sofort ein Formularfeld aktualisiert werden )

Roman
 

Lesen sie die antworten

#1 Roman Düller
04/11/2014 - 13:11 | Warnen spam
eine Kleinigkeit habe ich grade gefunden - nach Stunden:

Am 04.11.2014 12:30, schrieb Roman Düller:

diese Zeile ersetzen
L.marker([lat, lng], {draggable:true}).addTo(map).bindPopup('location');


ersetzen durch
marker = L.marker([lat, lng],
{draggable:true}).addTo(map).bindPopup($('<a href="#clickmap">Remove
ME</a>').click(function() { map.removeLayer(marker); })[0]);

entfernt (nur) den jeweils letzten gesetzten Marker.

Wahrscheinlich sind dann frühere id (?) "vergessen" - so dass man sie
(?) vielleicht mit in den jew. Link geben sollte.


Roman

Ähnliche fragen