إحداثيات الخريطة والمربّعات

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

تستخدِم حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS أنظمة الإحداثيات التالية:

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

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

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

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

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

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

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

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

pixelCoordinate = worldCoordinate * 2zoomLevel

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

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

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

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

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

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

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

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

مثال

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

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