Na tej stronie dowiesz się, jak dodać zbiór danych do mapy i zastosować styl.
Wymagania wstępne
Zanim przejdziesz dalej, musisz mieć identyfikator mapy, styl mapy i identyfikator zbioru danych.
Powiązanie identyfikatora zbioru danych ze stylem mapy
Aby nadać styl elementom zbioru danych, zastosuj funkcję stylizacji do warstwy elementów zbioru danych na mapie. Warstwę obiektów zbioru danych tworzysz, gdy powiążesz zbiór danych ze stylem mapy.
Aby powiązać zbiór danych ze stylem mapy, którego używasz:
- W konsoli Google Cloud otwórz stronę Zbiory danych.
- Kliknij nazwę zbioru danych. Pojawi się strona Szczegóły zbioru danych.
- Kliknij kartę Podgląd.
- W sekcji Powiązane style mapy kliknij DODAJ STYL MAPY.
- Kliknij pola wyboru obok stylów mapy, które chcesz powiązać, a następnie kliknij ZAPISZ.
Stosowanie stylów do zbioru danych
Aby nadać styl cech warstwy zbioru danych, użyj funkcji stylizacji, która przyjmuje parametr GMSDatasetFeature
i zwraca parametr GMSFeatureStyle
, aby zdefiniować atrybuty stylu. Następnie ustaw właściwość style na zamknięcie stylizacji, które zawiera logikę stylizacji.
Funkcja stylizacji musi być deterministyczna i zwracać spójne wyniki po zastosowaniu. Jeśli zmienisz specyfikację stylizacji dowolnej funkcji, styl należy zastosować ponownie.
Ustawianie krzywizny, wypełnienia i promienia punktu
Podczas stylizowania funkcji w funkcji fabryki stylów możesz ustawić:
Kolor i przezroczystość kreski obramowania określone przez klasę
UIColor
. Wartością domyślną jest przezroczystość (UIColor.clearColor
).Szerokość obrysu w pikselach ekranu. Wartością domyślną jest 2.
Kolor wypełnienia i przezroczystość określone przez klasę
UIColor
. Wartość domyślna to przezroczystość (UIColor.clearColor
).Promień punktu elementu punktowego w zakresie od 0 do 128 pikseli.
Używanie prostych reguł stylów
Najprostszym sposobem nadawania stylów elementom jest definiowanie stałych atrybutów stylów, takich jak kolor, krycie i szerokość linii. Możesz zastosować opcje stylizacji obiektów bezpośrednio do warstwy obiektów w danych lub używać ich w połączeniu ze stylizacją niestandardową.
Swift
let mapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40.7, longitude: -74.0, zoom: 12)) let layer = mapView.datasetFeatureLayer(of: "YOUR_DATASET_ID") // Define a style with green fill and stroke. // Apply the style to all features in the dataset. layer.style = { feature in let style = MutableFeatureStyle() style.fillColor = .green.withAlphaComponent(0.1) style.strokeColor = .green style.strokeWidth = 2.0 return style }
Objective-C
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude: 40.7 longitude: -74.0 zoom:12]]; GMSDatasetFeatureLayer *layer = [mapView datasetFeatureLayerOfDatasetID:@"YOUR_DATASET_ID"]; // Define a style with green fill and stroke. // Apply the style to all features in the dataset. layer.style = ^(GMSDatasetFeature *feature) { GMSMutableFeatureStyle *style = [GMSMutableFeatureStyle style]; style.fillColor = [[UIColor greenColor] colorWithAlphaComponent:0.1]; style.strokeColor = [UIColor greenColor]; style.strokeWidth = 2.0; return style; };
Używanie deklaratywnych reguł stylu
Możesz deklaratywnie ustawiać reguły stylów na podstawie atrybutu funkcji i stosować je w całym zbiorze danych. Funkcja stylu funkcji może zwracać wartość nil
, na przykład jeśli chcesz, aby podzbiór funkcji pozostał niewidoczny.
Aby zwrócić wartość atrybutu zbioru danych dla cechy, użyj na przykład atrybutu GMSDatasetFeature.datasetAttributes
. Następnie możesz dostosować styl funkcji na podstawie jej atrybutów.
W tym przykładzie określamy wartość atrybutu „highlightColor” każdej cechy w danym zbiorze danych, aby kontrolować stylizację:
Swift
layer.style = { feature in var attributeColor: String = feature.datasetAttributes["highlightColor"] // Conditionalize styling based on the value of the "highlightColor" attribute. ... }
Objective-C
// Apply the style to a single dataset feature. layer.style = ^(GMSDatasetFeature *feature) { NSString *attributeColor = feature.datasetAttributes[@"highlightColor"]; // Conditionalize styling based on the value of the "highlightColor" attribute. ... };
Usuwanie stylizacji z warstwy
Aby usunąć stylizację z warstwy, ustaw wartość style
na null
:
Swift
layer.style = nil
Objective-C
layer.style = nil;
Możesz też zwrócić nil
z funkcji stylu funkcji, na przykład jeśli chcesz, aby podzbiór funkcji pozostał niewidoczny.