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

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

تستخدم Google Maps JavaScript API أنظمة الإحداثيات التالية:

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

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

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

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

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

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

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

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

pixelCoordinate = worldCoordinate * 2zoomLevel

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

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

لدينا الآن طريقة للإشارة بدقة إلى كل موقع جغرافي على الخريطة، في كل مستوى تكبير/تصغير. تُنشئ واجهة برمجة التطبيقات Maps JavaScript API إطار عرض استنادًا إلى مركز مستوى التكبير في الخريطة (بالتنسيق LatLng) وحجم عنصر DOM الذي يحتوي على الخريطة، ويؤدي ذلك إلى ترجمة مربّع الحدود هذا إلى إحداثيات بكسل. بعد ذلك، تحدِّد واجهة برمجة التطبيقات منطقيًا جميع مربعات الخرائط التي تقع ضمن حدود البكسل المحدّدة. تتم الإشارة إلى كلّ من مربّعات الخريطة باستخدام إحداثيات مربّعات الخريطة التي تسهّل بشكل كبير عرض صور الخريطة.

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

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

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

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

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

مثال

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

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