تحسين استخدام الحصة عند الترميز الجغرافي

الترميز الجغرافي هو عملية تحويل العناوين ("1600 Amphitheatre Parkway, Mountain View, CA") إلى إحداثيات جغرافية (37.423021، -122.083739)، التي يمكنك استخدامها لوضع العلامات أو تحديد موضع الخريطة. توفّر واجهات برمجة التطبيقات في "منصة خرائط Google" أسلوبَين للترميز الجغرافي:

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

أمثلة على الترميز الجغرافي من جهة العميل ومن جهة الخادم

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

geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  }
});

للحصول على مزيد من الأمثلة، اطّلِع على مستندات واجهة برمجة تطبيقات JavaScript لـ "خرائط Google".

في ما يلي مثال على استخدام Python لإجراء طلب ترميز جغرافي من جهة الخادم:

import urllib2

address="1600+Amphitheatre+Parkway,+Mountain+View,+CA"
key="my-key-here"
url="https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s" % (address, key)

response = urllib2.urlopen(url)

jsongeocode = response.read()

وسينتج عن ذلك كائن JSON بالمحتوى التالي:

{
  "status": "OK",
  "results": [ {
    "types": street_address,
    "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": street_number
    }, {
      "long_name": "Amphitheatre Pkwy",
      "short_name": "Amphitheatre Pkwy",
      "types": route
    }, {
      "long_name": "Mountain View",
      "short_name": "Mountain View",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "San Jose",
      "short_name": "San Jose",
      "types": [ "administrative_area_level_3", "political" ]
    }, {
      "long_name": "Santa Clara",
      "short_name": "Santa Clara",
      "types": [ "administrative_area_level_2", "political" ]
    }, {
      "long_name": "California",
      "short_name": "CA",
      "types": [ "administrative_area_level_1", "political" ]
    }, {
      "long_name": "United States",
      "short_name": "US",
      "types": [ "country", "political" ]
    }, {
      "long_name": "94043",
      "short_name": "94043",
      "types": postal_code
    } ],
    "geometry": {
      "location": {
        "lat": 37.4220323,
        "lng": -122.0845109
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "southwest": {
          "lat": 37.4188847,
          "lng": -122.0876585
        },
        "northeast": {
          "lat": 37.4251799,
          "lng": -122.0813633
        }
      }
    }
  } ]
}

ويوفّر أيضًا الترميز الجغرافي من جهة الخادم تنسيق XML كبديل لـ JSON. للحصول على مزيد من الأمثلة، يمكنك الاطّلاع على مستندات واجهة برمجة التطبيقات للترميز الجغرافي ومكتبات البرامج للغة Python واللغات الأخرى.

اعتبارات الحصة والتكلفة

تعزّز تكاليف الترميز الجغرافي والحصص وحدود الأسعار الاستراتيجيات الموضّحة في هذا المستند.

التكلفة

لم تعُد حدود الحصة اليومية (QPD) مُستخدَمة لطلبات الترميز الجغرافي. بدلاً من ذلك، يتم تحصيل رسوم كل طلب ترميز جغرافي لكل طلب ترميز جغرافي، سواء من جهة العميل من خلال المتصفح أو من جهة الخادم من خلال خدمة الويب لواجهة برمجة تطبيقات الترميز الجغرافي. لإدارة تكلفة الاستخدام، ننصحك بتحديد الحدّ الأقصى لحصتك اليومية.

حدود المعدَّل

يقتصر معدل خدمة الترميز الجغرافي على 3000 QPM (استعلامات في الدقيقة)، ويتم حسابها كمجموع طلبات البحث من جانب العميل ومن جهة الخادم.

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

  • قدِّم فواصل زمنية عشوائية لطلباتك (عدم الاستقرار). احرص على أن تكون الطلبات عشوائية من خلال قاعدة المستخدمين بأكملها.
  • وفي حال تطوير تطبيقات تعمل بنظام التشغيل Android، استخدِم منبهًا متكرّرًا غير دقيق.
  • وفي حال تطوير تطبيقات متوافقة مع Android، اختَر استراتيجية الموقع الجغرافي المناسبة.

التخزين المؤقت

يمكنك الاطّلاع على سياسات واجهة برمجة التطبيقات للترميز الجغرافي حول التخزين المؤقت.

حالات استخدام الترميز الجغرافي من جهة العميل

الإجابة المختصرة هي "دائمًا تقريبًا". الأسباب هي:

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

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

هناك بنيتان أساسيتان للترميز الجغرافي من جهة العميل:

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

حالات استخدام الترميز الجغرافي من جهة الخادم

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

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