ترقية تطبيقك المزوّد لواجهة برمجة التطبيقات Maps JavaScript API من الإصدار 2 إلى الإصدار 3

لم يعُد الإصدار 2 من واجهة برمجة التطبيقات Maps JavaScript API متاحًا اعتبارًا من 26 أيار (مايو) 2021. نتيجةً لذلك، ستتوقّف خرائط الإصدار 2 من موقعك الإلكتروني عن العمل، وستُعرِض أخطاء JavaScript. لمواصلة استخدام الخرائط على موقعك الإلكتروني، عليك نقل البيانات إلى الإصدار 3 من واجهة برمجة التطبيقات لخدمة Maps JavaScript API. سيساعدك هذا الدليل خلال عملية التكامل.

نظرة عامة

ستكون عملية نقل البيانات مختلفة قليلاً في كل تطبيق، ولكن هناك بعض الخطوات المشتركة بين جميع المشاريع:

  1. الحصول على مفتاح جديد: تستخدم Google Maps JavaScript API الآن Google Cloud Console لإدارة المفاتيح. إذا كنت لا تزال تستخدم مفتاحًا من الإصدار 2، احرص على الحصول على مفتاح واجهة برمجة التطبيقات الجديد قبل بدء عملية نقل البيانات.
  2. تعديل ملف Bootstrap الخاص بواجهة برمجة التطبيقات ستحمِّل معظم التطبيقات واجهة برمجة التطبيقات Maps JavaScript API الإصدار 3 باستخدام الرمز التالي:
    <script src="//maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
  3. عدِّل الرمز. يعتمد مقدار التغيير المطلوب إلى حد كبير على تطبيقك. تشمل التغييرات الشائعة ما يلي:
    • يجب دائمًا الإشارة إلى مساحة الاسم google.maps. في الإصدار 3، يتم تخزين كل رمز Maps JavaScript API في google.maps.* بدلاً من مساحة الاسم الشاملة. تمت أيضًا إعادة تسمية معظم العناصر كجزء من هذه العملية. على سبيل المثال، بدلاً من GMap2، سيتم الآن تحميل google.maps.Map.
    • أزِل أي إشارات إلى الطرق القديمة. تمّت إزالة عددٍ من طرق الأدوات العامة، مثل GDownloadURL وGLog. استبدِل هذه الوظيفة بمكتبات أدوات تابعة لجهات خارجية، أو أزِل هذه الإشارات من الرمز البرمجي.
    • (اختياري) إضافة مكتبات إلى الرمز البرمجي تم نقل العديد من الميزات إلى مكتبات الأدوات لكي لا يحتاج كل تطبيق إلى تحميل سوى أجزاء واجهة برمجة التطبيقات التي سيتم استخدامها.
    • (اختياري) يمكنك ضبط مشروعك لاستخدام الإصدار 3 من ملفات externs. يمكن استخدام العناصر الخارجية في الإصدار 3 للمساعدة في التحقّق من صحة الرمز البرمجي باستخدام مجمّع Closure compiler، أو لتشغيل ميزة الإكمال التلقائي في بيئة تطوير البرامج المتكاملة. اطّلِع على مزيد من المعلومات عن الترجمة المتقدّمة والبرامج الخارجية.
  4. الاختبار والتكرار التحسيني: في هذه المرحلة، سيظل أمامك بعض العمل، ولكن الخبر السار هو أنّك ستكون على بُعد خطوة واحدة من إكمال تطبيق الخرائط الجديد بالإصدار 3.

التغييرات في الإصدار 3 من واجهة برمجة تطبيقات JavaScript لخرائط Google

قبل التخطيط لنقل البيانات، يجب تخصيص بعض الوقت لفهم الاختلافات بين الإصدار 2 من واجهة برمجة التطبيقات JavaScript لـ "خرائط Google" والإصدار 3 من واجهة برمجة التطبيقات JavaScript لـ "خرائط Google". تم كتابة أحدث إصدار من واجهة برمجة التطبيقات JavaScript لخرائط Google من الألف إلى الياء، مع التركيز على تقنيات برمجة JavaScript الحديثة وزيادة استخدام المكتبات وواجهة برمجة تطبيقات مبسّطة. تمت إضافة العديد من الميزات الجديدة إلى واجهة برمجة التطبيقات، وتغيّرت عدة ميزات مألوفة أو تمت إزالتها. يسلّط هذا القسم الضوء على بعض الاختلافات الرئيسية بين الإصدارَين.

تشمل بعض التغييرات في الإصدار 3 من واجهة برمجة التطبيقات ما يلي:

  • مكتبة أساسية مبسّطة تم نقل العديد من الدوال التكميلية إلى المكتبات، ما يساعد في تقليل أوقات التحميل والتحليل لواجهة برمجة التطبيقات Core API، ما يتيح تحميل خريطتك بسرعة على أي جهاز.
  • تحسين أداء عدّة ميزات، مثل عرض المضلّعات و مواضع العلامات
  • نهج جديد لتحديد حدود الاستخدام من جهة العميل لاستيعاب العناوين المشتركة التي تستخدمها وكيلان للأجهزة الجوّالة وجُدر الحماية للشركات بشكل أفضل
  • تمت إضافة توافق مع العديد من المتصفّحات الحديثة والمتصفّحات المتوافقة مع الأجهزة الجوّالة. تمت إزالة إمكانية استخدام متصفّح Internet Explorer 6.
  • تمّت إزالة العديد من فئات المساعدة للأغراض العامة ( GLog أو GDownloadUrl). تتوفّر اليوم العديد من مكتبات JavaScript الممتازة التي توفّر وظائف مشابهة، مثل Closure أو jQuery.
  • ميزة "التجوّل الافتراضي" المستندة إلى HTML5 والتي يمكن تحميلها على أي جهاز جوّال
  • إنشاء مشاهد بانورامية مخصّصة في "التجوّل الافتراضي" باستخدام صورك الخاصة، ما يتيح لك مشاركة مشاهد panoramic لمنحدرات التزلج أو المنازل المعروضة للبيع أو أماكن أخرى مثيرة للاهتمام
  • تخصيصات الخرائط المخصّصة التي تتيح لك تغيير طريقة عرض العناصر على الخريطة الأساسية لتتلاءم مع أسلوبك المرئي الفريد
  • إتاحة العديد من الخدمات الجديدة، مثل ElevationService وDistance Matrix
  • توفّر خدمات التنقّل المحسّنة مسارات بديلة، وتحسين المسارات (حلول تقريبية لمحاولة حلّ مشكلة بائع المتاجر)، واتجاهات ركوب الدراجات (مع طبقة ركوب الدراجات)، واتجاهات النقل العام، و الاتجاهات القابلة للسحب.
  • تنسيق معدَّل لنظام الترميز الجغرافي يقدّم معلومات نوع أكثر دقة مقارنةً بقيمة accuracy من الإصدار 2 من Geocoding API
  • إتاحة استخدام عدّة نوافذ معلومة في خريطة واحدة

ترقية طلبك

مفتاحك الجديد

يستخدم الإصدار 3 من Maps JavaScript API نظامًا جديدًا للمفاتيح مقارنةً بالإصدار 2. قد تكون تستخدم مفتاحًا من الإصدار 3 مع تطبيقك، وفي هذه الحالة، ليس عليك إجراء أي تغيير. للتحقّق من ذلك، تحقّق من عنوان URL الذي تحمّل منه واجهة برمجة التطبيقات JavaScript لخرائط Google بحثًا عن المَعلمة key. إذا كانت قيمة المفتاح تبدأ بـ "ABQIAA"، يعني ذلك أنّك تستخدِم مفتاحًا من الإصدار 2. إذا كان لديك مفتاح من الإصدار 2، عليك الترقية إلى مفتاح من الإصدار 3 كجزء من عملية نقل البيانات، ما سيؤدي إلى:

يتم تمرير المفتاح عند تحميل الإصدار 3 من واجهة برمجة تطبيقات JavaScript لخرائط Google. مزيد من المعلومات حول إنشاء مفاتيح واجهة برمجة التطبيقات

يُرجى العِلم أنّه إذا كنت أحد عملاء Google Maps APIs for Work، قد تستخدم معرّف عملاء مع المَعلمة client بدلاً من استخدام المَعلمة key. لا تزال أرقام تعريف العملاء متاحة في إصدار 3 من واجهة برمجة التطبيقات JavaScript لخرائط Google، ولا تحتاج إلى الخضوع لعملية ترقية المفاتيح.

تحميل واجهة برمجة التطبيقات

يتضمن التعديل الأول الذي عليك إجراؤه على الرمز البرمجي كيفية تحميل واجهة برمجة التطبيقات. في الإصدار 2، يتم تحميل واجهة برمجة تطبيقات JavaScript للخرائط من خلال طلب موجَّه إلى http://maps.google.com/maps. إذا كنت تحمّل الإصدار 3 من واجهة برمجة التطبيقات JavaScript لـ "خرائط Google"، عليك إجراء الخطوات التالية: التغييرات:

  1. تحميل واجهة برمجة التطبيقات من //maps.googleapis.com/maps/api/js
  2. أزِل المَعلمة file.
  3. عدِّل المَعلمة key باستخدام مفتاح الإصدار 3 الجديد. على عملاء Google Maps APIs for Work استخدام مَعلمة client.
  4. (الخطة المميّزة في "منصة خرائط Google" فقط) تأكَّد من إدخال المَعلمة client كما هو موضح في دليل المطوّر الخاص بالخطة المميّزة في "منصة خرائط Google".
  5. أزِل المَعلمة v لطلب أحدث إصدار تم طرحه أو غيِّر قيمتها وفقًا لنظام ترقيم الإصدار 3
  6. (اختياري) استبدِل المَعلمة hl ب language واحفظ قيمتها.
  7. (اختياري) أضِف مَعلمة libraries لتحميل مكتبات اختيارية.

في أبسط الحالات، سيحدِّد الإصدار 3 من أداة Bootstrap مَعلمة مفتاح واجهة برمجة التطبيقات فقط:

<script src="//maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>

يطلب المثال أدناه أحدث إصدار من واجهة برمجة التطبيقات JavaScript API v2 لتطبيق "خرائط Google" باللغة الألمانية:

<script src="//maps.google.com/maps?file=api&v=2.x&key=YOUR_API_KEY&hl=de"></script>

المثال أدناه هو طلب مكافئ للإصدار 3.

<script src="//maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&language=de"></script>

تقديم مساحة الاسم google.maps

من المحتمل أن يكون التغيير الأكثر بروزًا في الإصدار 3 من واجهة برمجة التطبيقات JavaScript لـ "خرائط Google" هو تقديم مساحة الاسم google.maps. تضع واجهة برمجة التطبيقات من الإصدار 2 جميع العناصر في مساحة الاسماء العامة تلقائيًا، ما قد يؤدي إلى تعارضات في التسمية. في الإصدار 3، يتمّ العثور على جميع العناصر ضمن مساحة الاسم google.maps.

عند نقل تطبيقك إلى الإصدار 3، عليك تغيير الرمز البرمجي ل الاستفادة من مساحة الاسم الجديدة. للأسف، لن يؤدي البحث عن "G" واستبداله بـ "google.maps" إلى حلّ المشكلة بالكامل، ولكن هذه قاعدة جيدة يمكن تطبيقها عند مراجعة الرمز البرمجي. في ما يلي بعض الأمثلة على الفئات المماثلة في الإصدار 2 والإصدار 3.

v2 v3
GMap2 google.maps.Map
GLatLng google.maps.LatLng
GInfoWindow google.maps.InfoWindow
GMapOptions google.map.MapOptions
G_API_VERSION google.maps.version
GPolyStyleOptions google.maps.PolygonOptions
or google.maps.PolylineOptions

إزالة الرموز القديمة

يتضمّن الإصدار 3 من واجهة برمجة التطبيقات JavaScript API لواجهة "خرائط Google" وظائف مماثلة لمعظم وظائف الإصدار 2، ولكن هناك بعض الفئات التي لم تعُد متوافقة. كجزء من عملية نقل البيانات، عليك استبدال هذه الفئات بمكتبات أدوات تابعة لجهات خارجية، أو إزالة هذه الإشارات من الرمز البرمجي. تتوفّر العديد من مكتبات JavaScript الممتازة التي توفّر وظائف مشابهة، مثل Closure أو jQuery.

لا تتوفّر فئات مماثلة للفئات التالية في الإصدار 3 من واجهة برمجة التطبيقات JavaScript لخرائط Google:

GBoundsGLanguage
GBrowserIsCompatibleGLayer
GControlGLog
GControlAnchorGMercatorProjection
GControlImplGNavLabelControl
GControlPositionGObliqueMercator
GCopyrightGOverlay
GCopyrightCollectionGPhotoSpec
GDownloadUrlGPolyEditingOptions
GDraggableObjectGScreenOverlay
GDraggableObjectOptionsGStreetviewFeatures
GFactualGeocodeCacheGStreetviewLocation
GGeoAddressAccuracyGStreetviewOverlay
GGeocodeCacheGStreetviewUserPhotosOptions
GGoogleBarGTileLayerOptions
GGoogleBarAdsOptionsGTileLayerOverlayOptions
GGoogleBarLinkTargetGTrafficOverlayOptions
GGoogleBarListingTypesGUnload
GGoogleBarOptionsGXml
GGoogleBarResultListGXmlHttp
GInfoWindowTabGXslt
GKeyboardHandler

رمز المقارنة

لنقارن بين تطبيقَين بسيطَين تم كتابتهما باستخدام واجهتَي برمجة التطبيقات v2 وv3.

<!DOCTYPE html>
<html>
  <head>
    <script src="//maps.google.com/maps?file=api&v=2&key=YOUR_API_KEY"></script>
    <style>
      html, body, #map { height: 100%; margin: 0; }
    </style>
    <script>
    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(
            document.getElementById('map'));
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        map.setUIToDefault();

        map.addOverlay(new GMarker(new GLatLng(37.4419, -122.1419)));

      }
    }
    </script>
  </head>
  <body onload="initialize()" onunload="GUnload()">
    <div id="map"></div>
  </body>
</html>
    
<!DOCTYPE html>
<html>
  <head>
    <script src="//maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
    <style>
      html, body, #map { height: 100%; margin: 0; }
    </style>
    <script>
    function initialize() {
      var map = new google.maps.Map(
        document.getElementById('map'), {
          center: new google.maps.LatLng(37.4419, -122.1419),
          zoom: 13,
          mapTypeId: google.maps.MapTypeId.ROADMAP
      });

      var marker = new google.maps.Marker({
            position: new google.maps.LatLng(37.4419, -122.1419),
            map: map
      });

    }
    google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <div id="map"></div>
  </body>
</html>
    

كما ترى، هناك عدة اختلافات بين التطبيقين. تشمل التغييرات البارزة ما يلي:

  • تم تغيير العنوان الذي يتم تحميل واجهة برمجة التطبيقات منه.
  • لم تعُد الطريقتان GBrowserIsCompatible() وGUnload() مطلوبتَين في الإصدار 3، وتمت إزالتهما من API.
  • تم استبدال العنصر GMap2 بأحد العناصر التالية: google.maps.Map كعنصر مركزي في واجهة برمجة التطبيقات.
  • يتم الآن تحميل المواقع من خلال فئات الخيارات. في المثال أعلاه، ضبطنا السمات الثلاث المطلوبة لتحميل خريطة، وهي center وzoom وmapTypeId ، من خلال عنصر MapOptions مضمّن.
  • يكون واجهة المستخدم التلقائية مفعَّلة تلقائيًا في الإصدار 3. يمكنك إيقاف هذه الميزة من خلال ضبط الخاصية disableDefaultUI على true في العنصر MapOptions.

ملخّص

في هذه المرحلة، ستكون قد تعرّفت على بعض النقاط الرئيسية المتعلّقة بعملية نقل البيانات من الإصدار 2 إلى الإصدار 3 من Maps JavaScript API. هناك المزيد من المعلومات التي قد تحتاج إلى معرفتها، ولكن ذلك يعتمد على طلبك. في الأقسام التالية، لقد أدرجنا تعليمات نقل البيانات لحالات معيّنة قد تواجهها. بالإضافة إلى ذلك، هناك العديد من المراجع التي قد تكون مفيدة لك أثناء عملية الترقية.

  • الإصدار 3 من واجهة برمجة تطبيقات JavaScript لخرائط Google مستندات المطوّرين هي أفضل مكان للاطّلاع على مزيد من المعلومات عن واجهة برمجة التطبيقات وطريقة عملها.
  • سيساعدك مرجع واجهة برمجة التطبيقات JavaScript API للإصدار 3 من "خرائط Google" في التعرّف على مزيد من المعلومات عن الفئات والطُرق الجديدة في الإصدار 3 من واجهة برمجة التطبيقات.
  • يُعدّ منتدى Stack Overflow مكانًا رائعًا لطرح الأسئلة المتعلقة بالرمز البرمجي. على الموقع الإلكتروني، تستخدم الأسئلة والإجابات المتعلّقة بواجهة برمجة التطبيقات JavaScript لخرائط Google العلامات 'google-maps' أو 'google-maps-api-3' .
  • على عملاء "الخطة المميّزة في منصة خرائط Google" الاطّلاع على مستندات "الخطة المميّزة في منصة خرائط Google".
  • مدوّنة Google Geo Developers هي طريقة رائعة للاطّلاع على آخر التغييرات التي طرأت على واجهة برمجة التطبيقات.

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

مرجع تفصيلي

يقدّم هذا القسم مقارنة تفصيلية بين الميزات الأكثر رواجًا في كل من الإصدارَين 2 و3 من واجهة برمجة التطبيقات JavaScript لخرائط Google. تم تصميم كل قسم من المرجع ليتم قراءته بشكلٍ فردي. ننصحك بعدم قراءة هذا المرجع بالكامل، ولكن بدلاً من ذلك، استخدِم هذه المادة لمساعدة عملية نقل البيانات على أساس كل حالة على حدة.

الفعاليات

يشبه نموذج الأحداث في الإصدار 3 من واجهة برمجة التطبيقات JavaScript لـ "خرائط Google" النموذج المستخدَم في الإصدار 2، على الرغم من أنّه حدثت تغييرات كثيرة في الخلفية.

عناصر التحكّم

تعرِض واجهة برمجة التطبيقات JavaScript لخرائط Google عناصر التحكّم في واجهة المستخدم التي تسمح للمستخدمين بالتفاعل مع خريطتك. يمكنك استخدام واجهة برمجة التطبيقات لتخصيص طريقة ظهور عناصر التحكّم هذه.

تراكبات

تعرض الطبقات الكائنات التي "تضيفها" إلى الخريطة لتحديد النقاط أو الخطوط أو المناطق أو مجموعات الكائنات.

أنواع الخرائط

تختلف أنواع الخرائط المتوفّرة في الإصدار 2 عن الإصدار 3 قليلاً، ولكن تتوفر جميع أنواع الخرائط الأساسية في كلا الإصدارَين من واجهة برمجة التطبيقات. تستخدم الإصدار 2 تلقائيًا مربّعات خريطة الطرق العادية "المرسومة". ومع ذلك، تتطلّب الإصدار 3 من google.maps.Map تحديد نوع خريطة معيّن عند إنشاء عنصر google.maps.Map.

الطبقات

الطبقات هي عناصر على الخريطة تتألف من ملف واحد أو أكثر من الملفات التي تظهر فوق بعضها. ويمكن التلاعب بها كوحدة واحدة، وتعكس بشكل عام مجموعات من العناصر.

الخدمات