איך מתחילים?

בחירת פלטפורמה: iOS JavaScript

כדי להשתמש בעיצוב מבוסס-נתונים לגבולות, צריך ליצור מזהה מפה. בשלב הבא צריך ליצור סגנון מפה חדש, לבחור את השכבות הנדרשות של תכונות הגבולות ולשייך את הסגנון למזהה המפה.

יצירת מזהה מפה

mapID הוא מזהה ייחודי שמייצג מופע יחיד של מפת Google. במסוף Google Cloud תוכלו ליצור מזהי מפות ולעדכן סגנון המשויך למזהה המפה בכל שלב.

צילום מסך של מסוף
Google Cloud

יצירת סגנון מפה חדש

כדי ליצור סגנון מפה חדש, פועלים לפי ההוראות במאמר ניהול סגנונות מפה כדי ליצור את הסגנון. בסיום התהליך, משייכים את הסגנון למזהה המפה החדש שנוצר.

בחירת שכבות תצוגה

במסוף Google Cloud אתם יכולים לבחור אילו שכבות של תכונות יוצגו. כך קובעים אילו סוגי גבולות מופיעים במפה (לדוגמה, רשויות מוניציפאליות, מדינות וכו').

ניהול שכבות של תכונות

  1. במסוף Google Cloud, נכנסים לדף Map Styles.

  2. אם מוצגת הנחיה, בוחרים פרויקט.

  3. בוחרים סגנון מפה.

  4. לוחצים על התפריט הנפתח שכבות של תכונות כדי להוסיף או להסיר שכבות.

  5. לוחצים על שמירה כדי לשמור את השינויים ולהפוך אותם לזמינים במפות.

צילום מסך שבו
התפריט הנפתח.

עדכון הקוד של אתחול המפה

כדי לבצע את השלב הזה צריך לשייך מזהה מפה לסגנון שבו מופעלת שכבת מאפיינים אחת או יותר. כדי לוודא שמזהה המפה מוגדר בצורה נכונה במסוף 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];

בדיקת יכולות המפה

סגנון מבוסס-נתונים לגבולות דורש יכולות שמופעלות במסוף Google Cloud ומשויכות למזהה מפה. מכיוון שמזהי המפות עשויים להשתנות, תוכלו להפעיל את 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