Je vais maintenant partager avec vous une méthode pour effacer la superposition spécifiée basée sur l'API Baidu Maps. Elle a une bonne valeur de référence et j'espère qu'elle sera utile à tout le monde.
Récemment, je travaillais sur un projet utilisant l'API Baidu Map. J'avais besoin d'afficher des marqueurs et des polylignes sur la carte en même temps, et les polylignes devaient être affichées ou effacées en fonction des clics. J'ai rencontré le problème de la suppression de la superposition spécifiée et je n'ai pas pu la trouver après diverses recherches. Grâce à ma propre réflexion, j'ai trouvé un moyen de résoudre ce problème et je l'ai publié pour le partager avec tout le monde. Bon, venons-en au fait :
Il existe deux façons d'effacer les superpositions : map.removeOverlay() ou map.clearOverlays() La méthode clearOverlays(). La méthode déplace les superpositions à la fois. En plus de toutes les superpositions, removeOverlay() supprime une superposition spécifiée à la fois. Évidemment, je souhaite supprimer un type de superposition de polylignes à la fois, et aucune des deux méthodes n'est applicable.
La démo Baidu (http://developer.baidu.com/map/jsdemo.htm#c1_17) contient un exemple de removeOverlay(), comme suit :
function deletePoint(){ var allOverlay = map.getOverlays(); for (var i = 0; i < allOverlay.length -1; i++){ if(allOverlay[i].getLabel().content == "我是id=1"){ map.removeOverlay(allOverlay[i]); return false; } } }
s'effectue en traversant toutes les superpositions Pour filtrer la couverture à supprimer ;
Pour un type de couverture à supprimer ; vous pouvez définir des restrictions lors de l'ajout de couverture
Étape 1 : Lors de l'ajout ; une superposition, définissez DisableMassClear() pour les superpositions qui n'ont pas besoin d'être supprimées ; le document du site officiel explique comme suit
disableMassClear()
aucun n'interdit de supprimer les superpositions dans la map.clearOverlays méthode Effacer. (Ajouté depuis la version 1.1)
Je n'ai pas besoin de supprimer les marqueurs ici, les paramètres sont donc les suivants :
marker.disableMassClear();
Étape 2 : Effacez ce que vous voulez pour effacer la couverture, vous devez ici effacer toute la polyligne sans effacer le marqueur. Vous pouvez maintenant utiliser directement
map.clearOverlays();
De cette façon, vous pouvez facilement effacer toute la polyligne et conserver la. marqueur;
Étape 3 : Lorsque vous devez supprimer le marqueur plus tard, vous pouvez utiliser la méthode activateMassClear() pour annuler l'interdiction d'effacement
enableMassClear()
aucun Autoriser l'effacement des superpositions dans la méthode map.clearOverlays. (Nouveau depuis la 1.1)
Cependant, chaque marqueur doit être restauré, il doit donc être parcouru :
var allOverlay = map.getOverlays(); for (var i = 0; i < allOverlay.length; i++) { allOverlay[i].enableMassClear(); }
Cela restaure les opérations effaçables de toutes les superpositions.
Une simple configuration en trois étapes peut faire fonctionner efficacement le type de revêtement spécifié.
J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.
Articles connexes :
Comment implémenter des requêtes inter-domaines ajax front-end et back-end
Ajax personnalisé prend en charge les cross- composants de domaine (tutoriel détaillé)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!