تسرد هذه الصفحة المشاكل المعروفة والحلول البديلة للخرائط المتّجهة وميزات WebGL.
المتصفّحات والأجهزة المتوافقة
تتوفّر معاينة ميزة WebGL على المتصفّحات والأجهزة نفسها التي تتوافق مع Maps JavaScript API. للتحقّق مما إذا كان المتصفّح على جهاز معيّن متوافقًا مع WebGL، يُرجى الانتقال إلى get.webgl.org أو caniuse.com. يُرجى أيضًا التأكّد من تفعيل ميزة "تسريع الأجهزة" في إعدادات المتصفّح، وإلا ستعود الخرائط المتّجهة إلى تنسيق النقطة.
تنسيق النقطة أو التنسيق المتّجه؟
في بعض الأحيان، قد تعود الخريطة المتّجهة إلى تنسيق النقطة. عند حدوث ذلك، لن تتوفّر الميزات التي تعتمد على الخريطة المتّجهة. قد يحدث الرجوع إلى خريطة نقطية لأسباب متنوعة. يوضِّح لك هذا القسم كيفية ضبط متصفّح الويب بشكلٍ صحيح، وكيفية التحقّق آليًا مما إذا كانت إمكانية استخدام الخريطة المتّجهة متاحة.
التحقّق من إمكانات المتصفّح على Chrome
لتحديد إمكانات تسريع الأجهزة المفعّلة في عملية تثبيت معيّنة من Chrome، انتقِل إلى chrome://gpu/، وتأكَّد من تفعيل العناصر التالية (باللون الأخضر):
- OpenGL: مفعَّلة
- WebGL: تسريع الأجهزة
- WebGL2: تسريع الأجهزة
(هذه مجرّد متطلبات أساسية، وقد تكون هناك عوامل أخرى تؤثر في التوافق، يُرجى الاطّلاع على "الأخطاء المعروفة" أدناه.)
تفعيل ميزة "تسريع الأجهزة"
لاستخدام الخرائط المتّجهة، يجب تفعيل ميزة "تسريع الأجهزة" في معظم المتصفّحات. لتفعيل ميزة "تسريع الأجهزة" في Chrome وMicrosoft Edge، افتح الإعدادات، واختَر النظام، وتأكَّد من تفعيل خيار استخدام ميزة "تسريع الأجهزة" عند توفرها.
- تعرّف على كيفية تغيير الإعدادات المفضّلة للمواقع الإلكترونية في Safari.
- تعرّف على إعدادات الأداء في Firefox.
التحقّق آليًا من تنسيق النقطة أو التنسيق المتّجه
يمكنك التحقّق آليًا مما إذا كانت الخريطة بتنسيق النقطة أو التنسيق المتّجه من خلال استدعاء 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 والتأكّد من تفعيل خيار "استخدام ميزة تسريع الأجهزة". - أدرِج رابطًا لرمز نموذجي jsfiddle في تقرير الخطأ.
- يُرجى أيضًا أخذ لقطة شاشة من
chrome://gpu(Chrome) أوabout:support(Firefox) أوedge://gpu(Microsoft Edge)، وإرفاق المعلومات ذات الصلة بوحدة معالجة الرسومات في تقرير الخطأ إذا واجهت أي مشاكل في العرض.
إطلاعنا على رأيك
نحن نقدّر ملاحظاتك وآراءك ونسعى جاهدين لتقديم أفضل تجربة خرائط متّجهة لك وللمستخدمين النهائيين. يُرجى إعلامنا في الحالات التالية:
- إذا رصدت أي أخطاء أو أعطال أو أخطاء JavaScript جديدة في تطبيقات الويب.
- إذا كان وقت بدء الخرائط المتّجهة أسوأ بكثير من وقت بدء الخرائط بتنسيق النقطة. في هذه الحالة، تكون مقاييس الانحدار في وقت بدء التشغيل مفيدة جدًا. نريد بشكل عام معرفة ما إذا كان وقت بدء التشغيل يتراجع إلى ما بعد الحدود المقبولة.
- إذا لم تكن تجربة الخرائط المتّجهة سلسة كما يجب. إذا كنت تسجِّل مقاييس عدد اللقطات في الثانية أو مقاييس إيقاف مؤقت لعرض واجهة المستخدم، كيف تتم مقارنتها بين الخرائط المتّجهة والخرائط النقطية؟
- إذا كان الأداء يختلف بشكل كبير حسب المتصفّح.
إذا كنت قد أعددت اختبار A/B لمقارنة الخرائط المتّجهة بالخرائط بتنسيق النقطة، يُرجى مشاركة أي ملاحظات تتلقّاها عن الأداء، لأنّها ستساعدنا كثيرًا في تحسين الميزة.