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