ডিফল্টরূপে, এপিআই মধ্যবর্তী ওয়েপয়েন্টগুলোকে একটি রুটের স্টপ হিসেবে গণ্য করে। তবে, আপনি একটি মধ্যবর্তী ওয়েপয়েন্টকে এমন একটি পাস-থ্রু via ওয়েপয়েন্ট হিসেবে কনফিগার করতে পারেন, যার মধ্য দিয়ে যানবাহনটি না থেমে অতিক্রম করে যায়।
একটি নির্দিষ্ট রুটকে আকার দিতে বা সামঞ্জস্য করতে পাস-থ্রু ওয়েপয়েন্ট ব্যবহার করুন। রুটটিকে আলাদা পিকআপ বা ড্রপ-অফ স্টপে বিভক্ত করার পরিবর্তে, একটি পাস-থ্রু ওয়েপয়েন্ট রাউটিং ইঞ্জিনকে গন্তব্যে যাওয়ার পথে একটি নির্দিষ্ট স্থানের মধ্য দিয়ে যেতে বাধ্য করে—উদাহরণস্বরূপ, একটি পছন্দের রাস্তা অনুসরণ করতে বা একটি পরিচিত বিপদ এড়াতে।
যে রুটে একটি উৎস, এক বা একাধিক মধ্যবর্তী পথবিন্দু এবং একটি গন্তব্য থাকে, সেই রুটে কেবল একটিই শাখা থাকে যা উৎসকে সরাসরি গন্তব্যের সাথে সংযুক্ত করে।
একটি মধ্যবর্তী ওয়েপয়েন্টকে পাস-থ্রু ওয়েপয়েন্ট হিসেবে কনফিগার করতে, REST ওয়েপয়েন্ট রিসোর্স অথবা gRPC ওয়েপয়েন্ট মেসেজ—যেকোনো একটিতে ওয়েপয়েন্টটির via প্রপার্টির মান true সেট করুন।
যদিও রাউটস এপিআই ঠিকানা, প্লেস আইডি এবং অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক গ্রহণ করে, পাস-থ্রু ওয়েপয়েন্টগুলোর জন্য অক্ষাংশ ও দ্রাঘিমাংশ বা latLng স্থানাঙ্কই সবচেয়ে নির্ভুল রুট সমন্বয় প্রদান করে ।
ম্যাপে ওয়েপয়েন্ট ড্র্যাগ করে রুট তৈরি করার সময় via ' প্রপার্টিটি সবচেয়ে কার্যকর হয়। এই পদ্ধতিটি আপনাকে রিয়েল টাইমে চূড়ান্ত রুটটি কেমন দেখাবে তা দেখতে দেয় এবং সহজগম্য স্থানে ওয়েপয়েন্ট স্থাপন করতে সাহায্য করে।
উদাহরণ: একটি পাস-থ্রু ওয়েপয়েন্ট সেট করুন
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি সম্পূর্ণ computeRoutes POST অনুরোধের মধ্যবর্তী ওয়েপয়েন্টে "via": true সেট করতে হয়:
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'
পাস-থ্রু ওয়েপয়েন্টের জন্য ঠিকানা বা স্থান আইডি ব্যবহার করা
সুনির্দিষ্ট পাস-থ্রু রুটিংয়ের জন্য আমরা অক্ষাংশ ও দ্রাঘিমাংশের স্থানাঙ্ক ব্যবহারের সুপারিশ করলেও, আপনি একটি অ্যাড্রেস স্ট্রিং বা প্লেস আইডি ব্যবহার করে মধ্যবর্তী ওয়েপয়েন্টও নির্দিষ্ট করতে পারেন।
যখন আপনি একটি পাস-থ্রু ওয়েপয়েন্টের জন্য কোনো ঠিকানা বা প্লেস আইডি ব্যবহার করেন, তখন এপিআই নিকটতম চলাচলযোগ্য রাস্তায় অবস্থানটি ইন্টারপোলেট করে ও স্ন্যাপ করে। এই রোড-স্ন্যাপিং প্রক্রিয়ার ফলে কখনও কখনও সঠিক স্থানাঙ্কের তুলনায় রুটে ভিন্নতা বা ভুলত্রুটি দেখা দিতে পারে।
আপনি যদি কোনো অ্যাড্রেস স্ট্রিং বা প্লাস কোড ব্যবহার করে একটি ওয়েপয়েন্ট নির্দিষ্ট করেন, তাহলে API সেই অবস্থানটিকে জিওকোড করে এবং রেসপন্সের geocodingResults.intermediates অ্যারেতে মিলে যাওয়া প্লেস আইডিটি ফেরত দেয়।
intermediates অ্যারের প্রতিটি উপাদানের জন্য, intermediateWaypointRequestIndex প্রপার্টি ব্যবহার করে নির্ধারণ করুন যে অনুরোধের কোন মধ্যবর্তী ওয়েপয়েন্টটি প্রতিক্রিয়ার Place ID-এর সাথে সঙ্গতিপূর্ণ।
উদাহরণ: অতিক্রমকারী ওয়েপয়েন্টগুলির জন্য স্থান আইডি অনুরোধ করুন
নিম্নলিখিত উদাহরণটি তিনটি পাস-থ্রু অন্তর্বর্তী ওয়েপয়েন্ট সহ একটি অনুরোধ দেখায়, যার প্রত্যেকটিতে "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 অ্যারে অন্তর্ভুক্ত থাকে, যেখানে উৎস, গন্তব্য এবং অনুরোধের ইনডেক্স ০ ও ইনডেক্স ২-এ ঠিকানা দ্বারা আপনার নির্দিষ্ট করা দুটি মধ্যবর্তী ওয়েপয়েন্টের প্লেস আইডিগুলো থাকে। এপিআই 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" } ] } }