Nowy styl mapy będzie wkrótce dostępny w Google Maps Platform. Ta aktualizacja stylu mapy obejmuje nową domyślną paletę kolorów oraz ulepszenia ułatwiające obsługę i łatwość obsługi map. Wszystkie style mapy zostaną automatycznie zaktualizowane w marcu 2025 r. Więcej informacji o dostępności i sposobie włączania tej funkcji znajdziesz w artykule Nowy styl mapy w Google Maps Platform.
Na tej stronie znajdziesz krótki przewodnik po stylizowaniu mapy, w którym posłużymy się jako przykładem trybu nocnego.
Omówienie
Opcje stylu pozwalają dostosować wygląd standardowych reklam Google
style mapy, zmieniające wygląd obiektów, takich jak drogi, parki,
firmy i inne ciekawe miejsca. Oznacza to, że możesz skupić się na
określonych elementów mapy, lub sprawić,
że będzie ona współgrała ze stylem
.
Styl działa tylko w przypadku mapy typu kGMSTypeNormal.
Stosuję style do mapy
Aby zastosować niestandardowe style mapy do mapy, wywołaj GMSMapStyle(...) i utwórz
GMSMapStyle przez przekazanie adresu URL dla lokalnego pliku JSON lub kodu JSON
ciąg tekstowy zawierający definicje stylów. Przypisz instancję GMSMapStyle do
właściwość mapStyle mapy.
Za pomocą pliku JSON
Poniższe przykłady pokazują wywołanie metody GMSMapStyle(...) i przekazywanie adresu URL
plik lokalny:
Swift
importGoogleMapsclassMapStyling:UIViewController{// Set the status bar style to complement night-mode.overridevarpreferredStatusBarStyle:UIStatusBarStyle{return.lightContent}overridefuncloadView(){letcamera=GMSCameraPosition.camera(withLatitude:-33.86,longitude:151.20,zoom:14.0)letmapView=GMSMapView.map(withFrame:CGRect.zero,camera:camera)do{// Set the map style by passing the URL of the local file.ifletstyleURL=Bundle.main.url(forResource: "style",withExtension: "json"){mapView.mapStyle=tryGMSMapStyle(contentsOfFileURL:styleURL)}else{NSLog("Unabletofindstyle.json")}}catch{NSLog("Oneormoreofthemapstylesfailedtoload.\(error)")}self.view=mapView}}
Objective-C
#import "MapStyling.h"
@importGoogleMaps;@interfaceMapStyling()@end@implementationMapStyling// Set the status bar style to complement night-mode.-(UIStatusBarStyle)preferredStatusBarStyle{returnUIStatusBarStyleLightContent;}-(void)loadView{GMSCameraPosition*camera=[GMSCameraPositioncameraWithLatitude:-33.86longitude:151.20zoom:12];GMSMapView*mapView=[GMSMapViewmapWithFrame:CGRectZerocamera:camera];mapView.myLocationEnabled=YES;NSBundle*mainBundle=[NSBundlemainBundle];NSURL*styleUrl=[mainBundleURLForResource:@"style"withExtension:@"json"];NSError*error;// Set the map style by passing the URL for style.json.GMSMapStyle*style=[GMSMapStylestyleWithContentsOfFileURL:styleUrlerror:&error];if(!style){NSLog(@"Thestyledefinitioncouldnotbeloaded:%@",error);}mapView.mapStyle=style;self.view=mapView;}@end
Aby zdefiniować opcje stylu, dodaj do projektu nowy plik o nazwie style.json i wklej w nim następującą deklarację stylu w formacie JSON:
Poniższe przykłady pokazują wywoływanie funkcji GMSMapStyle(...) i przekazywanie ciągu znaków
zasób:
Swift
classMapStylingStringResource:UIViewController{letMapStyle= "JSON_STYLE_GOES_HERE"
// Set the status bar style to complement night-mode.overridevarpreferredStatusBarStyle:UIStatusBarStyle{return.lightContent}overridefuncloadView(){letcamera=GMSCameraPosition.camera(withLatitude:-33.86,longitude:151.20,zoom:14.0)letmapView=GMSMapView.map(withFrame:CGRect.zero,camera:camera)do{// Set the map style by passing a valid JSON string.mapView.mapStyle=tryGMSMapStyle(jsonString:MapStyle)}catch{NSLog("Oneormoreofthemapstylesfailedtoload.\(error)")}self.view=mapView}}
Objective-C
@implementationMapStylingStringResource// Paste the JSON string to use.staticNSString*constkMapStyle=@"JSON_STYLE_GOES_HERE";// Set the status bar style to complement night-mode.-(UIStatusBarStyle)preferredStatusBarStyle{returnUIStatusBarStyleLightContent;}-(void)loadView{GMSCameraPosition*camera=[GMSCameraPositioncameraWithLatitude:-33.86longitude:151.20zoom:12];GMSMapView*mapView=[GMSMapViewmapWithFrame:CGRectZerocamera:camera];mapView.myLocationEnabled=YES;NSError*error;// Set the map style by passing a valid JSON string.GMSMapStyle*style=[GMSMapStylestyleWithJSONString:kMapStyleerror:&error];if(!style){NSLog(@"Thestyledefinitioncouldnotbeloaded:%@",error);}mapView.mapStyle=style;self.view=mapView;}@end
Aby zdefiniować opcje stylu, wklej następujący ciąg stylu jako wartość
zmienną kMapStyle:
Stylizowane mapy używają 2 koncepcji do stosowania kolorów i innych zmian stylu do mapy:
Selektory określają komponenty geograficzne, które możesz
stylu na mapie. Są to drogi, parki, zbiorniki wodne,
i ich etykiety. Selektory zawierają funkcje.
i elementów w postaci featureType,
elementType usług.
Style to właściwości kolorów i widoczności, których możesz użyć
mają zastosowanie do elementów mapy. Definiują one wyświetlany kolor za pomocą
kombinacji barwy, koloru i jasności/gamma.
Szczegółowy opis tych atrybutów znajdziesz w dokumentacji stylu
Opcje stylu JSON.
Aby szybko skorzystać z kreatora stylu Maps Platform,
aby wygenerować obiekt stylu JSON. Pakiet Maps SDK na iOS obsługuje
tych samych deklaracji stylu co w Maps JavaScript API.
Pełne przykłady kodu
Repozytorium ApiDemos na GitHubie zawiera przykłady, które pokazują, jak używać stylów.