איך מתחילים?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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