Maps JavaScript API משתמש במערכות הקואורדינטות הבאות:
- ערכים של קו רוחב וקו אורך שמפנים לנקודה בעולם באופן ייחודי. Google משתמשת בתקן World Geodetic System WGS84.
- קואורדינטות עולמיות, שמפנות לנקודה ייחודית במפה.
- קואורדינטות פיקסלים, שמפנות לפיקסל ספציפי במפה ברמת זום ספציפית.
- קואורדינטות של קטע מפה, שמפנות לקטע ספציפי במפה ברמת זום ספציפית.
קואורדינטות עולמיות
בכל פעם שממשק ה-API צריך לתרגם מיקום בעולם למיקום במפה, הוא קודם מתרגם את ערכי קווי הרוחב וקווי האורך לקואורדינטה עולמית. ה-API משתמש בהיטל מרקטור כדי לבצע את התרגום הזה.
כדי להקל על חישוב הקואורדינטות של הפיקסלים (ראו בהמשך) אנחנו מניחים שמפה ברמת זום 0 היא משבצת אחת בגודל הבסיסי של המשבצת. לאחר מכן אנחנו מגדירים קואורדינטות עולמיות ביחס לקואורדינטות של הפיקסלים ברמת הזום 0, באמצעות ההטלה כדי להמיר קווי רוחב וקווי אורך למיקומי פיקסלים במשבצת הבסיס הזו. הקואורדינטה העולמית הזו היא ערך נקודה צפה שנמדד מנקודת המוצא של היטל המפה למיקום הספציפי. חשוב לזכור שהערך הזה הוא ערך נקודה צפה, ולכן יכול להיות שהוא מדויק יותר מהרזולוציה הנוכחית של תמונת המפה שמוצגת. קואורדינטה עולמית לא תלויה ברמת הזום הנוכחית.
הקואורדינטות העולמיות במפות Google נמדדות מנקודת המוצא של הטלת מרקטור (הפינה הצפון-מערבית של המפה בקו אורך 180 מעלות ובקו רוחב של כ-85 מעלות), והן גדלות בכיוון x מזרחה (ימינה) ובכיוון y דרומה (למטה). המשבצת הבסיסית של מפות Google בשיטת מרקטור היא 256x256 פיקסלים, ולכן מרחב הקואורדינטות העולמי שניתן לשימוש הוא {0-256}, {0-256}.
![]()
שימו לב שהיטל מרקטור הוא בעל רוחב סופי לאורך קווי האורך, אבל גובה אינסופי לאורך קווי הרוחב. אנחנו חותכים את התוכן הוויזואלי של מפת הבסיס באמצעות הטלת מרקטור בערך ב-+/- 85 מעלות כדי ליצור צורה מרובעת של המפה, וכך להקל על הלוגיקה של בחירת המשבצות. שימו לב: יכול להיות שהטלה תיצור קואורדינטות עולמיות מחוץ למרחב הקואורדינטות שניתן לשימוש במפת הבסיס, למשל אם מציירים קרוב מאוד לקטבים.
קואורדינטות של פיקסלים
קואורדינטות פיקסלים מתייחסות לפיקסל ספציפי במפה ברמת זום ספציפית, בעוד שקואורדינטות עולמיות משקפות מיקומים מוחלטים בהטלה נתונה. הקואורדינטות של הפיקסל מחושבות לפי הנוסחה הבאה:
pixelCoordinate = worldCoordinate * 2zoomLevel
מהמשוואה שלמעלה אפשר לראות שכל רמת זום עולה גדולה פי שניים בכיוונים x ו-y. לכן, בכל רמת זום גבוהה יותר, הרזולוציה גבוהה פי ארבע מהרמה הקודמת. לדוגמה, ברמת זום 1, המפה מורכבת מ-4 משבצות של 256x256 פיקסלים, וכך נוצר מרחב פיקסלים של 512x512. ברמת זום 19, אפשר להתייחס לכל פיקסל x ו-y במפה באמצעות ערך בין 0 ל-256 * 219.
מכיוון שהקואורדינטות העולמיות מבוססות על גודל המשבצת במפה, החלק השלם של קואורדינטת הפיקסל משמש לזיהוי הפיקסל המדויק במיקום הזה ברמת הזום הנוכחית. שימו לב: ברמת זום 0, קואורדינטות הפיקסלים שוות לקואורדינטות העולמיות.
מערכות הקואורדינטות האלה מציינות בצורה מדויקת כל מיקום במפה, בכל רמת זום. Maps JavaScript API יוצר אזור תצוגה בהתאם לרמת הזום, למרכז המפה כ-LatLng ולגודל של רכיב ה-DOM שמכיל את המפה, ומתרגם את התיבה התוחמת הזו לקואורדינטות פיקסלים. לאחר מכן ה-API קובע באופן לוגי את כל משבצות המפה שנמצאות בתוך גבולות הפיקסלים שצוינו. כדי להתייחס לכל אחד מאריחי המפה האלה, משתמשים בקואורדינטות של קטע במפה, שמפשטות מאוד את הצגת תמונות המפה.
קואורדינטות של קטע במפה
ה-API לא יכול לטעון את כל תמונות המפה בבת אחת ברמות זום גבוהות יותר. במקום זאת, המערכת מחלקת את התמונות בכל רמת זום לקבוצה של משבצות מפה, שמסודרות באופן לוגי בסדר שהאפליקציה יכולה להשתמש בו. כשמגללים מפה למיקום חדש או לרמת זום חדשה, ה-API קובע אילו משבצות צריך להציג באמצעות קואורדינטות פיקסלים, ואז מתרגם את הערכים האלה לקבוצת משבצות לאחזור. הוא מקצה את הקואורדינטות של המשבצות האלה באמצעות סכימה שמאפשרת לקבוע בקלות איזו משבצת מכילה את התמונות של כל נקודה נתונה.
המשבצות במפות Google ממוספרות מאותו מקור כמו הפיקסלים. ביישום של הטלת מרקטור ב-Google, משבצת המקור תמיד נמצאת בפינה הצפון-מערבית של המפה, עם ערכי x שעולים ממערב למזרח וערכי y שעולים מצפון לדרום. המשבצות
מתווספות לאינדקס באמצעות קואורדינטות x,y מהמקור הזה. לדוגמה, ברמת זום 2, כשהעולם מחולק ל-16 משבצות, כל משבצת יכולה להיות מיוצגת על ידי זוג ייחודי של x,y:

שימו לב: אם מחלקים את קואורדינטות הפיקסל בגודל המשבצת (256) ומשתמשים בחלק השלם של התוצאה, מקבלים כתוצר לוואי את קואורדינטות המשבצת ברמת הזום הנוכחית.
דוגמה
בדוגמה הבאה מוצגות קואורדינטות של שיקגו, אילינוי: ערכי קו רוחב/אורך, קואורדינטות עולמיות, קואורדינטות של פיקסלים וקואורדינטות של משבצות. אפשר להשתמש בכלי לשליטה במרחק התצוגה כדי לראות את ערכי הקואורדינטות ברמות שונות של מרחק התצוגה.
כדי לראות איך הקואורדינטות חושבו, צריך להציג את הקוד.