Maison >interface Web >js tutoriel >Afficher les marqueurs et les polylignes sur la carte Baidu
Cette fois, je vais vous apporter les précautions pour afficher les marqueurs et les polylignes dans les cartes Baidu. Jetons-les un coup d'œil ensemble une fois.
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 donc rencontré. le problème de l'effacement de la couverture désignée . Je n'ai pas trouvé de solution parfaite après recherche 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. tout le monde. Bon, venons-en au fait :
Il existe deux façons d'effacer les superpositions : map.removeOverlay() ou map.clearOverlays() Le 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. (Nouvellement ajouté depuis la version 1.1)
Je n'ai pas besoin de supprimer les marqueurs ici, donc les paramètres sont les suivants :
marker.disableMassClear();
Deuxième étape : effacez le revêtement à effacer. Ici, vous devez effacer toute la polyligne sans effacer le marqueur. Vous pouvez maintenant utiliser directement
map.clearOverlays();
. toute la polyligne et conservez-la.
Étape 3 : Lorsque le marqueur doit être supprimé ultérieurement, vous pouvez utiliser la méthode activateMassClear() pour annuler l'interdiction d'effacement
enableMassClear()none permet d'effacer les 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é. Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php ! Lecture recommandée :
vue.js implémente une boîte contextuelle unique
Explication détaillée de l'utilisation du trie javascript arbre de préfixes
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!