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

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

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

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

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

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

בבקשה הבאה, מחשבים את משך הנסיעה ואת המרחק לכל מקום בתשובה של Text Search (New):

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