כברירת מחדל, השיטה computeRoutes בספריית המסלולים
מחשבת מסלול דרך כמה תחנות, שנקראות נקודות ציון לעצירה, לפי הסדר שבו
הן מופיעות.
אפשר להשתמש ב-Routes API כדי לבצע אופטימיזציה של המסלול שצוין על ידי סידור מחדש של העצירות בסדר יעיל יותר. אופטימיזציה של נקודות ציון משפרת את זמן הנסיעה, אבל גם מביאה בחשבון גורמים אחרים כמו מרחק ומספר פניות, כדי להחליט איזה מסלול הוא היעיל ביותר.
כדי לבצע אופטימיזציה של ציוני דרך
- מוודאים שאף אחת מנקודות הביניים במסלול לא מוגדרת כ
viatrue. - מוודאים שהערך של
routingPreferenceלא מוגדר כ-TRAFFIC_AWARE_OPTIMAL. - מגדירים את
optimizeWaypointOrderלהיותtrue. - מציינים את השדה
optimizedIntermediateWaypointIndicesבמסכת השדות.
איך מתבצעת אופטימיזציה של סדר ציוני הדרך
כך מתבצעת אופטימיזציה של סדר ציוני הדרך במסלול באמצעות Routes API:
- הנקודות לציון דרך עוברות אינדוקס אוטומטי לפי הסדר שבו הן מופיעות בבקשה, החל מ-0.
- הוא מבצע אופטימיזציה של סדר נקודות הציון באמצעות מספרי האינדקס שהוקצו לנקודות הציון בבקשה.
- הפונקציה מחזירה את הסדר האופטימלי של נקודות הדרך בתשובה בקטע
optimizedIntermediateWaypointIndices.
דוגמה לבקשה
בדוגמה הבאה מוצגות בקשות לנקודות ציון אופטימליות במסלול מאדלייד שבדרום אוסטרליה לכל אחד מאזורי היין העיקריים בדרום אוסטרליה, ואז חזרה לאדלייד.
const request = { origin: 'Adelaide, SA', destination: 'Adelaide, SA', intermediates: [ {location: "Barossa+Valley,SA"}, {location: "Clare,SA"}, {location: "Coonawarra,SA"}, {location: "McLaren+Vale,SA"}, ], travelMode: 'DRIVING', optimizeWaypointOrder: true, fields: ['path','optimizedIntermediateWaypointIndices'], };
דוגמה לתשובה
התשובה כוללת אתoptimizedIntermediateWaypointIndices.
Response: [ { "optimizedIntermediateWaypointIndices": [ 3, // McLaren+Vale, SA 2, // Coonawarra, SA 0, // Barossa+Valley, SA 1 // Clare, SA ], ...