כדי להשתמש בעיצוב מבוסס-נתונים לגבולות, צריך ליצור מזהה מפה. בשלב הבא, חייב ליצור סגנון מפה חדש, לבחור את שכבות מאפייני הגבולות הנדרשות, משייכים את הסגנון למזהה המפה.
יצירת מזהה מפה
mapID הוא מזהה ייחודי שמייצג מופע בודד של מפת Google. אפשר ליצור מזהי מפות ולעדכן סגנון שמשויך למזהה מפה בכל שלב במסוף Google Cloud.
יצירת סגנון מפה חדש
כדי ליצור סגנון מפה חדש, פועלים לפי ההוראות במאמר ניהול המפה סגנונות ליצירה את הסגנון. בסיום התהליך, משייכים את הסגנון למזהה המפה החדש שנוצר.
בחירת שכבות תצוגה
במסוף Google Cloud אתם יכולים לבחור אילו שכבות של תכונות יוצגו. הזה קובע אילו סוגי גבולות יופיעו במפה (לדוגמה, רשויות מוניציפאליות, וכו').
ניהול שכבות של תכונות
במסוף Google Cloud, עוברים אל 'סגנונות מפה'. דף
אם מוצגת הנחיה, בוחרים פרויקט.
בוחרים סגנון מפה.
לוחצים על התפריט הנפתח שכבות של תכונות כדי להוסיף או להסיר שכבות.
לוחצים על שמירה כדי לשמור את השינויים ולהפוך אותם לזמינים במפות.
עדכון הקוד של אתחול המפה
בשלב הזה, יש לשייך מזהה מפה לסגנון של תכונה אחת או יותר השכבות שהופעלו. כדי לאמת שמזהה המפה מוגדר בצורה נכונה ב: במסוף Cloud, כדאי לבדוק איך הוא מוגדר במפות Google ניהול.
Swift
// A map ID using a style with one or more feature layers enabled let mapID = GMSMapID(identifier: "YOUR_MAP_ID") let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7))
Objective-C
// A map ID using a style with one or more feature layers enabled GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]];
הוספת שכבות של ישויות למפה
כדי לקבל הפניה לשכבת פיצ'רים במפה, אפשר לקרוא
mapView.featureLayer(of:)
כשהמפה תופעל:
Swift
let layer = mapView.featureLayer(of: .locality)
Objective-C
GMSFeatureLayer*layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];
בדיקת יכולות המפה
סגנון מבוסס-נתונים לגבולות דורש יכולות שמופעלות
ומשויך למזהה מפה. מאחר שמזהי מפות כפופים ל
אפשר לקרוא ל-mapView.mapCapabilities
GMSMapView
כדי לבדוק אם יכולת מסוימת (לדוגמה
סגנון מבוסס-נתונים) זמין לפני שמפעילים אותו.
תוכלו גם לזהות שינויים ביכולות המפה על ידי הרשמה אל
GMSViewDelegate
בדוגמה הזו אפשר לראות איך משתמשים
כדי לבדוק את הדרישות של סגנון מבוסס-נתונים.
Swift
class SampleViewController: UIViewController { private lazy var mapView: GMSMapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)) override func loadView() { self.view = mapView mapView.delegate = self } } extension SampleViewController: GMSMapViewDelegate { func mapView(_ mapView: GMSMapView, didChange mapCapabilities: GMSMapCapabilityFlags) { if (!mapCapabilities.contains(.dataDrivenStyling)) { // Data-driven styling is *not* available, add a fallback. // Existing feature layers are also unavailable. } } }
Objective-C
@interface SampleViewController: UIViewController <GMSMapViewDelegate> @end @implementation SampleViewController - (void)loadView { GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]]; mapView.delegete = self; self.view = mapView; } - (void)mapView:(GMSMapView *)mapView didChangeMapCapabilities:(GMSMapCapabilityFlags)mapCapabilities { if (!(mapCapabilities & GMSMapCapabilityFlagsDataDrivenStyling)) { // Data-driven styling is *not* available, add a fallback. // Existing feature layers are also unavailable. } } @end