الخطوات الأولى

اختَر النظام الأساسي: iOS JavaScript

لاستخدام تصميم مستند إلى البيانات للحدود، عليك إنشاء رقم تعريف خريطة. بعد ذلك، يجب عليك إنشاء نمط خريطة جديد، وتحديد طبقات عناصر الحدود المطلوبة، وربط النمط بمعرف الخريطة.

إنشاء معرّف خريطة

mapID هو معرّف فريد يمثّل مثيلاً واحدًا من خريطة Google. يمكنك إنشاء معرّفات الخرائط وتعديل نمط مرتبط بمعرّف الخريطة في أي وقت في Google Cloud Console.

لقطة شاشة لوحدة تحكم
Google Cloud

إنشاء نمط خريطة جديد

لإنشاء نمط خريطة جديد، اتّبِع التعليمات الواردة في إدارة أنماط الخرائط لإنشاء النمط. بعد الانتهاء، اربط النمط بمعرّف الخريطة الذي تم إنشاؤه حديثًا.

تحديد طبقات العناصر

في Google Cloud Console، يمكنك اختيار طبقات الميزات المطلوب عرضها. وهذا يحدد أنواع الحدود التي تظهر على الخريطة (مثل المناطق المحلية والولايات وما إلى ذلك).

إدارة طبقات العناصر

  1. في Google Cloud Console، انتقِل إلى صفحة "أنماط الخريطة".

  2. اختَر مشروعًا إذا طُلب منك ذلك.

  3. اختَر نمط خريطة.

  4. انقر على القائمة المنسدلة طبقات الميزات لإضافة طبقات أو إزالتها.

  5. انقر على حفظ لحفظ التغييرات وإتاحتها لخرائطك.

لقطة شاشة تعرض
القائمة المنسدلة.

تعديل رمز إعداد الخريطة

تتطلب هذه الخطوة ربط معرّف خريطة بنمط مع تفعيل طبقة ميزات واحدة أو أكثر. للتحقّق من إعداد معرّف الخريطة بشكل صحيح في Cloud Console، راجِع كيفية ضبطه ضمن إدارة الخرائط.

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 Console ومرتبطة بمعرّف خريطة. بما أنّ أرقام تعريف الخرائط عرضة للتغيير، يمكنك طلب 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