Heim  >  Artikel  >  Web-Frontend  >  Anzeige von Markierungen und Polylinien in der Baidu-Karte

Anzeige von Markierungen und Polylinien in der Baidu-Karte

php中世界最好的语言
php中世界最好的语言Original
2018-03-23 11:02:173186Durchsuche

Dieses Mal werde ich Ihnen die Vorsichtsmaßnahmen für die Anzeige von Markierungen und Polylinien in Baidu-Karten vorstellen.

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 Das Problem, die vorgesehene Abdeckung zu beseitigen, konnte nach Suche nicht gefunden werden. Durch meine eigenen Überlegungen habe ich einen Weg gefunden, dieses Problem zu lösen, und habe es gepostet, um es mit anderen zu teilen alle. 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 Traversierung alle Überlagerungen Um die zu entfernende Abdeckung zu filtern, können Sie beim Hinzufügen der Abdeckung Einschränkungen festlegen Wenn Sie ein Overlay verwenden möchten, legen Sie „disableMassClear()“ für Overlays fest, die nicht entfernt werden müssen. Das offizielle Website-Dokument erklärt Folgendes:

none verbietet das Entfernen von Overlays in der Karte.clearOverlays Methode Klar. (Neu hinzugefügt seit 1.1)

Ich muss hier keine Markierungen entfernen, daher sind die Einstellungen wie folgt:
disableMassClear()

Zweiter Schritt: Entfernen Sie die zu löschende Abdeckung. Hier müssen Sie die gesamte Polylinie entfernen, ohne die Markierung zu entfernen die gesamte Polylinie und behalten Sie sie bei. Schritt 3: Wenn die Markierung später entfernt werden muss, können Sie das Löschverbot aufheben >

marker.disableMassClear();

none ermöglicht das Löschen von Overlays in der Methode „map.clearOverlays“. (Neu seit 1.1) Jeder Marker muss jedoch wiederhergestellt werden, also muss er überquert werden:

Dadurch werden die löschbaren Operationen aller Überlagerungen wiederhergestellt.
map.clearOverlays();

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

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website! Empfohlene Lektüre:

vue.js implementiert ein einzelnes Popup-Feld
enableMassClear()

Detaillierte Erläuterung der Verwendung von Javascript Trie Präfixbaum
var allOverlay = map.getOverlays();
      for (var i = 0; i < allOverlay.length; i++) {
        allOverlay[i].enableMassClear();
      }

Das obige ist der detaillierte Inhalt vonAnzeige von Markierungen und Polylinien in der Baidu-Karte. 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