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 na temat określania stylu mapy na przykładzie 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
aplikacji.
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
import GoogleMaps
class MapStyling: UIViewController {
// Set the status bar style to complement night-mode.
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override func loadView() {
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 14.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
do {
// Set the map style by passing the URL of the local file.
if let styleURL = Bundle.main.url(forResource: "style", withExtension: "json") {
mapView.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
} else {
NSLog("Unable to find style.json")
}
} catch {
NSLog("One or more of the map styles failed to load. \(error)")
}
self.view = mapView
}
}
Objective-C
#import "MapStyling.h"
@import GoogleMaps;
@interface MapStyling ()
@end
@implementation MapStyling
// Set the status bar style to complement night-mode.
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (void)loadView {
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.myLocationEnabled = YES;
NSBundle *mainBundle = [NSBundle mainBundle];
NSURL *styleUrl = [mainBundle URLForResource:@"style" withExtension:@"json"];
NSError *error;
// Set the map style by passing the URL for style.json.
GMSMapStyle *style = [GMSMapStyle styleWithContentsOfFileURL:styleUrl error:&error];
if (!style) {
NSLog(@"The style definition could not be loaded: %@", error);
}
mapView.mapStyle = style;
self.view = mapView;
}
@end
Aby określić opcje stylu, dodaj do projektu nowy plik o nazwie style.json.
i wklej tę deklarację stylu JSON dla stylu trybu nocnego:
Poniższe przykłady pokazują wywoływanie funkcji GMSMapStyle(...) i przekazywanie ciągu znaków
zasób:
Swift
class MapStylingStringResource: UIViewController {
let MapStyle = "JSON_STYLE_GOES_HERE"
// Set the status bar style to complement night-mode.
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override func loadView() {
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 14.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
do {
// Set the map style by passing a valid JSON string.
mapView.mapStyle = try GMSMapStyle(jsonString: MapStyle)
} catch {
NSLog("One or more of the map styles failed to load. \(error)")
}
self.view = mapView
}
}
Objective-C
@implementation MapStylingStringResource
// Paste the JSON string to use.
static NSString *const kMapStyle = @"JSON_STYLE_GOES_HERE";
// Set the status bar style to complement night-mode.
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (void)loadView {
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.myLocationEnabled = YES;
NSError *error;
// Set the map style by passing a valid JSON string.
GMSMapStyle *style = [GMSMapStyle styleWithJSONString:kMapStyle error:&error];
if (!style) {
NSLog(@"The style definition could not be loaded: %@", error);
}
mapView.mapStyle = style;
self.view = mapView;
}
@end
Aby zdefiniować opcje stylu, wklej następujący ciąg stylu jako wartość
zmienną kMapStyle:
W mapach stylizowanych kolory i inne zmiany stylu są stosowane do dwóch koncepcji.
mapa:
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.