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

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

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

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

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

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

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

يتم قياس الإحداثيات العالمية في "خرائط Google" من خلال مطار "ميركاتور". أصل الإسقاط (الزاوية الشمالية الغربية من الخريطة عند 180 درجة) خط الطول وخط العرض 85 درجة تقريبًا) وتزيد في اتجاه x باتجاه الشرق (اليمين) وزيادة في اتجاه y باتجاه الجنوب (لأسفل). نظرًا لأن يبلغ حجم مربّع خرائط 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، إحداثيات البكسل تساوي إحداثيات العالم.

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

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

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

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

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

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

مثال

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

لترى كيف تم حساب الإحداثيات، عرض الرمز.