ציון מיקומים למסלול

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

בנוסף למקור וליעד, אפשר לציין סוגים שונים של ציוני דרך ואיך לטפל בנקודות ציון במסלול. לקבלת מידע נוסף ו דוגמאות, ראו את הנושאים הבאים:

ציון מיקומים למסלול

כדי לייצג מיקום אפשר ליצור נקודת דרך (REST) או אובייקט Waypoint (gRPC). ב ניתן לציין מיקום בכל אחת מהדרכים הבאות:

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

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

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

יש לציין מיקום כמזהה מקום

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

מאחזרים מזהי מקומות מ-Geocoding API וגם Places API (כולל Place השלמה אוטומטית). מידע נוסף על מזהי מקומות זמין סקירה כללית של מזהה מקום.

הדוגמה הבאה משתמשת בנכס placeId כדי להעביר מזהה מקום בשני הסוגים origin וגם destination:

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

יש לציין מיקום כקואורדינטות של קו אורך וקו רוחב

כדי להגדיר מיקום בנקודת ציון, יש לציין את Location (REST) או Location(gRPC) באמצעות קווי אורך ורוחב.

לדוגמה, אפשר לציין ציון דרך למסלול origin ו-destination. באמצעות קואורדינטות latitude ו-longitude:

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
...
}

יש לציין מיקום כמחרוזת כתובת

מחרוזות כתובת הן כתובות מילוליות המיוצגות על ידי מחרוזת (כמו "1600" Amphitheatre Parkway, Mountain View, CA"). קידוד גיאוגרפי הוא התהליך של להמרת מחרוזת כתובת לקווי אורך ורוחב (למשל קו רוחב 37.423021 וקו אורך -122.083739).

כשמעבירים מחרוזת כתובת כמיקום של ציון דרך, Routes API ממירה את המחרוזת לקואורדינטות באופן פנימי כדי להמיר אותה לקו רוחב וקו אורך של הקואורדינטות.

לדוגמה, כדי לחשב מסלול, מציינים ציון דרך למסלול origin ו destination באמצעות מחרוזות כתובת:

{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "450 Serra Mall, Stanford, CA 94305, USA"
  },
  ...
}

בדוגמה הזו, ה-Routes API מקודד את שתי הכתובות כדי להמיר אותן קווי אורך ורוחב.

אם ערך הכתובת לא ברור, יכול להיות שה-Routes API יפעיל חיפוש של להבדיל מכתובות דומות. לדוגמה, "רחוב 1" יכול להיות ערך מלא או ערך חלקי עבור "1st Street NE" או "1st St SE". הזה התוצאה עשויה להיות שונה מזו שהוחזרה על ידי Geocoding API. אפשר להימנע פרשנויות שגויות אפשריות לשימוש במזהי מקומות.

הגדרת האזור של הכתובת

אם מעבירים מחרוזת כתובת חלקית כמיקום של ציון דרך, ממשק ה-API עלול להשתמש בקואורדינטות שגויות של קו רוחב/אורך וקואורדינטות. לדוגמה, אתם שולחים בקשה בציון "Toledo" בתור המקור ו'מדריד' בתור יעד של מסלול נסיעה:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

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

{
  []
}

ניתן להגדיר את ה-API כך שיחזיר תוצאות שמוטות לאזור מסוים על ידי כולל הפרמטר regionCode. הפרמטר הזה מציין את קוד האזור בתור ccTLD ('דומיין ברמה העליונה') בשני תווים. רוב קודי ה-ccTLD זהים לקודי ISO 3166-1, עם יש כמה יוצאים מן הכלל. לדוגמה, ה-ccTLD של בריטניה הוא "uk" (.co.uk) כשקוד ISO 3166-1 הוא "gb" (טכנית עבור הישות בריטניה וצפון אירלנד").

בקשה לקבלת מסלול הגעה עבור 'טולדו' אל "מדריד" שכולל את regionCode הפרמטר מחזיר תוצאות מתאימות, כי 'Toledo' מתפרש עיר בספרד:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

התשובה מכילה עכשיו את המסלול המחושב מטולדו, ספרד אל מדריד, ספרד:

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

ציון מיקום כ-Plus Code

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

קודי OLC הם כמו כתובות של אנשים או מקומות שאין להם הכתובת בפועל. במקום כתובות עם שמות של רחובות ומספרים, Plus Codes מבוססות על קואורדינטות של קו אורך/רוחב ומוצגות כמספרים אותיות.

Google פיתחה Plus Codes כדי להעניק כתובות לכולם ולכולם. Plus Code הוא קוד מקודד שנגזרת מקואורדינטות של קו אורך/רוחב, מייצג שטח: 1/8,000 מעלות במעלה 1/8,000 מעלה (בערך 14 מטרים x) 14 מטרים בקו המשווה) או פחות. אפשר להשתמש ב-Plus Codes כתחליף ל- רחובות במקומות שבהם הן לא קיימות או במקומות שבהם לא קיימים בניינים ממוספרים או רחובות.

ניתן להשתמש ב-Plus Codes כקוד גלובלי או כקוד מורכב:

  • קוד גלובלי מורכב מקוד אזור בן 4 תווים ו-6 קוד מקומי או ארוך יותר.

    לדוגמה, בכתובת ' 1600 Amphitheatre Parkway, Mountain View, CA, הקוד הגלובלי הוא 849V והקוד המקומי הוא "CWC8+R9". לאחר מכן משתמשים ב-Plus Code באורך 10 תווים במלואו כדי לציין את ערך המיקום הוא ' 849VCWC8+R9'.

  • קוד מורכב מורכב מ-6 תווים או יותר קוד מקומי בשילוב עם מיקום מפורש.

    לדוגמה, הכתובת "450 Serra Mall, Stanford, CA 94305, USA מכיל קוד מקומי "CRHJ+C3". לתרכובת כתובת, לשלב את הקוד המקומי עם העיר, המדינה, המיקוד והמדינה חלק מהכתובת בתבנית "CRHJ+C3 Stanford, CA 94305, USA".

    לדוגמה, אפשר לחשב מסלול על ידי ציון ציון דרך למסלול origin ו-destination באמצעות Plus Codes:

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

יש תמיכה ב-Plus Codes בממשקי ה-API של הפלטפורמה של מפות Google, כולל השלמה אוטומטית למקומות, פרטי מקום, Directions API, וגם Geocoding API. לדוגמה, אפשר להשתמש ב-Geocoding API כדי להפוך קידוד גיאוגרפי מיקום שצוין בקואורדינטות של קו אורך/רוחב כדי לקבוע את את ה-Plus Code של המיקום.