دليل التحسين

يصف هذا الدليل العديد من الاستراتيجيات لتحسين استخدام واجهات Google Maps API من حيث الأمان والأداء والاستهلاك.

الأمان

مراجعة أفضل الممارسات المتعلقة بالأمان

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

استخدام مفاتيح واجهة برمجة التطبيقات للوصول إلى واجهات برمجة تطبيقات الخرائط

مفاتيح واجهة برمجة التطبيقات هي طريقة المصادقة المفضّلة للوصول إلى واجهات برمجة تطبيقات Google Maps API. إنّ استخدام معرّفات العملاء لا يزال متاحًا حاليًا، فمفاتيح واجهة برمجة التطبيقات توفّر عناصر تحكّم أكثر دقة في الأمان ويمكن ضبطها للعمل مع عناوين ويب وعناوين IP وحِزم تطوير برامج (SDK) متوافقة مع الأجهزة الجوّالة (Android وiOS). للحصول على معلومات حول إنشاء مفتاح واجهة برمجة تطبيقات وتأمينه، انتقِل إلى صفحة "استخدام مفتاح واجهة برمجة التطبيقات" لكل واجهة برمجة تطبيقات أو حزمة تطوير برامج (SDK). (على سبيل المثال، بالنسبة إلى واجهة برمجة تطبيقات JavaScript لـ "خرائط Google"، انتقِل إلى صفحته على استخدام مفتاح واجهة برمجة تطبيقات).

الأداء

استخدام خوارزمية الرقود الأسي لمعالجة الأخطاء

إذا كانت تطبيقاتك تواجه أخطاء من المحاولات المفرطة لاستدعاء واجهة برمجة تطبيقات خلال فترة زمنية قصيرة، مثل أخطاء QPS، يمكنك استخدام العودة الأسية للسماح بمعالجة الطلبات.

وتُعدّ ميزة التراجع الأسي أكثر فائدة بالنسبة إلى الأخطاء في خمسينيات القرن العشرين. ولمزيد من المعلومات، يمكنك الاطّلاع على التعامل مع رموز حالة عرض HTTP.

على وجه التحديد، اضبط وتيرة طلبات البحث. في الرمز، أضِف فترة انتظار مدتها S ثانية بين طلبات البحث. وإذا استمر طلب البحث في حدوث خطأ في الثانية، سيتم مضاعفة فترة الانتظار ثم إرسال طلب بحث آخر. يُرجى مواصلة ضبط فترة الانتظار إلى أن يعرض طلب البحث بدون خطأ.

إرسال طلبات تفاعل المستخدمين عند الطلب

يجب إرسال الطلبات إلى واجهات برمجة التطبيقات التي تتضمن تفاعل المستخدم فقط عند الطلب. وهذا يعني انتظار المستخدم النهائي تنفيذ إجراء (مثل on-click) لبدء طلب البيانات من واجهة برمجة التطبيقات، ثم استخدام النتائج لتحميل خريطة أو ضبط وجهة أو عرض معلومات مناسبة. ويجنّب استخدام نهج الطلب الطلبات غير الضرورية لواجهات برمجة التطبيقات، ما يقلّل من استهلاك واجهة برمجة التطبيقات.

تجنُّب عرض محتوى يظهر على سطح الفيديو أثناء تحريك الخريطة

تجنَّب استخدام Draw() لعرض محتوى مُركَّب مخصَّص على خريطة في الوقت نفسه الذي قد يكون فيه المستخدم ينقل الخريطة. وبما أنّه يتم إعادة رسم الخريطة في كل مرة ينقل المستخدم الخريطة، يمكن أن يؤدي وضع محتوى يظهر على سطح الفيديو في الوقت نفسه إلى حدوث تأخير أو تداخل. لا تضِف المحتوى الذي يظهر على سطح الفيديو أو أزِله من الخريطة إلا بعد أن يوقف المستخدم العرض الشامل أو التكبير أو التصغير.

تجنُّب العمليات المكثّفة باستخدام Draw طريقة

وكقاعدة عامة، من الممارسات تجنّب العمليات التي لا تتطلّب رسمًا بيانيًا والمكثفة الأداء بطريقة Draw(). على سبيل المثال، تجنَّب ما يلي في رمز طريقة Draw():

  • طلبات البحث التي تعرض كمية كبيرة من المحتوى
  • العديد من التغييرات على البيانات التي يتم عرضها.
  • معالجة العديد من عناصر نموذج كائن المستند (DOM)

ويمكن أن تؤدي هذه العمليات إلى إبطاء الأداء وتقديم تأخر أو تداخل بصري مرئي عند عرض الخريطة.

استخدام الصور النقطية للعلامات

استخدم صورًا نقطية، مثل صور بتنسيق PNG .أو JPG.، عند إضافة علامات لتحديد موقع على الخريطة. تجنَّب استخدام صور موجّهة يمكن تغيير حجمها (SVG)، لأنّ عرض صور SVG يمكن أن يؤدي إلى حدوث تأخير عند إعادة رسم الخريطة.

علامات التحسين

يعمل التحسين على تحسين الأداء من خلال عرض العديد من العلامات كعنصر ثابت واحد. ويكون ذلك مفيدًا في الحالات التي يكون فيها عدد كبير من العلامات مطلوبًا. ستحدد واجهة برمجة تطبيقات JavaScript للخرائط تلقائيًا ما إذا كان سيتم تحسين محدِّد الموقع أم لا. عندما يكون هناك عدد كبير من العلامات، ستحاول واجهة برمجة تطبيقات JavaScript للخرائط عرض العلامات مع التحسين. لا يمكن تحسين بعض العلامات، ولكن في بعض الحالات، قد تحتاج واجهة برمجة تطبيقات JavaScript للخرائط إلى عرض العلامات بدون التحسين. إيقاف العرض المحسّن لملفات GIF أو PNG المتحركة، أو عند عرض كل علامة كعنصر DOM منفصل

إنشاء مجموعات لإدارة عرض العلامات

للمساعدة في إدارة عرض العلامات لتحديد المواقع على الخريطة، يمكنك إنشاء مجموعة علامات باستخدام مكتبة مجموعة العلامات. تتضمّن مكتبة مجموعة علامات الخيارات خيارات تتعلّق بما يلي:

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

الاستهلاك

لتخطيط ميزانيتك والتحكّم في التكاليف، يُرجى تنفيذ ما يلي:

  • إعداد تنبيه بشأن الميزانية لتتبُّع كيفية زيادة تكاليفك ضمن مبلغ محدّد لا يؤدي ضبط ميزانية إلى الحدّ من استخدام واجهة برمجة التطبيقات، ولكنّه ينبهك فقط عندما تقترب تكاليفك من المبلغ المحدّد.
  • تحديد الاستخدام اليومي لواجهة برمجة التطبيقات لإدارة تكاليف واجهات برمجة التطبيقات القابلة للفوترة من خلال ضبط الحدود القصوى على الطلبات في اليوم، يمكنك الحد من تكاليفك. استخدِم معادلة بسيطة لتحديد الحدّ الأقصى اليومي، استنادًا إلى المبلغ الذي تريد إنفاقه: (التكلفة الشهرية السعر لكل )/30 = الحدّ الأقصى لعدد الطلبات في اليوم (لواجهة برمجة تطبيقات واحدة). قد تستخدم عملية التنفيذ المُحدَّدة واجهات برمجة تطبيقات متعددة قابلة للفوترة، لذا يُرجى تعديل المعادلة حسب الحاجة. يتم توفير رصيد بقيمة 200 دولار أمريكي في Google Maps API كل شهر، لذا يُرجى أخذ ذلك في الاعتبار عند احتساب حساباتك.
  • استخدِم مشاريع متعددة لفصل الاستخدام وتحديد أولويته وتتبُّعه. على سبيل المثال، لنفترض أنك تستخدم بانتظام واجهات برمجة تطبيقات "منصة خرائط Google" في اختباراتك. ومن خلال إنشاء مشروع منفصل لاختبارك، باستخدام حصصه الخاصة ومفاتيح واجهة برمجة التطبيقات، يمكنك إجراء اختبار شامل مع الحماية من الإنفاق المفاجئ.

إدارة الاستهلاك في "خرائط Google"

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

استخدام الصور الثابتة

إنّ تكلفة الطلبات التي تستخدم الصور الديناميكية ("الخرائط الديناميكية" و"التجوّل الافتراضي") تبلغ أكثر من التكلفة الواردة في "الخرائط الثابتة" و"التجوّل الافتراضي الثابت". إذا كنت لا تتوقع تفاعل المستخدم مع خريطة أو ميزة "التجوّل الافتراضي" (التكبير أو التصغير)، يمكنك استخدام النُسخ الثابتة من واجهات برمجة التطبيقات هذه.

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

استخدام واجهة برمجة التطبيقات لتضمين الخرائط

يمكنك استخدام واجهة برمجة التطبيقات لتضمين الخرائط لإضافة خريطة باستخدام علامة واحدة، أو خريطة ديناميكية، مجانًا. يمكن استخدام Maps ضمن واجهة برمجة التطبيقات للتطبيقات التي تتطلّب استخدام علامة واحدة ولا حاجة إلى تخصيص الخريطة. إنّ طلبات البيانات من واجهة برمجة التطبيقات لتضمين "خرائط Google" باستخدام وضع الاتجاهات أو وضع العرض أو وضع "البحث" سيتم إصدار فواتير لها (يمكنك الاطّلاع على جدول التسعير للحصول على التفاصيل).

استخدام حِزم تطوير البرامج (SDK) لخرائط الأجهزة الجوّالة للتطبيقات المتوافقة مع الأجهزة الجوّالة

بالنسبة إلى التطبيقات المتوافقة مع الأجهزة الجوّالة، استخدِم حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع Android أو حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS عند عرض خريطة. استخدِم Maps Static API أو Maps JavaScript API عند استبعاد المتطلبات باستخدام حزم تطوير البرامج للأجهزة الجوّالة.

إدارة الاستهلاك في المسارات

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

قدِّم عددًا محدودًا من إدخالات المستخدم في طلب البحث ليبلغ 10 نقاط مسار كحد أقصى. وجدير بالذكر أن الطلبات التي تحتوي على أكثر من 10 نقاط في المسار يتم تحصيل رسومها بمعدل أعلى.

استخدام تحسين واجهة برمجة تطبيقات الاتجاهات للحصول على التوجيه الأمثل

وتتم فوترة الطلبات التي تستخدم وسيطة تحسين نقاط المسار بمعدل أعلى. لمزيد من المعلومات، يُرجى الاطّلاع على تحسين نقاط الطريق.

تعمل وسيطة التحسين على ترتيب نقاط المسار لضمان التوجيه الأمثل، بمعنى أن الانتقال من الألف إلى الياء هو تجربة أفضل عند التحسين (من A-B-C-D-E) إلى التسلسل العشوائي لمسار غير محسَّن (مثل A-D-B-C-E).

استخدام نماذج الزيارات في الوقت الفعلي في واجهة برمجة تطبيقات الاتجاهات وواجهة برمجة تطبيقات مسافة المصفوفة

يتم إصدار فواتير لطلبات البيانات من واجهة برمجة التطبيقات للتوجيه وواجهة برمجة تطبيقات مصفوفة المسافة. التي تتضمّن نماذج عدد الزيارات في الوقت الفعلي بمعدل أعلى. يتم تفعيل نماذج الزيارات في الوقت الفعلي عن طريق ضبط وقت المغادرة على now.

إذا تم حذف نماذج حركة المرور من الطلب، يتم عرض النتائج فقط استنادًا إلى عوامل فعلية، مثل الطرق والمسافة وحدود السرعة.

استخدام المسار الذي تم قطعه والأقرب على الطريق عندما تكون بيانات نظام تحديد المواقع العالمي (GPS) غير دقيقة

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

المواقع الجغرافية لحدود أخذ العينات في فترات زمنية تتراوح بين 5 و15 دقيقة

لخفض عدد المكالمات الواردة إلى خدمة Maps Roads API للحدّ الأقصى للسرعة، عيِّن مواقع أصولك في فترات زمنية تتراوح بين 5 و15 دقيقة. وتعتمد القيمة الدقيقة على سرعة تنقّل مادة العرض. ويُعدّ نموذج موقع جغرافي واحد كافيًا إذا كانت مادة العرض ثابتة. لا داعي لإجراء عدة مكالمات.

لتقليل وقت الاستجابة بوجهٍ عام، يمكنك طلب خدمة "الحدّ الأقصى للسرعة" بعد تجميع بعض البيانات بدلاً من طلب بيانات من واجهة برمجة التطبيقات في كل مرة يتم فيها تلقّي موقع مادة العرض للأجهزة الجوّالة.

إدارة الاستهلاك في الأماكن

تحسين عمليات تنفيذ الإكمال التلقائي للأماكن

لتحسين تكلفة استخدام ميزة "الإكمال التلقائي" للأماكن:

  • استخدِم أقنعة الحقل في أدوات JavaScript وAndroid وiOS التلقائية لإرجاع حقول بيانات المكان التي تحتاج إليها فقط.

  • يعتمد اختيار الفوترة على حالة الاستخدام. استنادًا إلى ما إذا كانت عملية التنفيذ التي تستخدِمها تستخدِم جلسات الإكمال التلقائي أم لا، سيتم تحصيل رسوم منك سواء من خلال الإكمال التلقائي حسب الطلب أو الإكمال التلقائي - لكل جلسة.

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

عرض بيانات لحقول معينة في تفاصيل المكان وطلبات البحث عن المكان

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

تستند فوترة طلبات تفاصيل المكان إلى أنواع وكميات البيانات المطلوبة. وبالنسبة إلى الطلبات التي لا تحدّد أي حقول، سيتم تحصيل الرسوم بالسعر الكامل. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على تفاصيل المكان والبحث عن الأماكن.

تقليل التكاليف باستخدام واجهة برمجة تطبيقات ترميز المواقع الجغرافية

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

إذا كان لديك عنوان دقيق (أو موقع قريب منه)، يمكنك تقليل التكاليف باستخدام الترميز الجغرافي بدلاً من الإكمال التلقائي. لمزيد من التفاصيل، راجِع أفضل الممارسات المتعلقة بالترميز الجغرافي.

آلية عمل حصص "منصة خرائط Google"

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

لا يتم احتساب سوى الطلبات والطلبات الناجحة التي تؤدي إلى حدوث أخطاء في الخادم ضمن الحصة. لا يتم احتساب الطلبات التي تتعذّر المصادقة عليها ضمن الحصة.

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

واجهات برمجة تطبيقات "منصّة Google للتسويق" التي يتم فرض هذه السياسة في الثانية هي واجهة برمجة التطبيقات للتوجيه وواجهة برمجة تطبيقات Matrix و Elevation API وGeocode API و Place API و Roads API.

قدِّر تكاليف أي منتج لواجهة برمجة تطبيقات "منصة Google للتسويق"، استنادًا إلى إجمالي حجم الطلبات.