כדי להשתמש בעיצוב מבוסס-נתונים לגבולות, צריך ליצור מזהה מפה. בשלב הבא, חייב ליצור סגנון מפה חדש, לבחור את שכבות מאפייני הגבולות הנדרשות, משייכים את הסגנון למזהה המפה.
יצירת מזהה מפה
mapID הוא מזהה ייחודי שמייצג מופע בודד של מפת Google. אפשר ליצור מזהי מפות ולעדכן סגנון שמשויך למזהה מפה בכל שלב במסוף Google Cloud.
יצירת סגנון מפה חדש
כדי ליצור סגנון מפה חדש, פועלים לפי ההוראות במאמר ניהול סגנונות המפה. בסיום התהליך, משייכים את הסגנון למזהה המפה החדש שנוצר.
בחירת שכבות תצוגה
במסוף Google Cloud אפשר לבחור אילו שכבות תכונות יוצגו. הזה קובע אילו סוגי גבולות יופיעו במפה (לדוגמה, רשויות מוניציפאליות, וכו').
ניהול שכבות של תכונות
במסוף Google Cloud, עוברים אל 'סגנונות מפה'. דף
אם מוצגת הנחיה, בוחרים פרויקט.
בוחרים סגנון מפה.
לוחצים על התפריט הנפתח שכבות של תכונות כדי להוסיף או להסיר שכבות.
לוחצים על שמירה כדי לשמור את השינויים ולהפוך אותם לזמינים במפות.
עדכון הקוד של אתחול המפה
בשלב הזה צריך לשייך מזהה מפה לסגנון שבו שכבת תכונות אחת או יותר מופעלת. כדי לוודא שמזהה המפה מוגדר בצורה נכונה במסוף Cloud, בודקים את ההגדרה שלו בקטע ניהול מפות.
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