A breve su Google Maps Platform saranno disponibili nuovi stili di mappa. Questo aggiornamento dello stile della mappa include una nuova tavolozza dei colori predefinita e miglioramenti all'usabilità e alle esperienze delle mappe. Tutti gli stili di mappa verranno aggiornati automaticamente a marzo 2025. Per ulteriori informazioni sulla disponibilità e su come attivare la funzionalità in precedenza, consulta la sezione Nuovo stile di mappa per Google Maps Platform.
Questa pagina è una guida rapida allo stile della mappa, utilizzando come esempio la modalità notturna.
Panoramica
Con le opzioni di stile puoi personalizzare la presentazione degli stili standard delle mappe di Google, modificando la visualizzazione visiva di elementi come strade, parchi, attività commerciali e altri punti d'interesse. Ciò significa che puoi enfatizzare componenti specifici della mappa o fare in modo che la mappa si integri con lo stile della tua app.
Gli stili funzionano solo sul tipo di mappa kGMSTypeNormal.
Applicazione di stili alla mappa
Per applicare stili di mappa personalizzati a una mappa, chiama GMSMapStyle(...) per creare un'istanza GMSMapStyle, passando un URL per un file JSON locale o una stringa JSON contenente le definizioni di stile. Assegna l'istanza GMSMapStyle alla
proprietà mapStyle della mappa.
Utilizzo di un file JSON
I seguenti esempi mostrano la chiamata a GMSMapStyle(...) e il trasferimento di un URL per un
file locale:
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
Per definire le opzioni di stile, aggiungi un nuovo file al tuo progetto denominato style.json e incolla la seguente dichiarazione di stile JSON per gli stili in modalità notturna:
Gli esempi seguenti mostrano la chiamata a GMSMapStyle(...) e il trasferimento di una risorsa stringa:
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
Per definire le opzioni di stile, incolla la seguente stringa di stile come valore della
variabile kMapStyle:
Per applicare i colori e altre modifiche dello stile a una mappa, le mappe con stili si basano su due concetti:
I selettori specificano i componenti geografici a cui puoi
applicare uno stile sulla mappa. ad esempio strade, parchi, masse d'acqua e altro ancora, nonché le relative etichette. I selettori includono caratteristiche
e elementi, specificati come proprietà featureType e
elementType.
I Styler sono proprietà di colore e visibilità che puoi applicare agli elementi della mappa. Definiscono il colore visualizzato attraverso una
combinazione di valori di tonalità, colore e luminosità/gamma.
Utilizza la procedura guidata degli stili di Maps Platform per generare rapidamente un oggetto di stile JSON. Maps SDK for iOS supporta le stesse dichiarazioni di stile dell'API Maps JavaScript.
Esempi di codice completi
Il repository ApiDemos su GitHub include
esempi che mostrano l'utilizzo degli stili.