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

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

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

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

שימוש בחיפוש טקסט (חדש)

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

  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": [
    {
      "legs": [
        object (Leg)
      ]
    }
  ]
}

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

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

מכיוון שבדוגמה הזו מחושבים משך הזמן והמרחק מנקודת המוצא של הניתוב לכל מקום, השדה 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
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ]
    },
   …
  ]
}

בדוגמה הזו אפשר לראות שהמשך והמרחק ממקור הניתוב למקום הראשון בתוצאות הם 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 לנקודת המרכז של סידני כדי להטות את תוצאות החיפוש לאותו מעגל. אבל אז מגדירים את שמפנה את המוצא לקואורדינטות של הבית, כלומר למיקום אחר במעגל החיפוש. לאחר מכן הבקשה משנה את תוצאות החיפוש ומחשב את סיכומי הניתוב על סמך המיקום של בבית.

ציון אפשרויות הנסיעה

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

בדוגמה הבאה, מציינים את מצב הנסיעה בתור 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'