חישוב סיכום הניתוב

כדי להשתמש בחיפוש טקסט (חדש) או בחיפוש בסביבה הקרובה (חדש) כדי לחשב את משך הנסיעה והמרחק לכל מקום בתשובה:

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

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

‫APIs Explorer מאפשר לכם לשלוח בקשות בזמן אמת כדי להכיר את ה-API ואת האפשרויות שלו:

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

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

התגובה מכילה שני מערכים של JSON: המערך places מכיל את המקומות התואמים, והמערך routingSummaries מכיל את משך הזמן והמרחק של הנסיעה לכל מקום:

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

כל רכיב במערך routingSummaries נמצא במיקום המתאים במערך places. כלומר, הרכיב ב-routingSummaries[0] תואם למקום ב-places[0].

אורך המערך של routingSummaries זהה לאורך המערך של places. אם הערך routingSummary של מקום מסוים לא זמין, הרשומה במערך תהיה ריקה.

בדוגמה הזו מחושך משך הזמן והמרחק מנקודת המוצא של הניתוב לכל מקום, ולכן השדה routingSummaries.legs בתגובה מכיל אובייקט Leg יחיד שמכיל את הערכים duration ו-distanceMeters מנקודת המוצא של הניתוב למקום.

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    …
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   …
  ]
}

מהדוגמה הזו אפשר לראות שהמשך והמרחק מנקודת המוצא של הניתוב למקום הראשון בתוצאות הם 597 שניות ו-2, 607 מטרים.

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

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

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

בחירת אפשרויות נסיעה

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

  • משתמשים בפרמטר routingParameters.travelMode כדי להגדיר את אמצעי התחבורה ל-DRIVE, ‏BICYCLE, ‏WALK או TWO_WHEELER. מידע נוסף על האפשרויות האלה זמין במאמר סוגי כלי רכב שזמינים למסלולים.

  • משתמשים במאפיין routingParameters.routingPreference כדי להגדיר את אפשרות העדפת הניתוב ל-TRAFFIC_UNAWARE (ברירת מחדל), ל-TRAFFIC_AWARE או ל-TRAFFIC_AWARE_OPTIMAL. לכל אפשרות יש רמות שונות של איכות נתונים וזמן אחזור. מידע נוסף זמין במאמר בנושא הגדרה של אופן הכללת נתוני תנועה (אם בכלל).

    המאפיין routingParameters.routingPreference משפיע על ההוראות שמופיעות בשדה directionsUri תצוגה מקדימה (טרום-GA), כי מפות Google מציגה אפשרויות תנועה כשהקישור נפתח.

  • משתמשים במאפיין routingParameters.routeModifiers כדי לציין את avoidTolls,‏ avoidHighways,‏ avoidFerries ו-avoidIndoor. מידע נוסף על האפשרויות האלה זמין במאמר הגדרת תכונות מסלול כדי להימנע מהן.

בדוגמה הבאה, מציינים את אמצעי התחבורה כ-DRIVE ומונעים נסיעה בכבישים מהירים:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": true
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

רוצה לנסות?

‫APIs Explorer מאפשר לכם לשלוח בקשות לדוגמה כדי להכיר את ה-API ואת האפשרויות שלו.

  1. בצד שמאל של הדף, לוחצים על סמל ה-API‏ api.

  2. אפשר לערוך את פרמטרים של הבקשה.

  3. לוחצים על הלחצן Execute (הפעלה). בתיבת הדו-שיח, בוחרים את החשבון שבו רוצים להשתמש כדי לשלוח את הבקשה.

  4. בחלונית APIs Explorer, לוחצים על סמל המסך המלא מסך מלא כדי להרחיב את החלון של APIs Explorer.