Sono 2 funzionano come di seguito:API di Google Maps 3 Rimuovere marker selezionato Solo
function addMarker() {
marker = new google.maps.Marker({
position: Gpoint,
map: map,
draggable: true,
animation: google.maps.Animation.DROP
});
map.panTo(Gpoint);
google.maps.event.addListener(marker, "rightclick",
function (point) {
showContextMarker(point.latLng); });
$('.contextmenu').remove();
};
function delMarker() { marker.setMap(null); $('.contextmenu').remove(); };
Quindi, come si può capire che ho un menu di contesto con "Delete Marker" l'opzione su di esso. leggo un listener "rightclick" durante l'aggiunta di un marker, per mostrare questo menu.
Tutto funziona senza problemi fino a questo momento.
Ma quando provo a fare clic su un marcatore per eliminare; sta effettuando solo l'ultimo marker aggiunto. Quando ci riprovo; non accade nulla.
Quindi la mia idea è di ottenere l'id del marcatore cliccato (o qualcosa che potrebbe essere utile) ed eseguire questa funzione di eliminazione in base a questo.
Brevemente; Voglio eliminare il marcatore su cui ho fatto clic, da una mappa con più marcatori.
Avete qualche approccio per risolvere questo problema?
Grazie in anticipo!
RISOLTO!
Ecco la soluzione. Grazie Fatih. è stato impossibile senza la tua guida:
var id;
var markers = {};
var addMarker = function() {
marker = new google.maps.Marker({
position: Gpoint,
map: map,
draggable: true,
animation: google.maps.Animation.DROP
});
map.panTo(Gpoint);
id = marker.__gm_id
markers[id] = marker;
google.maps.event.addListener(marker, "rightclick", function (point) { id = this.__gm_id; delMarker(id) });
}
var delMarker = function (id) {
marker = markers[id];
marker.setMap(null);
}
la funzione di chiamata eliminare da: delMarker(id)
Ps: "clic destro è abbastanza su questo caso"
Grazie!
Ma cosa vuoi raggiungere ???. Rimuovere tutti i marcatori? – Jorge
Rimuovi solo quello su cui è stato fatto clic! – MrGorki
@ MrGorki, come hai generato __gm_id? È incrementato? – jemz