تعرض Routes API تلقائيًا المسار التلقائي، وهو عادةً أسرع مسار من نقطة الانطلاق إلى الوجهة. عندما تطلب مسارات بديلة، تعرض واجهة برمجة التطبيقات ما يصل إلى ثلاثة مسارات مع المسار التلقائي. وبالتالي يمكن لعملائك اختيار المسار الذي يناسب متطلباتهم على أفضل نحو.
الاعتبارات الواجب مراعاتها عند طلب مسارات بديلة
لطلب مسارات بديلة، انتبه إلى الاعتبارات التالية:
يمكنك فقط طلب مسارات بديلة للمسارات بدون نقاط طرق وسيطة. لا يؤدي طلب مسارات بديلة عندما يحدد المسار نقاط طريق وسيطة إلى حدوث خطأ. ومع ذلك، لا يتم إرجاع أي مسارات بديلة.
تتضمّن الإجابة ثلاثة مسارات بديلة كحدّ أقصى. ومع ذلك، لا تتوفر في بعض الأحيان مسارات بديلة، لذا تحتوي الاستجابة فقط على المسار الافتراضي.
بسبب المعالجة الإضافية المطلوبة لحساب المسارات البديلة، قد يؤدي طلب مسارات بديلة إلى زيادة وقت استجابة واجهة برمجة التطبيقات.
مثال على طلب المسارات البديلة
اضبط computeAlternativeRoutes
على true
لطلب مسارات بديلة. يوضح المثال التالي كيفية طلب مسارات بديلة في طلب طريقة computeRoutes (REST).
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
في هذا المثال، يمكنك تحديد قناع حقل لكي لا تحتوي الاستجابة إلا على السمات
duration
وdistanceMeters,
وrouteLabels
لكل مسار. يمكن لعميلك بعد ذلك استخدام هذه المعلومات لاختيار المسار الذي يجب أن يسلكه. لمزيد من المعلومات، يُرجى الاطّلاع على اختيار المعلومات المطلوب عرضها.
مثال على الاستجابة للمسارات البديلة
في الاستجابة، استخدِم سمة الصفيف routeLabels
لتحديد مسار مدى الوصول:
بالنسبة إلى المسار التلقائي، تحتوي السمة
routeLabels
علىDEFAULT_ROUTE
.بالنسبة إلى أي مسارات بديلة، تحتوي السمة
routeLabels
علىDEFAULT_ROUTE_ALTERNATE
.
في هذا المثال، تحتوي الاستجابة على المسار الافتراضي والمسارين البديلين. لاحظ أنّ قيم السمتَين duration
وdistanceMeters
مختلفة لكلّ مسار:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
تضمين الخطوط المتعددة في الرد
لتسهيل اختيار المسار على المستخدم، أضِف الخط المتعدد لكل مسار إلى الاستجابة. يمكنك بعد ذلك عرض كل خط متعدد الخط على الخريطة.
لإضافة الخط المتعدد، أدرِج routes.polyline
في قناع الحقل:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
ثم تحتوي الاستجابة على الخطوط المتعددة لكل مسار:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }