ForHosting KIT · السفر والجغرافيا

مرمّز Geohash

حوّل زوج إحداثيات إلى رمز Geohash قصير: النقطة 37.7749 و-122.4194 بتسعة أحرف تصبح 9q8yyk8yt، وهو مفتاح بحجم مربع سكني يجمع الأماكن المتجاورة. مجاني في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
خط العرض بالدرجات العشرية
37.7749
خط الطول بالدرجات العشرية
‎-122.4194
الدقة
9
تحصل على
الترميز الجغرافي
9q8yyk8yt

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

ما الذي يمثّله Geohash فعلاً

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

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

كيف تختار الدقة وترسل الإحداثيات

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

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

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

أين تُوظَّف الخلايا المرمّزة في خطوط الإنتاج الحقيقية

تستعمل الفرق قيم Geohash مفاتيحَ تقسيم في مخازن السلاسل الزمنية، ومعرّفاتِ بلاطات خرائط للذاكرة المؤقتة على العميل، وبادئاتٍ مشتركة لمرشِّحات النقاط القريبة، ورموزاً قصيرة في الروابط أو حمولات QR حين يكون زوج العرض/الطول الكامل غير عملي. ولأن التحويل حتمي وخالٍ من الآثار الجانبية، يمكنك توليد المفتاح نفسه في المتصفح أو في عامل أو في مهمة دفعية وتتوقّع نتائج متطابقة بايتاً ببايت للمدخلات نفسها. هذا مهمّ للاختبارات المرجعية والنسخ المتعدّدة المناطق والأدوات دون اتصال التي يجب ألا تنحرف.

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

مفاتيح تقسيم قاعدة البيانات والذاكرة المؤقتة

خزّن Geohash بطول ثابت بجانب كل سجلّ كي تُجمّع عمليات المسح المجالي وشظايا الذاكرة المؤقتة المواقعَ المتجاورة دون فهارس فاصلة عائمة.

تجميع الخرائط وعناوين البلاطات

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

رموز موقع قصيرة في الروابط

استبدل سلاسل استعلام الإحداثيات الطويلة بـ Geohash مدمج يظلّ قادراً على استرجاع خلية معلومة عند فكّ ترميزه في مكان آخر.

ماذا يعيد مرمّز Geohash هذا؟

يعيد سلسلة Geohash، وخط العرض وخط الطول اللذين قدّمتهما، وطول الدقة، والمربع المحيط بالخلية التي تعرّفها تلك السلسلة.

أيّ دقة ينبغي أن أستعمل؟

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

كم تكلفته؟

أداة الصفحة مجانية في متصفحك. لا يُحاسَب على المدخلات غير الصالحة.

لماذا تبدأ رموز Geohash للأماكن المتقاربة بالحروف نفسها؟

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

هل لخلية Geohash الحجم نفسه في كل مكان على الأرض؟

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

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/geo/geohash-encode

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/geo/geohash-encode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"latitude":37.7749,"longitude":-122.4194,"precision":9}'
{
  "latitude": 37.7749,
  "longitude": -122.4194,
  "precision": 9
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.geohash_encode",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

كيف تختار الدقة وترسل الإحداثيات

إن كانت الدقة دون واحد، أو خرج أيٌّ من الإحداثيين عن مداه المشروع، يفشل النداء بخطأ invalid_input ولا يُحاسَب عليه.

أين تُوظَّف الخلايا المرمّزة في خطوط الإنتاج الحقيقية

شغّل أداة المتصفح المجانية لفحص موقع واحد، أو نادِ الواجهة حين تحتاج الترميز نفسه داخل الأتمتة بسعر $0.002 لكل طلب ناجح.

متى يفشل الترميز؟

يفشل بخطأ invalid_input حين تكون الدقة دون واحد (أو فوق اثني عشر)، أو خط العرض خارج ‎−90…90، أو خط الطول خارج ‎−180…180، أو حين يكون رقم مطلوب ناقصاً أو غير منتهٍ.

هل النتيجة نفسها في المتصفح والواجهة؟

نعم. كلاهما يشغّل المرمّز الصرف نفسه في lib.js، فتنتج المدخلات المتطابقة سلاسل Geohash ومربعات محيطة متطابقة.

اطّلع على توثيق KIT الكامل ←