deleteObject
est une méthode membre de l'image/objet lui-même, de sorte que vous l'appelez simplement à partir de l'objet que vous souhaitez supprimer, par exemple
image.deleteObject();
Si votre carte utilise des éléments HTML personnalisés comme dans la démo, vous devez également supprimer le div généré dans votre méthode createCustomMarker
en appelant removeChild
dans les DOM. Vous devez être en mesure d'accéder à cette div en quelque sorte, donc je vous recommande de le modifier pour définir les années div id
à quelque chose que vous pouvez regarder plus tard comme id de l'image:
// this function creates and returns a new marker element
function createCustomMarker(image) {
// create holder
var holder = document.createElement("div");
holder.className = "map-marker";
holder.title = image.title;
holder.id = image.id; //added to make div lookup easier
// ...
}
Cette modification suppose que vous avez une carte d'identité dans vos images , qui est également recommandé car vous pouvez utiliser la méthode getObjectById
pour obtenir l'objet image et appeler sa méthode deleteObject
.
Voici une exemple de fonction qui supprime à la fois l'image et le marqueur personnalisé lors de l'ID d'image est fourni:
function deleteImage(imageId) {
var image = map.getObjectById(imageId);
var imageDiv;
if (image) {
image.deleteObject(); //delete the ammap image object
imageDiv = document.getElementById(imageId); //get the custom marker div
imageDiv.parentNode.removeChild(imageDiv); //remove it from the DOM
}
}
Demo - Cliquez sur les boutons pour supprimer le marqueur correspondant.
Merci beaucoup, c'est très utile –