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