Heim >Web-Frontend >js-Tutorial >Wie lösche ich das angegebene Overlay mithilfe der Baidu Maps API?
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 erhaltenDas 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!