شروع به کار

پلاتفرم را انتخاب کنید: Android iOS JavaScript

برای استفاده از سبک‌بندی داده‌محور برای مرزها، باید شناسه نقشه ایجاد کنید. سپس باید سبک نقشه جدیدی ایجاد کنید، لایه‌های عارضه مرز موردنیاز را انتخاب کنید، و سبک را با شناسه نقشه مرتبط کنید.

ایجاد شناسه نقشه

mapID شناسه یکتایی است که نمونه واحدی از Google Map را نشان می‌دهد. هرزمان بخواهید می‌توانید در کنسول 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 camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)
let options = GMSMapViewOptions()
options.camera = camera
options.mapID = mapID
let mapView = GMSMapView(options: options)

آبجکتیو-سی

// A map ID using a style with one or more feature layers enabled

GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
options.mapID = mapID;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

افزودن لایه‌های عارضه به نقشه

برای دریافت مرجع لایه عارضه در نقشه، mapView.featureLayer(of:) را هنگام مقداردهی اولیه نقشه فراخوانی کنید:

Swift

let layer = mapView.featureLayer(of: .locality)

آبجکتیو-سی

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

بررسی قابلیت‌های نقشه

سبک‌بندی داده‌محور برای مرزها به قابلیت‌هایی نیاز دارد که در کنسول Google Cloud فعال شده‌اند و با شناسه نقشه مرتبط هستند. چون شناسه‌های نقشه ممکن است تغییر کنند، می‌توانید mapView.mapCapabilities را در GMSMapView فراخوانی کنید تا قبل‌از فراخوانی یک قابلیت خاص (مثلاً سبک‌بندی داده‌محور)، دردسترس بودن آن را درستی‌سنجی کنید.

همچنین می‌توانید با مشترک شدن در GMSViewDelegate، تغییرات در قابلیت‌های نقشه را شناسایی کنید. این مثال نحوه استفاده از پروتکل را برای بررسی الزامات سبک‌بندی داده‌محور نشان می‌دهد.

Swift

class SampleViewController: UIViewController {

  private lazy var mapView: GMSMapView = {
    let options = GMSMapViewOptions()
    options.mapID = GMSMapID(identifier: "YOUR_MAP_ID")
    options.camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)
    return GMSMapView(options: options)
  }()

  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.
    }
  }
}

آبجکتیو-سی

@interface SampleViewController: UIViewController <GMSMapViewDelegate>
@end

@implementation SampleViewController
- (void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  options.mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.delegate = 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