איך מתחילים?

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

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

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

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

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

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

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

בחירת שכבות של ישויות

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

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

  1. במסוף Google Cloud, נכנסים לדף 'סגנונות מפה'.

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

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

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

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

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

עדכון הקוד להפעלת המפה

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