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

إنشاء نمط خريطة جديد
لإنشاء نمط خريطة جديد، اتّبِع التعليمات الواردة في مقالة إدارة أنماط الخريطة لإنشاء النمط. بعد الانتهاء، اربط النمط بمعرّف الخريطة الذي تم إنشاؤه حديثًا.
اختيار طبقات العناصر
في Google Cloud Console، يمكنك اختيار طبقات العناصر التي تريد عرضها. يحدّد هذا النوع أنواع الحدود التي تظهر على الخريطة (على سبيل المثال، المناطق والولايات وما إلى ذلك).
إدارة طبقات العناصر
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة "أنماط الخريطة"
اختَر مشروعًا إذا طُلب منك ذلك.
اختَر نمط خريطة.
انقر على القائمة المنسدلة طبقات العناصر لإضافة طبقات أو إزالتها.
انقر على حفظ لحفظ التغييرات وإتاحتها لخرائطك.
تعديل رمز إعداد الخريطة
تتطلّب هذه الخطوة ربط معرّف خريطة بنمط تم تفعيل طبقة عناصر واحدة أو أكثر فيه. للتحقّق من إعداد معرّف الخريطة بشكل صحيح في Cloud Console، راجِع كيفية ضبطه ضمن إدارة الخرائط.
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)
Objective-C
// 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)
Objective-C
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. } } }
Objective-C
@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