إحداثيات الخريطة والتقسيم

اختيار النظام الأساسي: Android iOS JavaScript

تستخدم حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل Android أنظمة الإحداثيات التالية:

  • قيم خطوط الطول والعرض التي تشير إلى نقطة معيّنة على العالم بشكل فريد. (تستخدم Google معيار World Geodetic System WGS84).
  • إحداثيات العالم، التي تشير إلى نقطة على الخريطة بشكل فريد.
  • إحداثيات Pixel التي تشير إلى وحدة بكسل معيّنة على الخريطة عند مستوى تكبير/تصغير معيّن.
  • إحداثيات المربّعات التي تشير إلى مربّع معيّن على الخريطة عند مستوى تكبير/تصغير معيّن.

الإحداثيات العالمية

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

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

يتم قياس الإحداثيات العالمية في "خرائط Google" من نقطة الأصل لإسقاط ماركتور (في الزاوية الشمالية الغربية من الخريطة على خط طول 180 درجة وخط عرض 85 درجة تقريبًا) وتزيد في اتجاه x باتجاه الشرق (يمينًا) وتزداد في اتجاه y باتجاه الجنوب (لأسفل). بما أنّ مربّع "خرائط Google" الأساسي يبلغ 256 × 256 بكسل، تبلغ مساحة إحداثيات العالم القابلة للاستخدام {0-256}, {0-256}.

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

إحداثيات بكسل

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

pixelCoordinate = worldCoordinate * 2zoomLevel

في المعادلة أعلاه، يُرجى العِلم أنّ كل مستوى تكبير/تصغير يزيد بمقدار الضعف في كلا الاتجاهين x وy. لذلك، ينتج عن كل مستوى تكبير/تصغير أعلى دقة أعلى بأربع مرات من المستوى السابق. على سبيل المثال، في مستوى التكبير أو التصغير 1، تتألف الخريطة من 4 مربّعات بحجم 256x256 بكسل، ما يؤدي إلى الحصول على مساحة بكسل من 512x512. في مستوى التكبير/التصغير 19، يمكن الإشارة إلى كل من x وy بكسل على الخريطة باستخدام قيمة تتراوح بين 0 و256 * 219.

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

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

إحداثيات المربعات

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

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

خريطة للعالم مقسّمة إلى أربعة صفوف وأربعة أعمدة من المربّعات.

يُرجى العِلم أنّه من خلال قسمة إحداثيات البكسل على حجم المربّع (256) وأخذ الأجزاء الصحيحة من النتيجة، يتم إنتاج إحداثيّ المربّعات على مستوى التكبير/التصغير الحالي كمنتج ثانوي.

مثال

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

لمعرفة طريقة حساب الإحداثيات، يمكنك عرض الرمز.