עיצוב מפות חדש יתווסף בקרוב לפלטפורמה של מפות Google. העדכון הזה בסגנון המפה כולל לוח צבעים חדש שמוגדר כברירת מחדל ושיפורים בחוויית השימוש במפות ובנוחות השימוש. כל סגנונות המפה יעודכנו באופן אוטומטי במרץ 2025. אפשר לקרוא מידע נוסף על זמינות ועל האפשרות להצטרף בשלב מוקדם יותר במאמר בנושא סגנון מפה חדש לפלטפורמה של מפות Google.
בדף הזה תמצאו מדריך קצר לעיצוב המפה, בעזרת מצב לילה כדוגמה.
סקירה כללית
עם אפשרויות הסגנון ניתן להתאים אישית את התצוגה של
סגנונות מפה, שינוי התצוגה החזותית של תכונות כמו כבישים, פארקים,
עסקים ונקודות עניין אחרות. כלומר, אתם יכולים להדגיש
רכיבים מסוימים במפה או להפוך את המפה להשלמה לסגנון של
אפליקציה.
העיצוב פועל רק בסוג המפה kGMSTypeNormal.
המערכת מחילה סגנונות על המפה שלך
כדי להחיל סגנונות מפה מותאמים אישית על מפה, צריך להפעיל את GMSMapStyle(...) כדי ליצור מכונה של GMSMapStyle, ולהעביר כתובת URL של קובץ JSON מקומי או מחרוזת JSON שמכילה הגדרות של סגנונות. מקצים את המופע GMSMapStyle לנכס mapStyle של המפה.
שימוש בקובץ JSON
הדוגמאות הבאות מראות קריאה ל-GMSMapStyle(...) והעברת כתובת URL עבור
קובץ מקומי:
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
כדי להגדיר את אפשרויות הסגנון, צריך להוסיף קובץ חדש לפרויקט בשם style.json.
ומדביקים את הצהרת הסגנון הבאה של JSON בשביל עיצוב במצב לילה:
בדוגמאות הבאות מופיעות קריאה ל-GMSMapStyle(...) והעברת מחרוזת
resource:
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
כדי להגדיר את אפשרויות הסגנון, מדביקים את מחרוזת הסגנון הבאה כערך של
המשתנה kMapStyle:
במפות מעוצבות נעשה שימוש בשני מושגים כדי להחיל צבעים ושינויי סגנון אחרים
מפה:
סלקטורים מציינים את הרכיבים הגיאוגרפיים שאפשר להשתמש בהם
סגנון המפה. למשל כבישים, פארקים, גופי מים
נוספים, וגם את התוויות שלהן. הבוררים כוללים תכונות
ורכיבים, שצוינו כ-featureType וגם
elementType נכסים.
סטיילרים הם מאפייני צבע וחשיפה שאפשר להשתמש בהם
להחיל על רכיבי מפה. הם מגדירים את הצבע המוצג באמצעות
שילוב של ערכי גוון, צבע ובהירות/גמא.
כדי להגיע במהירות, אפשר להשתמש באשף עיצוב הפלטפורמה של מפות Google
כדי ליצור אובייקט מסוג JSON. ה-SDK של מפות Google ל-iOS תומך
הצהרות סגנון זהות לאלה של Maps JavaScript API.
דוגמאות קוד מלאות
מאגר ApiDemos ב-GitHub כולל
דוגמאות שמדגימות את השימוש בעיצוב.