Mam niektóre GeoJSON zwrócił z wywołania do bazy danych PostGIS. Chciałbym móc dodać znacznik dla każdej funkcji i móc przełączać różne typy znaczników/funkcji. Obecnie używam JavaScriptu do generowania znaczników dla każdej funkcji, dodając je do tablic zgodnie z typem, a następnie przechodząc przez ustawienia tablic wyświetlaj/ukryj, aby przełączać "warstwy".Google map GeoJSON- przełącza warstwy znaczników?
Działa to dobrze, ale zastanawiam się, czy nowa funkcja GeoJSON oferuje lepszy sposób na zrobienie tego. O ile jednak widzę, wszystkie funkcje są dodawane do tych samych datalayerów, a przełączanie ich zestawów wymagałoby albo ustawiania stylów, albo tylko zastępowania nowymi, wstępnie przefiltrowanymi GeoJSON.
Pytanie brzmi więc, czy możliwe jest posiadanie więcej niż jednej warstwy danych, a także łatwe dodawanie/usuwanie ich z mapy, czy lepiej byłoby spojrzeć na coś w stylu OpenLayers?
EDYCJA: Nieco więcej badań pokazuje, że jest dość prosta.
Dla każdego typu funkcji w kolekcji obiektów, którą chcemy włączyć, utwórz nowy obiekt danych. Dodaj wszystkie odpowiednie funkcje do tego obiektu danych.
var datalayer = new google.maps.Data();
datalayer.addGeoJson(feature);
datalayer.setMap(mainmap);
Następnie przechowaj każdy obiekt danych/typ funkcji jako parę klucz-wartość. Na przełącznik, wyciągnij odpowiedni obiekt danych i setMap odpowiednio:
var datalayer= featuretypesobj["feature type to toggle"];
datalayer.setMap(mymap); //or
datalayer.setMap(null);