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

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

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

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

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

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

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

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

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

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

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

pixelCoordinate = worldCoordinate * 2zoomLevel

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

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

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

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

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

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

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

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

مثال

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

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