Heim  >  Artikel  >  Web-Frontend  >  Wie lösche ich das angegebene Overlay mithilfe der Baidu Maps API?

Wie lösche ich das angegebene Overlay mithilfe der Baidu Maps API?

亚连
亚连Original
2018-06-09 13:37:532002Durchsuche

Im Folgenden werde ich Ihnen eine Methode zum Löschen des angegebenen Overlays basierend auf der Baidu Maps API vorstellen. Sie hat einen guten Referenzwert und ich hoffe, dass sie für alle hilfreich sein wird.

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 die Polylinien basierend auf Klicks angezeigt oder gelöscht werden mussten Ich bin auf das Problem beim Löschen des angegebenen Overlays gestoßen und konnte es nach mehreren Suchvorgängen nicht finden. Durch meine eigenen Überlegungen habe ich einen Weg gefunden, dieses Problem zu lösen, und es veröffentlicht, um es mit allen zu teilen. Okay, kommen wir zum Punkt:

Es gibt zwei Möglichkeiten, Overlays zu löschen: map.removeOverlay() oder map.clearOverlays() Die clearOverlays(). Mit der Methode „removeOverlay()“ werden die Überlagerungen auf einmal verschoben. Offensichtlich möchte ich jeweils nur eine Art von Polylinien-Überlagerung entfernen, und keine der beiden Methoden ist anwendbar.

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 Durchlaufen aller Überlagerungen Filtern Sie die zu entfernenden Überlagerungen.

Für eine Art von Überlagerungen können Sie beim Hinzufügen von Überlagerungen Einschränkungen festlegen Overlay: Legen Sie „disableMassClear()“ für Overlays fest, die nicht entfernt werden müssen. Das offizielle Website-Dokument erklärt Folgendes:

disableMassClear()
none verhindert, dass Overlays in der Methode „map.clearOverlays“ gelöscht werden. (Hinzugefügt seit 1.1)Ich muss die Markierung hier nicht entfernen, daher sind die Einstellungen wie folgt:

marker.disableMassClear();

Schritt 2: Löschen Sie das zu seinde Overlay entfernt, hier müssen Sie alle Polylinien löschen, ohne Markierungen zu löschen. Jetzt können Sie direkt

map.clearOverlays();
verwenden Schritt 3: Wenn die Markierung später entfernt werden muss, können Sie die Methode „enableMassClear()“ verwenden, um das Löschverbot aufzuheben.

enableMassClear()

none erlaubt die Überlagerung Wird in der Karte gelöscht. (Neu seit 1.1) Jeder Marker muss jedoch wiederhergestellt werden, also muss er überquert werden:

var allOverlay = map.getOverlays();
      for (var i = 0; i < allOverlay.length; i++) {
        allOverlay[i].enableMassClear();
      }
Dadurch werden die löschbaren Operationen aller Overlays wiederhergestellt.

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

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

So implementieren Sie domänenübergreifende Ajax-Front-End- und Back-End-Anfragen

Benutzerdefiniertes Ajax unterstützt Cross- Domänenkomponenten (ausführliches Tutorial)

So implementieren Sie einen Bestätigungscode, um einen Countdown-Effekt über das WeChat-Applet zu erhalten

Das obige ist der detaillierte Inhalt vonWie lösche ich das angegebene Overlay mithilfe der Baidu Maps 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