الأدلة

إنشاء أداة للعثور على المتاجر باستخدام الترميز الجغرافي العكسي

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

تحويل الإحداثيات إلى موقع مقروء

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

GET /v1/reverse?lat=51.5074&lon=-0.1278
{
  "status": "ok",
  "formatted": "Trafalgar Square, London, UK",
  "lat": 51.5074,
  "lon": -0.1278,
  "type": "address",
  "precision": "street",
  "confidence": 0.9,
  "place_id": "lm345",
  "components": {"city": "London", "country": "GB"}
}

العثور على أقرب المتاجر

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

السماح للعملاء بكتابة عنوان بدلًا من ذلك

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

مثال ثانٍ: تطبيق جوال يستخدم نظام GPS في الجهاز

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

خطأ شائع يجب تجنبه

لا تفترضوا أن كل عنوان مكتوب يُرمَّز جغرافيًا بدقة على مستوى المنزل قبل تنفيذ حساب المسافة. فالاستعلام العام، كاسم مدينة فقط، سيعيد نتيجة مع ذلك، لكن بدقة أقل، ومعاملة تلك النقطة التقريبية كأنها تحدد مبنى العميل بالضبط ستجعل ترتيب «أقرب متجر» لديكم أقل موثوقية مما كانت حقول confidence وprecision ستنبئكم بتوقعه.

التعامل مع التعادل بين متجرين قريبين

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

تأكيد التطابق

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

كم يكلف

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

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