אופטימיזציה של נקודות ציון היא תכונה של 'מסלולים מועדפים' שמתרחבת
ComputeRoutes
היא מבצעת אופטימיזציה של הסדר של ציוני הדרך במסלול של הנוסע,
כדי להבטיח שהם יעברו במסלול היעיל ביותר. ComputeRoutes
של אופטימיזציית ציון דרך תומכת במצבי הנסיעה הבאים:
- נהיגה
- דו-גלגלי ממונעים
- רכיבה על אופניים
- הליכה
למה כדאי להשתמש באופטימיזציה של ציוני דרך?
כשיוצרים אפליקציה שמדריכה משתמשים בכמה ציוני דרך בדרכם אל יעד, חשוב שהנוסעים יעברו את נקודות הדרך בסדר אופטימלי. כך תבטיחו שהנוסעים יגיעו לכל נקודת ציון משך הזמן הקצר ביותר.
איך זה עובד
כברירת מחדל, ComputeRoutes
מחשב מסלול שעובר דרך ציוני הדרך שלו, לפי הסדר
שבה הם סופקו במקור. אפשר לקבל ComputeRoutes
כדי לבצע אופטימיזציה
את הנתיב על ידי סידור מחדש של נקודות הביניים בסדר יעיל יותר.
תקבל מסלול עם ציוני דרך שעברו אופטימיזציה אם תגדיר את
השדה optimizeWaypointOrder
בגוף הבקשה אל true
.
הערה: חישוב האופטימיזציה של ציוני הדרך מבוסס בעיקר על זמן הנסיעה, אבל התכונה לוקחת בחשבון גם גורמים אחרים, כמו מרחק ואת מספר פניות.
קבלת סידור מחדש של ציוני דרך
כדי לקבל מסלול עם ציוני דרך בסדרת סדר שונה, יש להגדיר את השדה הבוליאני
optimizeWaypointOrder
אל true
בגוף הבקשה אל
ComputeRoutes
. צריך לכלול גם את השדה optimizedIntermediateWaypointIndex
במסכת השדות. גוף התשובה מכיל את הסדר שעבר אופטימיזציה ב-
השדות optimizedIntermediateWaypointIndex
.
הערה: השדה optimizedIntermediateWaypointIndex
מחזירה מודל אפס.
ערכים.
דוגמה לבקשה
הבקשה הבאה לדוגמה מספקת מסלול ליד סטנפורד קמפוס האוניברסיטה. נקודות העצירה במסלול סופקו ברצף בקשה. הבקשה מכילה מקור ויעד, עם שני ביניים נקודות ציון.
POST /v1alpha:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Server-Timeout: 10
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
"origin":{
"location":{
"latLng":{
"latitude": 37.418956,
"longitude": -122.160815
}
}
},
"intermediates": [
{
"location":{
"latLng":{
"latitude": 37.4176423,
"longitude":-122.1102246
}
}
},
{
"location":{
"latLng":{
"latitude": 37.407689,
"longitude": -122.1360597
}
}
}
],
"destination":{
"location":{
"latLng":{
"latitude": 37.4032137,
"longitude": -122.0349119
}
}
},
"travelMode": "DRIVE",
"optimizeWaypointOrder": true,
"routingPreference": "TRAFFIC_AWARE"}
דוגמה לתגובה
ניתן למצוא את האינדקסים של ציוני הדרך ברמת הביניים שמסודרים מחדש
שדות optimizedIntermediateWaypointIndex
בתוך אובייקט הנתיבים ב-
גוף התגובה. הקוד המקודד
קו פוליגוני
זהה ל-
Directions API וגם
ComputeRoutes.
routes {
distance_meters: 17647
duration {
seconds: 1866
}
polyline {
encoded_polyline: "wkkcFvorhVU{@Ec@C}CG}@Mm@[}@i@y@[[g@_@Tk@BSjCgGfF|D\\Pv@Lj@@XaCTeC\\aCTs@`ByD`@k@h@e@x@Yh@GtADhBF|@G`AWpAs@lAsAdA{A`BmDr@cBmUqQoS}OyGmFiBsAgEwD}CaCU_@Og@@e@Hy@nGkO~@sBr@cBlDqIlByEp@}AjIfGnBbBHLLd@^p@~ErDfNrKrA~@DIhEeBTQ~AqDlE{KjBgE|FnEh@aAi@`A}FoE~AmD`A}BcAm@mHwFwD}CkLwIsDqCgF_EG[GKnCsDrA_BrC_CnCoBpEkD`EyClCsBcBeBIAkGkH]k@eJmKQKsAuA_@g@wCoDGQmEmFmIqROKaDuHvBkBxAgANCRH^f@v@dBHDD?`AUiBqEhBpEaATMCQYm@wAY]SIOByAfAwBjB_ByDaAwBiCeIA[c@aBqEuNOm@IQbA{c@p@aZFmCTuBLg@Tc@BUAKxOeV~Vy_@nBoDv@_BvAcDzA_EdG{RdC{HtIsY|B{Hx@mDbAuFdBsMbKsv@TaBf@}AdF{Sn@_DJq@Lo@aE`@]GUQmAmAQk@@g@RK`Ce@d@UDEPc@f@cCrAyGJs@X{AbIem@bA{JD_AIaAMg@o@{A_Ad@y@NaCLCsCK_FGI"
}
optimizedIntermediateWaypointIndex: 1
optimizedIntermediateWaypointIndex: 0
}
בדוגמה הזו, שימו לב שביצוע אופטימיזציה של ציוני הדרך מבטל את ההמרה המקורית הזמנה.
שיטות מומלצות
עיבוד בקשה עם ציוני דרך שעברו אופטימיזציה נמשך זמן רב יותר מאשר ניתוב פשוט
בקשה. לכן, מומלץ להגדיר זמן קצוב ארוך יותר להפעלת ה-method
על ידי הגדרת ערך לכותרת הבקשה X-Server-Timeout
לפחות לעשר
שניות. אם מתקבלות שגיאות של זמן קצוב לתפוגה, אפשר להוסיף עוד שנייה
ולנסות שוב.
מגבלות שימוש
כדי להשתמש באופטימיזציה של ציוני דרך, עליך לפעול בהתאם למגבלות השימוש הבאות תנאים:
ניתן להגדיר עד מגבלת השימוש לנקודות ציון ביניים נתיב:
- עד 98 ציוני דרך תוך שימוש בקואורדינטות של קווי אורך ורוחב בלבד.
- עד 25 ציוני דרך אם מציינים ציוני דרך באמצעות מזהי מקומות.
כל נקודות הדרך חייבות להיות מסוג עצירת ביניים. אף אחת מציוני הדרך הוא יכול להיות מסוג דרך.
צריך להוסיף את
routes.optimizedIntermediateWaypointIndex
לשדה לבצע אנונימיזציה.אם הבקשה כוללת 25 ציוני דרך או יותר, היא חייבת גם לציית לתנאים הבאים:
המרחק של הקו הישר שנצבר בין כל נקודות הדרך חייב להיות פחות מ-1,000 ק"מ. המרחק הזה כולל גם את נקודת המוצא וגם את היעד.
מצב הנסיעה חייב להיות drive.