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