Heim  >  Artikel  >  Web-Frontend  >  So löschen Sie das angegebene Overlay in der Baidu-Karten-API

So löschen Sie das angegebene Overlay in der Baidu-Karten-API

小云云
小云云Original
2018-01-31 09:43:421992Durchsuche

Dieser Artikel teilt Ihnen hauptsächlich eine Methode zum Löschen des angegebenen Overlays (Overlay) basierend auf der Baidu Maps API mit. Es hat einen guten Referenzwert und ich hoffe, dass es für alle hilfreich sein wird. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.

Kürzlich habe ich an einem Projekt mit der Baidu Map API gearbeitet, bei dem ich Markierungen und Polylinien gleichzeitig auf der Karte anzeigen musste und Polylinien basierend auf Klicks angezeigt oder gelöscht werden mussten Ich bin auf das Problem gestoßen, bestimmte Überlagerungen zu löschen. Nach mehreren Suchvorgängen konnte ich keine perfekte Lösung finden. Ich habe einen Weg gefunden, dieses Problem zu lösen, und habe es gepostet, um es mit allen zu teilen. Okay, kommen wir zum Punkt:

Es gibt zwei Methoden zum Löschen von Overlays: „map.removeOverlay()“ oder „map.clearOverlays()“ entfernt alle Overlays auf einmal und „removeOverlay()“ entfernt Sie alle auf einmal, natürlich möchte ich jeweils eine Klasse von Polylinien-Overlays entfernen, keine der beiden Methoden funktioniert.

Baidu-Demo (http://developer.baidu.com/map/jsdemo.htm#c1_17) enthält ein Beispiel für removeOverlay() wie folgt:

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;
      }
    }
  }

erfolgt durch Traversierung Alle Überlagerungen Um die zu entfernende Abdeckung zu filtern, können Sie beim Hinzufügen einer Abdeckung Einschränkungen festlegen. ) für Overlays, die nicht entfernt werden müssen; die offizielle Website-Dokumentation erklärt wie folgt:

none verbietet das Löschen von Overlays in der Methode „map.clearOverlays“. (Hinzugefügt seit 1.1)

Ich muss die Markierung hier nicht entfernen, daher sind die Einstellungen wie folgt:
disableMassClear()

Schritt 2: Löschen Sie das zu löschende Overlay, das benötigt wird Hier löschen Um alle Polylinien zu entfernen, ohne Markierungen zu löschen, können Sie jetzt direkt

marker.disableMassClear();
verwenden. Auf diese Weise können Sie ganz einfach alle Polylinien löschen und dabei die Markierungen beibehalten Sie müssen die Markierungen später bearbeiten. Wenn Sie den Vorgang entfernen, können Sie die Methode „enableMassClear()“ verwenden, um das Löschverbot aufzuheben.

map.clearOverlays();
none ermöglicht das Löschen der Überlagerung in der Methode „map.clearOverlays“. (Neu seit 1.1)

Jeder Marker muss jedoch wiederhergestellt werden, also muss er überquert werden:

enableMassClear()
Dadurch werden die löschbaren Operationen aller Überlagerungen wiederhergestellt.

Eine einfache Einrichtung in drei Schritten kann die angegebene Art der Abdeckung effektiv betreiben.

Verwandte Empfehlungen:
var allOverlay = map.getOverlays();
      for (var i = 0; i < allOverlay.length; i++) {
        allOverlay[i].enableMassClear();
      }

Detaillierte Erklärung, wie man Overlay in Drupal 7 erweitert?


jquery tools series overlay learning_jquery

Overlay-Maskenebenencode unter jquery_jquery implementieren

Das obige ist der detaillierte Inhalt vonSo löschen Sie das angegebene Overlay in der Baidu-Karten-API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn