Maison >interface Web >js tutoriel >Comment effacer la superposition spécifiée à l'aide de l'API Baidu Maps ? Comment le faire spécifiquement ?

Comment effacer la superposition spécifiée à l'aide de l'API Baidu Maps ? Comment le faire spécifiquement ?

亚连
亚连original
2018-06-09 13:37:532083parcourir

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é)

Comment implémenter le code de vérification pour obtenir un effet de compte à rebours via l'applet WeChat

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn