البدء

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

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

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

لإنشاء رقم تعريف خريطة جديد، اتّبِع الخطوات الواردة في مقالة تخصيص Cloud. اضبط نوع الخريطة على JavaScript، واختَر الخيار Vector. ضَع علامة في المربّع بجانب الإمالة و/أو التدوير لتفعيل الإمالة والدوران على الخريطة. إذا كان استخدام الميل أو الاتجاه سيؤثّر سلبًا في تطبيقك، اترك مربّعَي الاختيار الميل و الدوران غير محدَّدين حتى لا يتمكّن المستخدمون من ضبط الميل والدوران.

إنشاء معرّف الخريطة المتجهّة

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

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

تحديد طبقات الميزات

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

إدارة طبقات الميزات

  1. في "وحدة تحكّم واجهة برمجة التطبيقات من Google"، انتقِل إلى صفحة "أنماط الخرائط".
  2. اختَر مشروعًا إذا طُلب منك ذلك.
  3. اختَر نمط الخريطة.
  4. انقر على القائمة المنسدلة طبقات الميزات لإضافة طبقات أو إزالتها.
  5. انقر على حفظ لحفظ التغييرات وإتاحتها لخرائطك.

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

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

يتطلب هذا معرّف الخريطة الذي أنشأته للتو. يمكنك العثور عليه في صفحة إدارة "خرائط Google".

  1. حمِّل واجهة برمجة التطبيقات JavaScript API لتطبيق "خرائط Google" عن طريق إضافة أداة تحميل bootstrap المضمّنة إلى رمز تطبيقك، كما هو موضّح في المقتطف التالي:
<script>
  (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
    key: "YOUR_API_KEY",
    v: "weekly",
    // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.).
    // Add other bootstrap parameters as needed, using camel case.
  });
</script>
  1. قدِّم معرّف خريطة عند إنشاء مثيل للخريطة باستخدام السمة mapId. يجب أن يكون هذا هو رقم تعريف الخريطة الذي أعددته باستخدام نمط خريطة تم تفعيل ملفاته المميزة.

    map = new
    google.maps.Map(document.getElementById('map'), {
      center: {lat: -34.397, lng: 150.644},
      zoom: 8,
      mapId: 'MAP_ID' // A map ID using a style with one or more feature layers enabled.
    });

اطّلِع على مزيد من المعلومات عن تحميل واجهة برمجة التطبيقات Maps JavaScript API.

إضافة طبقات عناصر إلى خريطة

للحصول على مرجع لطبقة عناصر على خريطتك، يمكنك استدعاء map.getFeatureLayer() عند بدء تشغيل الخريطة:

function initMap() {
  map = new google.maps.Map(document.getElementById("map"), {
    center: { lat: 20.773, lng: -156.01 },
    zoom: 12,
    mapId: 'MAP_ID',
  });

  // Add a feature layer for localities.
  localityLayer = map.getFeatureLayer('LOCALITY');
  ...
}

الاطّلاع على إمكانات الخريطة

يتطلب النمط المستند إلى البيانات للحدود إمكانيات يتم تفعيلها في وحدة التحكم في Google API، ومرتبطة بمعرّف خريطة. بما أنّ أرقام تعريف الخرائط مؤقتة وقابلة للتغيير، يمكنك استدعاء map.getMapCapabilities() للتحقّق مما إذا كانت ميزة معيّنة (مثل التصميم المستنِد إلى البيانات) متوفرة قبل استدعائها. وتكون هذه العملية اختيارية.

يوضح المثال التالي إضافة مستمع للاشتراك في تغييرات إمكانات الخريطة:

// subscribe to changes
map.addListener('mapcapabilities_changed', () => {
  const mapCapabilities = map.getMapCapabilities();

  if (!mapCapabilities.isDataDrivenStylingAvailable) {
    // Data-driven styling is *not* available, add a fallback.
    // Existing feature layers are also unavailable.
  }
});

الخطوات التالية