الدعم

تسرد هذه الصفحة المشكلات المعروفة والحلول البديلة لخرائط المتجهات وميزات WebGL.

دعم المتصفّح/الجهاز

تتوافق معاينة ميزة WebGL مع المتصفحات والأجهزة نفسها التي تستخدمها واجهة برمجة تطبيقات JavaScript للخرائط. للتحقق مما إذا كان المتصفّح على جهاز معيّن سيتوافق مع WebGL، يمكنك الانتقال إلى get.webgl.org أو caniuse.com. يُرجى أيضًا التأكّد من تفعيل تسريع الأجهزة في إعدادات المتصفّح، وإلّا ستعود خرائط المتجهات إلى النقاط النقطية.

صورة نقطية أم متجه؟

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

التحقّق من إمكانات المتصفّح على Chrome

لتحديد إمكانات تسريع الأجهزة المفعّلة في عملية تثبيت معيّنة من Chrome، انتقل إلى chrome://gpu/، وتأكد من تمكين العناصر التالية (باللون الأخضر):

  • "OpenGL: مفعَّل"
  • WebGL: تسريع الأجهزة"
  • WebGL2: تسريع الأجهزة"

(هذه مجرد متطلبات أساسية، ويمكن أن تكون هناك عوامل أخرى تؤثر في الدعم، ويمكنك الاطّلاع على قسم "الأخطاء المعروفة" أدناه).

تفعيل ميزة "تسريع الأجهزة"

لدعم خرائط المتجه، يجب تفعيل تسريع الأجهزة في معظم المتصفحات. لتفعيل ميزة "تسريع الأجهزة" في Chrome وMicrosoft Edge، افتح الإعدادات واختَر النظام وتأكَّد من تفعيل الخيار استخدام تسريع الأجهزة عند توفّره.

التحقق آليًا من الصورة النقطية أو المتجهة

يمكنك التحقّق آليًا لمعرفة ما إذا كانت الخريطة نقطية أو متجهة، من خلال استدعاء map.getRenderingType(). يعرض المثال التالي رمزًا برمجيًا لمراقبة حدث renderingtype_changed، كما يعرض نافذة معلومات تعرض ما إذا كانت خريطة نقطية أو خريطة متجهية قيد الاستخدام.

TypeScript

/**
 * This example creates a map with an info window that shows whether
 * the map render type is raster or vector.
 */

 function initMap() {
    const center = {lat: 0, lng: 0};
    const map = new google.maps.Map(document.getElementById('map') as HTMLElement, {
      center,
      zoom: 10,
      heading: 0.0,
      tilt: 0.0,
      // Map ID for a vector map.
      mapId: '6ff586e93e18149f',
    });
    const canvas = document.createElement("canvas");
    const infoWindow = new google.maps.InfoWindow({
      content: '',
      ariaLabel: 'Raster/Vector',
      position: center,
    });
    infoWindow.open({
      map,
    });

    map.addListener('renderingtype_changed', () => {
      infoWindow.setContent(`${map.getRenderingType()}`);
    });
  }

  declare global {
    interface Window {
      initMap: () => void;
    }
  }
  window.initMap = initMap;

JavaScript

/**
 * This example creates a map with an info window that shows whether
 * the map render type is raster or vector.
 */
function initMap() {
  const center = { lat: 0, lng: 0 };
  const map = new google.maps.Map(document.getElementById("map"), {
    center,
    zoom: 10,
    heading: 0.0,
    tilt: 0.0,
    // Map ID for a vector map.
    mapId: "6ff586e93e18149f",
  });
  const canvas = document.createElement("canvas");
  const infoWindow = new google.maps.InfoWindow({
    content: "",
    ariaLabel: "Raster/Vector",
    position: center,
  });

  infoWindow.open({
    map,
  });
  map.addListener("renderingtype_changed", () => {
    infoWindow.setContent(`${map.getRenderingType()}`);
  });
}

window.initMap = initMap;

يمكنك أيضًا استخدام سياق عرض WebGL للتحقق من التوافق مع WebGL 2:

const canvas = document.createElement("canvas");
canvas.getContext("webgl2") ? console.log("WebGL 2 is supported") : console.log("WebGL 2 is NOT supported");

تعرَّف على طرق أخرى لاكتشاف سياق عرض WebGL آليًا.

دعم الويب على الأجهزة الجوّالة

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

Bugs

الأخطاء المعروفة

  • هناك مشكلة معروفة في Chrome على بعض الأجهزة التي تعمل بنظام التشغيل macOS التي تحتوي على وحدات معالجة رسومات AMD. ويمكن أن يكون ذلك مربكًا بشكل خاص عندما يبدِّل نظام التشغيل macOS ديناميكيًا بين وحدات معالجة الرسومات على الأجهزة المزوّدة بوحدات معالجة رسومات متعدّدة، لذلك قد لا تتوفّر خرائط المتّجهات استنادًا إلى التطبيقات الأخرى قيد التشغيل أو ما إذا تم توصيل شاشة خارجية. يبدو أنّ تشغيل الواجهة الخلفية القادمة لـ ANGLE Metal في Chrome يؤدي إلى حلّ هذه المشكلة في بعض الحالات. يمكنك اتّباع خطط الطرح العامة لإجراء ذلك على الرابط https://bugs.chromium.org/p/chromium/issues/detail?id=1322521.

الإبلاغ عن الأخطاء

  • يُرجى تحديث المتصفّح وبرنامج تشغيل وحدة معالجة الرسومات إلى أحدث إصدار قبل الإبلاغ عن الخطأ.
  • تأكَّد من تفعيل إعدادات تسريع الأجهزة على chrome://settings/system (Chrome) أو about:preferences#general (Firefox) أو edge://settings/system (Microsoft Edge). في Safari، يتم تفعيل هذا الإعداد تلقائيًا في الإصدار 10.15 من نظام التشغيل macOS أو الإصدارات الأحدث. بالنسبة إلى الإصدارات الأقدم من نظام التشغيل MacOS، يُرجى الانتقال إلى الإعدادات المتقدمة في Safari والتأكّد من تفعيل الخيار "Use hardware acceleration" (استخدام تسريع الأجهزة).
  • ضمِّن رابط رمز jsfiddle النموذجي في تقرير الخطأ.
  • يُرجى أيضًا أخذ لقطة شاشة من chrome://gpu (Chrome) أو about:support (Firefox) أو edge://gpu (Microsoft Edge)، وإرفاق المعلومات المتعلقة بوحدة معالجة الرسومات في تقرير الخطأ، إذا واجهت أي مشاكل في العرض.

إطلاعنا على رأيك

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

  • إذا اكتشفت أي أخطاء أو أخطاء/أعطال جديدة في JavaScript في تطبيقات الويب لديك.
  • وقت استجابة بدء التشغيل لخرائط المتجهات أسوأ بكثير من ذلك في الخرائط النقطية. وفي هذه الحالة، تكون مقاييس انحدار وقت استجابة بدء التشغيل مفيدة جدًا. بشكلٍ عام، نريد معرفة ما إذا كان وقت استجابة بدء التشغيل يتراجع إلى أكثر من الحدود المقبولة.
  • تجربة خرائط المتجهات ليست سلسة كما يمكن أن تكون. إذا قمت بتسجيل مقاييس FPS أو البيانات غير الناجحة، فكيف تقارن بين خرائط المتجهات والنقاط النقطية؟
  • يختلف الأداء بشكل كبير حسب المتصفح.

إذا كنت قد أعددت اختبار A/B للمقارنة بين الخرائط المتجهة والخرائط النقطية، يرجى مشاركة أي تعليقات على الأداء تحصل عليها، حيث سيكون ذلك مفيدًا جدًا لمساعدتنا في تحسين الميزة.