Mapbox-GL setStyle entfernt Ebenen

8

Ich erstelle eine Mapping-Webanwendung mit Mapbox-GL. Es hat viele coole Features. Ich habe die Schaltflächen zum Wechseln der Basiskarten (z. B. Satellit, Gelände usw.) eingerichtet, die dem Beispiel auf der Mapbox-Website .

Das Problem, das ich habe, ist, dass wenn ich den Stil ändere, er meine Polygone entfernt, die als Ebenen geladen werden und die Map neu laden. Ich lade Polygone aus einer Mongo-Datenbank als Layer basierend auf Benutzerabfragen ein. Ich möchte in der Lage sein, die Basiskarte zu ändern und diese Ebenen beizubehalten.

Gibt es eine Möglichkeit, den Stil zu ändern, ohne die Karte neu zu laden oder zumindest die Ebenen nicht zu löschen?

Hier ist mein Code für den Switcher, es ist der gleiche wie im Beispiel, aber ich habe eine Bedingung für einen benutzerdefinierten Stil hinzugefügt:

%Vor%     
ngust 23.03.2016, 02:15
quelle

1 Antwort

10

Hier ist ein Beispiel, das zeigt: Ссылка

Im Gegensatz zu einer Mapping-Bibliothek wie Leetlet hat Mapbox GL JS kein Konzept von "Grundkarte" im Vergleich zu "anderen Layern". Alle Ebenen sind Teil derselben Entität: der Stil. Sie müssen also den Status der Datenschicht beibehalten und bei jeder Änderung ihre Quelle / addLayer aufrufen.

    
tristen 23.03.2016, 03:49
quelle