بشكل تلقائي، تعرض واجهة برمجة التطبيقات 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" ] } ] }