Ich habe GeoJSON von einem Aufruf an eine PostGIS-Datenbank zurückgegeben. Ich würde gerne in der Lage sein, für jedes Feature einen Marker hinzuzufügen und verschiedene Arten von Markern/Features umzuschalten. Derzeit verwende ich JavaScript, um für jedes Feature eine Markierung zu generieren, sie zu Arrays je nach Typ hinzuzufügen und dann die Array-Einstellung show/hide zu durchlaufen, um die "Ebenen" umzuschalten.Google Maps GeoJSON - Toggle-Marker-Layer?
Das funktioniert OK, aber ich frage mich, ob die neue GeoJSON-Funktionalität eine bessere Möglichkeit bietet, dies zu tun. Soweit ich das sehen kann, werden alle Features zum selben Datenlayer hinzugefügt und das Umschalten dieser Sets würde entweder das Setzen von Stilen oder das Ersetzen durch ein neues, vor-gefiltertes GeoJSON beinhalten.
Also die Frage ist, ist es möglich, mehr als eine Datenebene zu haben, und einfach hinzufügen/entfernen sie von der Karte oder bin ich besser dran, etwas wie OpenLayers zu betrachten?
EDIT: Etwas mehr Forschung zeigt, dass es ziemlich einfach ist.
Erstellen Sie für jeden Feature-Typ in der Feature-Sammlung, die aktiviert werden soll, ein neues Data-Objekt. Fügen Sie diesem Datenobjekt alle relevanten Funktionen hinzu.
var datalayer = new google.maps.Data();
datalayer.addGeoJson(feature);
datalayer.setMap(mainmap);
Speichern Sie dann jedes Datenobjekt/Feature-Typ als Schlüssel/Wert-Paar. Auf Knebel, ziehen Sie das entsprechende Datenobjekt und setMap entsprechend aus:
var datalayer= featuretypesobj["feature type to toggle"];
datalayer.setMap(mymap); //or
datalayer.setMap(null);