تتعامل واجهة برمجة التطبيقات تلقائيًا مع نقاط المرور الوسيطة على أنّها محطات توقّف على طول مسار الرحلة.
ومع ذلك، يمكنك ضبط نقطة مرور وسيطة على أنّها نقطة مرور via لا تتوقف فيها المركبة.
استخدِم نقاط المرور التي لا تتوقف فيها المركبة لتحديد مسار معيّن أو تعديله. بدلاً من تقسيم المسار إلى محطات منفصلة للاصطحاب أو الإنزال، تجبر نقطة المرور التي لا تتوقف فيها المركبة محرّك التوجيه على المرور بموقع جغرافي معيّن في الطريق إلى الوجهة، مثلاً، لاتبّاع جزء مفضّل من الطريق أو تجنُّب خطر معروف.
يحتوي المسار الذي يتضمّن نقطة انطلاق ونقطة وصول ونقطة مرور وسيطة واحدة أو أكثر لا تتوقف فيها المركبة على جزء واحد فقط من المسار يربط نقطة الانطلاق مباشرةً بنقطة الوصول.
لضبط نقطة مرور وسيطة على أنّها نقطة مرور لا تتوقف فيها المركبة، اضبط السمة
via لنقطة المرور على true في مورد
Waypoint في REST أو رسالة
Waypoint في gRPC.
على الرغم من أنّ Routes API تقبل العناوين ومعرّفات الأماكن وإحداثيات خطوط العرض والطول
، فإنّ إحداثيات خطوط العرض والطول، أو latLng، توفّر
تعديلات المسار الأكثر دقة لنقاط المرور التي لا تتوقف فيها المركبة.
تكون السمة via أكثر فعالية عند إنشاء مسارات استجابةً لسحب نقاط المرور على الخريطة. يتيح لك هذا النهج الاطّلاع على شكل المسار النهائي في الوقت الفعلي ويساعدك في وضع نقاط المرور في مواقع يسهل الوصول إليها.
مثال: ضبط نقطة مرور لا تتوقف فيها المركبة
يوضّح المثال التالي كيفية ضبط "via": true على نقطة مرور وسيطة
في طلب computeRoutes كامل من نوع POST:
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } }, "via": true } ], "travelMode": "DRIVE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
استخدام العناوين أو معرّفات الأماكن لنقاط المرور التي لا تتوقف فيها المركبة
على الرغم من أنّنا ننصح باستخدام إحداثيات خطوط العرض والطول للتوجيه الدقيق لنقاط المرور التي لا تتوقف فيها المركبة، يمكنك أيضًا تحديد نقاط المرور الوسيطة باستخدام سلسلة عنوان أو معرّف مكان.
عند استخدام عنوان أو معرّف مكان لنقطة مرور لا تتوقف فيها المركبة، تُجري واجهة برمجة التطبيقات عملية استيفاء وتثبّت الموقع الجغرافي على أقرب طريق يمكن سلوكه. قد تؤدي عملية التثبيت على الطريق هذه في بعض الأحيان إلى اختلافات في المسار أو عدم دقة مقارنةً بالإحداثيات الدقيقة.
إذا حدّدت نقطة مرور باستخدام سلسلة عنوان أو رمز موقع مفتوح، ستُجري واجهة برمجة التطبيقات
عملية تحديد الموقع الجغرافي وتعرض معرّف المكان المطابق في الـ
geocodingResults.intermediates
في الرد.
بالنسبة إلى كل عنصر في مصفوفة intermediates، استخدِم السمة intermediateWaypointRequestIndex لتحديد نقطة المرور الوسيطة في الطلب التي تتطابق مع معرّف المكان في الرد.
مثال: طلب معرّفات الأماكن لنقاط المرور التي لا تتوقف فيها المركبة
يعرض المثال التالي طلبًا يتضمّن ثلاث نقاط مرور وسيطة لا تتوقف فيها المركبة
، ويحدّد كل منها "via": true
curl -X POST -d '{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "24 Willie Mays Plaza, San Francisco, CA 94107" }, "intermediates": [ { "address": "450 Serra Mall, Stanford, CA 94305, USA", "via": true }, { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } }, "via": true }, { "address": "1836 El Camino Real, Redwood City, CA 94063", "via": true } ], "travelMode": "DRIVE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
يتضمّن الرد مصفوفة geocodingResults التي تحتوي على معرّفات الأماكن لنقطة الانطلاق ونقطة الوصول ونقطتَي المرور الوسيطتَين اللتَين حدّدتهما حسب العنوان في فهرس الطلب 0 والفهرس 2. تحذف واجهة برمجة التطبيقات نقطة المرور الوسيطة في الفهرس 1 من geocodingResults لأنّك حدّدتها باستخدام إحداثيات خطوط العرض والطول:
{ "routes": [ { "distanceMeters": 54200, "duration": "2400s", "legs": [ { "distanceMeters": 54200, "duration": "2400s", "startLocation": { "latLng": { "latitude": 37.4220, "longitude": -122.0841 } }, "endLocation": { "latLng": { "latitude": 37.7786, "longitude": -122.3893 } } } ] } ], "geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, "destination": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY" }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 0, "type": [ "street_address" ], "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y" }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 2, "type": [ "premise" ], "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0" } ] } }