بشكل تلقائي، تعرض 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" ] } ] }
تضمين الخطوط المتعددة في الردّ
لتسهيل تحديد المستخدم للمسار، يمكنك إضافة polyline لكل مسار يؤدّي إلى الردّ. يمكنك بعد ذلك لعرض كل خط متعدد على الخريطة.
لإضافة الخطوط المتعددة، يجب تضمين 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" ] } ] }