סקירה כללית של משבצות דו-ממדיות

דוגמה לתוכנית ניהולהתצוגה של מפות Google מחולקת לריבועים שממוספרים באינדקס. הוא מאפשר לגשת לנתוני המפה ולהשתמש בהם בצורה יעילה ודינמית במספר סולמות גיאוגרפיים. באמצעות Map Tiles API תוכלו לגשת למספר מערכי נתונים גיאוגרפיים נושאיים, כולל:

  • משבצות של תמונות מפת דרכים שמבוססות על נתונים טופוגרפיים של וקטור עם סגנון הקרטוגרפי של Google.

  • אורתופוטוגרפיה שצולמה במצלמות שמותקנות בלוויינים ובכלי טיס, ומספקת תמונות של כדור הארץ מלמעלה למטה (נקודת הנדר).

  • מפות קווי מתאר של צללי גבעות.

כל המשבצות של מפות 2D מותאמות למיקום גיאוגרפי ומיושרות זו לזו. הן נבחרות על סמך ההיקף הגיאוגרפי של אזור התצוגה ורמת הזום. רמות הזום נעות בין אפס (כדי להציג את העולם במלואו) ל-22 (כדי להציג רחובות וגושי בניינים).

עיצובים של מפות

אפשר לקבל משבצות מפה לנושאי המפה הבאים.

עיצוב המפה תיאור
תוכנית עבודה כבישים, מבנים, נקודות עניין וגבולות פוליטיים
לוויין תמונות שצולמו מהחלל
פני שטח מפה קונטורית שמציגה תכונות טבעיות כמו צמחייה

כדי לבקש משבצות מפה מ-Map Tiles API, קודם צריך לבקש אסימון סשן. אסימון הסשן עוקב אחרי המצב הנוכחי של המפה ואזור התצוגה. כשמגדירים את אסימון הסשן, צריך להגדיר את הערך של mapType בהתאם לנושא המפה הרצוי. לאחר מכן, צריך לכלול את אסימון הסשן בכל אחת מהבקשות ל-Map Tiles API.

בקשות לקבלת מידע על אזור התצוגה

אזור התצוגה מגדיר את גודל התיבה שממסגרת את סצנת העולם. בקשות למידע על אזור התצוגה מחזירות פרטים על המשבצות של המפה שמרכיבות את אזור התצוגה הנוכחי. הסיבה שביקשת את פרטי חלון התצוגה היא כדי להימנע מבקשות של תמונות ברמות זום שלא קיימות.

לדוגמה, ברוב הערים יש תמונות ברמת התצוגה 22, אבל לא באוקיינוס, כי התוצאה תהיה רק ריבועים כחולים ללא תכונות.

בקשת חלון התצוגה היא בקשת GET של HTTPS בפורמט הבא.

curl "https://tile.googleapis.com/tile/v1/viewport?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&zoom=zoom&north=north&south=south&east=east&west=west"

הבקשה מכילה את השדות הבאים:

zoom
מרחק התצוגה של אזור התצוגה.
north, south, east, west
הנקודות הצפוניות, הדרומיות, המזרחיות והמערביות ביותר בחלון התצוגה, שמוצגות בספרות מעוגלות. הצפון והדרום חייבים להיות בטווח (-90,90), והמזרח והמערב חייבים להיות בטווח (-180, 180). כדי להביע גבולות שעוברים את קו האורך המקביל, הערך של המערב יכול להיות חיובי (לדוגמה, 170) והערך של המזרח יכול להיות שלילי (לדוגמה, -170). כל הפרמטרים נדרשים.

תשובות לגבי פרטי אזור התצוגה

התגובה של אזור התצוגה מראה באילו אזורים יש תמונות ובאילו רמות זום. התשובה למידע על חלון התצוגה נראית כך.

{
  "copyright": "Map data ©2023",
  "maxZoomRects": [
    {
      "maxZoom": 19,
      "north": 90,
      "south": -90,
      "east": 180,
      "west": -180
    },
    {
      "maxZoom": 9,
      "north": 90,
      "south": -90,
      "east": 180,
      "west": -180
    },
    {
      "maxZoom": 14,
      "north": 84.375,
      "south": -84.375,
      "east": 180,
      "west": -180
    }, ...
  ]
}

גוף התשובה מכיל את השדות הבאים.

copyright
מכיל מחרוזת שיוך שצריך להציג במפה כשמציגים מפת דרכים ואריחי לוויין. למידע נוסף, ראו המדיניות של Map Tiles API.
maxZoomRect
מכיל מערך של מלבנים מגבילים שמצטלב עם אזור התצוגה הנוכחי. מכיל גם את רמת הזום המקסימלית שזמינה בכל מלבן.

פונקציות של קואורדינטות של משבצות

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

var TILE_SIZE = 256;

function fromLatLngToPoint(latLng) {
  var mercator = -Math.log(Math.tan((0.25 + latLng.lat() / 360) * Math.PI));
  return {
    x: TILE_SIZE * (latLng.lng() / 360 + 0.5),
    y: TILE_SIZE / 2 * (1 +  mercator / Math.PI)
  };
}

function fromLatLngToTileCoord(latLng, zoom) {
  var point = fromLatLngToPoint(latLng);
  var scale = Math.pow(2, zoom);

  return {
    x: Math.floor(point.x * scale / TILE_SIZE),
    y: Math.floor(point.y * scale / TILE_SIZE),
    z: zoom
  };
}