একটি রুট ম্যাট্রিক্স গণনা করতে হলে, আপনাকে ন্যূনতম একটি রুট উৎস এবং একটি রুট গন্তব্যের অবস্থান অবশ্যই নির্দিষ্ট করতে হবে।
একটি রুটের জন্য অবস্থানগুলি নির্দিষ্ট করুন।
আপনি একটি ওয়েপয়েন্ট (REST) বা ওয়েপয়েন্ট (gRPC) অবজেক্ট তৈরি করে কোনো অবস্থান নির্দেশ করেন। ওয়েপয়েন্ট সংজ্ঞায়নে, আপনি নিম্নলিখিত যেকোনো উপায়ে একটি অবস্থান নির্দিষ্ট করতে পারেন:
- স্থান পরিচয়পত্র (বাঞ্ছনীয়)
- অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক
- ঠিকানা স্ট্রিং ("শিকাগো, আইএল" অথবা "ডারউইন, এনটি, অস্ট্রেলিয়া")
- নেভিগেশন পয়েন্ট টোকেন
- প্লাস কোড
আপনি একটি অনুরোধের সমস্ত ওয়েপয়েন্টের জন্য অবস্থান একই উপায়ে নির্দিষ্ট করতে পারেন, অথবা সেগুলোকে মিশ্রিতও করতে পারেন। উদাহরণস্বরূপ, আপনি উৎস ওয়েপয়েন্টের জন্য অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক এবং গন্তব্য ওয়েপয়েন্টের জন্য একটি স্থান আইডি ব্যবহার করতে পারেন।
দক্ষতা ও নির্ভুলতার জন্য, অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক বা ঠিকানা স্ট্রিং-এর পরিবর্তে স্থান আইডি (place ID) ব্যবহার করুন। স্থান আইডিগুলো স্বতন্ত্রভাবে সুনির্দিষ্ট এবং রাউটিং-এর জন্য জিওকোডিং সুবিধা প্রদান করে, যেমন অ্যাক্সেস পয়েন্ট ও ট্র্যাফিক ভেরিয়েবল। অবস্থান নির্দিষ্ট করার অন্যান্য পদ্ধতির ফলে যে পরিস্থিতিগুলো তৈরি হতে পারে, সেগুলো এড়াতে এগুলো সাহায্য করে:
- অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক ব্যবহার করলে অবস্থানটি সেই স্থানাঙ্কের সবচেয়ে কাছের রাস্তায় স্থির হয়ে যেতে পারে - যা হয়তো সম্পত্তিতে প্রবেশের পথ নয়, এমনকি এমন কোনো রাস্তাও নয় যা দ্রুত বা নিরাপদে গন্তব্যে নিয়ে যায়।
- একটি রুট গণনা করার আগে, ঠিকানা স্ট্রিংগুলিকে অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কে রূপান্তর করার জন্য Routes API দ্বারা প্রথমে জিওকোড করতে হয়। এই রূপান্তরটি পারফরম্যান্সকে প্রভাবিত করতে পারে।
একটি অবস্থানকে স্থান আইডি হিসেবে নির্দিষ্ট করুন।
আপনি একটি ওয়েপয়েন্টের অবস্থান নির্দিষ্ট করতে প্লেস আইডি ব্যবহার করতে পারেন। যেহেতু অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্কগুলো রাস্তার সাথে সংযুক্ত থাকে, তাই কিছু পরিস্থিতিতে প্লেস আইডি আরও ভালো ফলাফল দিতে পারে।
জিওকোডিং এপিআই এবং প্লেসেস এপিআই (প্লেস অটোকমপ্লিট সহ) থেকে স্থানের আইডি সংগ্রহ করুন। স্থানের আইডি সম্পর্কে আরও জানতে, প্লেস আইডি ওভারভিউ দেখুন।
নিম্নলিখিত উদাহরণে origin এবং destination উভয়ের জন্য একটি স্থান আইডি পাস করতে placeId প্রপার্টি ব্যবহার করা হয়েছে:
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে একটি অবস্থান নির্দিষ্ট করুন।
একটি ওয়েপয়েন্টে অবস্থান নির্ধারণ করতে, অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক ব্যবহার করে অবস্থান (REST) বা অবস্থান (gRPC) নির্দিষ্ট করুন।
উদাহরণস্বরূপ, latitude এবং longitude স্থানাঙ্ক ব্যবহার করে রুটের origin এবং destination জন্য একটি ওয়েপয়েন্ট নির্দিষ্ট করুন:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, ... }
ঠিকানা স্ট্রিং হিসাবে একটি অবস্থান নির্দিষ্ট করুন।
অ্যাড্রেস স্ট্রিং হলো একটি স্ট্রিং দ্বারা উপস্থাপিত আক্ষরিক ঠিকানা (যেমন "1600 Amphitheatre Parkway, Mountain View, CA")। জিওকোডিং হলো একটি অ্যাড্রেস স্ট্রিংকে অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্কে রূপান্তর করার প্রক্রিয়া (যেমন অক্ষাংশ ৩৭.৪২৩০২১ এবং দ্রাঘিমাংশ -১২২.০৮৩৭৩৯)।
যখন আপনি কোনো ওয়েপয়েন্টের অবস্থান হিসেবে একটি অ্যাড্রেস স্ট্রিং পাস করেন, তখন রাউটস এপিআই অভ্যন্তরীণভাবে স্ট্রিংটিকে জিওকোড করে অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্কে রূপান্তর করে।
উদাহরণস্বরূপ, একটি রুট গণনা করার জন্য আপনি অ্যাড্রেস স্ট্রিং ব্যবহার করে রুটের origin এবং destination জন্য একটি ওয়েপয়েন্ট নির্দিষ্ট করেন:
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
এই উদাহরণে, Routes API উভয় ঠিকানাকেই জিওকোড করে অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কে রূপান্তর করে।
ঠিকানার মান অস্পষ্ট হলে, Routes API একই রকম ঠিকানা থেকে এটিকে আলাদা করার জন্য একটি অনুসন্ধান শুরু করতে পারে। উদাহরণস্বরূপ, "1st Street" ঠিকানাটি "1st street NE" বা "1st St SE"-এর একটি সম্পূর্ণ বা আংশিক মান হতে পারে। এই ফলাফলটি Geocoding API দ্বারা প্রাপ্ত ফলাফলের থেকে ভিন্ন হতে পারে। আপনি প্লেস আইডি ব্যবহার করে এই সম্ভাব্য ভুল বোঝাবুঝি এড়াতে পারেন।
ঠিকানার জন্য অঞ্চল নির্ধারণ করুন
যদি আপনি কোনো ওয়েপয়েন্টের অবস্থান হিসেবে একটি অসম্পূর্ণ ঠিকানা স্ট্রিং দেন, তাহলে এপিআই ভুল জিওকোডেড অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক ব্যবহার করতে পারে। উদাহরণস্বরূপ, আপনি একটি ড্রাইভিং রুটের জন্য উৎস হিসেবে "টলেডো" এবং গন্তব্য হিসেবে "মাদ্রিদ" উল্লেখ করে একটি অনুরোধ করলেন:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
এই উদাহরণে, "টলেডো"-কে মার্কিন যুক্তরাষ্ট্রের ওহাইও রাজ্যের একটি শহর হিসেবে গণ্য করা হয়েছে, স্পেনের নয়। তাই, অনুরোধটি একটি খালি অ্যারে ফেরত দেয়, যার অর্থ কোনো রুট বিদ্যমান নেই:
{ [] }
আপনি regionCode প্যারামিটারটি অন্তর্ভুক্ত করে একটি নির্দিষ্ট অঞ্চলের প্রতি পক্ষপাতদুষ্ট ফলাফল ফেরত দেওয়ার জন্য API কনফিগার করতে পারেন। এই প্যারামিটারটি একটি ccTLD ("টপ-লেভেল ডোমেইন") দুই-অক্ষরের মান হিসাবে অঞ্চল কোড নির্দিষ্ট করে। কিছু উল্লেখযোগ্য ব্যতিক্রম ছাড়া, বেশিরভাগ ccTLD কোড ISO 3166-1 কোডের অনুরূপ। উদাহরণস্বরূপ, যুক্তরাজ্যের ccTLD হলো "uk" (.co.uk) এবং এর ISO 3166-1 কোড হলো "gb" (যা প্রযুক্তিগতভাবে "The United Kingdom of Great Britain and Northern Ireland" সত্তাটিকে বোঝায়)।
"টলেডো" থেকে "মাদ্রিদ"-এ যাওয়ার দিকনির্দেশনার অনুরোধে যদি regionCode প্যারামিটারটি অন্তর্ভুক্ত থাকে, তবে তা যথাযথ ফলাফল প্রদান করে, কারণ "টলেডো"-কে স্পেনের একটি শহর হিসেবে গণ্য করা হয়:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE", "regionCode": "es" }
প্রতিক্রিয়াটিতে এখন স্পেনের টলেডো থেকে স্পেনের মাদ্রিদ পর্যন্ত গণনা করা পথনির্দেশটি রয়েছে:
{ "routes": [ { "distanceMeters": 75330, "duration": "4137s", ... } ] }
একটি অবস্থানকে নেভিগেশন পয়েন্ট টোকেন হিসেবে নির্দিষ্ট করুন।
নেভিগেশন পয়েন্ট টোকেন হলো একটি স্ট্রিং যা একটি অবস্থান এবং পথের অতিরিক্ত তথ্য এনকোড করে। নেভিগেশন পয়েন্ট টোকেন প্রবেশপথের কাছাকাছি নির্দিষ্ট অ্যাক্সেস পয়েন্ট, লোডিং ডক বা নির্ধারিত পিক-আপ এলাকায় নির্ভুল পথনির্দেশনা দিতে পারে। ফুড ডেলিভারি বা রাইডশেয়ারের মতো ক্ষেত্রে এটি উপযোগী, যেখানে পিক-আপ বা ড্রপ-অফ পয়েন্ট অস্পষ্ট হতে পারে।
আপনি জিওকোডিং এপিআই- এর ডেস্টিনেশনস মেথডটি কল করে একটি নেভিগেশন পয়েন্ট টোকেন পেতে পারেন।
একটি নেভিগেশন পয়েন্ট টোকেন নির্দিষ্ট করতে:
- জিওকোডিং এপিআই- এর
SearchDestinationsমেথড থেকে একটিnavigationPointTokenসংগ্রহ করুন। আরও তথ্যের জন্য জিওকোডিং এপিআই ডকুমেন্টেশন দেখুন। -
navigationPointTokenটি পাস করে একটি ওয়েপয়েন্ট তৈরি করুন।
নিম্নলিখিত উদাহরণটি origin এবং destination উভয়ের জন্য একটি নেভিগেশন পয়েন্ট টোকেন পাস করতে navigation_point_token প্রপার্টি ব্যবহার করে:
{ "origin":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN" }, "destination":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION" }, ... }
একটি অবস্থানকে প্লাস কোড হিসেবে নির্দিষ্ট করুন।
অনেকেরই সুনির্দিষ্ট ঠিকানা থাকে না, যার ফলে তাদের জন্য ডেলিভারি গ্রহণ করা কঠিন হয়ে পড়ে। আবার, যাদের ঠিকানা আছে, তারা হয়তো আরও নির্দিষ্ট কোনো জায়গায়, যেমন বাড়ির পেছনের প্রবেশপথ বা মালামাল বোঝাই করার জায়গায়, ডেলিভারি নিতে পছন্দ করেন।
যেসব ব্যক্তি বা স্থানের কোনো প্রকৃত ঠিকানা নেই, তাদের জন্য প্লাস কোড অনেকটা রাস্তার ঠিকানার মতো। রাস্তার নাম ও নম্বরযুক্ত ঠিকানার পরিবর্তে, প্লাস কোডগুলো অক্ষাংশ/দ্রাঘিমাংশের স্থানাঙ্কের উপর ভিত্তি করে তৈরি হয় এবং সংখ্যা ও অক্ষর হিসেবে প্রদর্শিত হয়।
গুগল প্রত্যেককে এবং সবকিছুকে ঠিকানার সুবিধা দেওয়ার জন্য প্লাস কোড তৈরি করেছে। একটি প্লাস কোড হলো অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক থেকে প্রাপ্ত একটি এনকোডেড অবস্থান নির্দেশক, যা ১/৮০০০ ডিগ্রি বাই ১/৮০০০ ডিগ্রি (নিরক্ষীয় অঞ্চলে প্রায় ১৪মি x ১৪মি) বা তার চেয়ে ছোট একটি এলাকাকে প্রতিনিধিত্ব করে। যেসব জায়গায় রাস্তার ঠিকানা নেই, অথবা যেখানে ভবনগুলোতে নম্বর দেওয়া নেই বা রাস্তার নাম নেই, সেখানে আপনি রাস্তার ঠিকানার বিকল্প হিসেবে প্লাস কোড ব্যবহার করতে পারেন।
প্লাস কোড অবশ্যই গ্লোবাল কোড বা কম্পাউন্ড কোড হিসাবে ফরম্যাট করতে হবে:
- একটি গ্লোবাল কোড ৪ অক্ষরের একটি এরিয়া কোড এবং ৬ অক্ষর বা তার চেয়ে দীর্ঘ একটি লোকাল কোড নিয়ে গঠিত।
উদাহরণস্বরূপ, "1600 Amphitheatre Parkway, Mountain View, CA" ঠিকানাটির জন্য, গ্লোবাল কোড হল "849V" এবং লোকাল কোড হল "CWC8+R9"। এরপর আপনি সম্পূর্ণ ১০ অক্ষরের প্লাস কোডটি ব্যবহার করে অবস্থানের মান "849VCWC8+R9" হিসাবে নির্দিষ্ট করবেন।
- একটি যৌগিক কোড ছয় বা ততোধিক অক্ষরের একটি স্থানীয় কোড এবং একটি সুস্পষ্ট অবস্থানের সমন্বয়ে গঠিত হয়।
উদাহরণস্বরূপ, "450 Serra Mall, Stanford, CA 94305, USA" ঠিকানাটির স্থানীয় কোড হলো "CRHJ+C3"। একটি যৌগিক ঠিকানার জন্য, স্থানীয় কোডের সাথে ঠিকানার শহর, রাজ্য, জিপ কোড এবং দেশের অংশকে "CRHJ+C3 Stanford, CA 94305, USA" আকারে একত্রিত করুন।
উদাহরণস্বরূপ, প্লাস কোড ব্যবহার করে রুটের
originএবংdestinationজন্য একটি ওয়েপয়েন্ট নির্দিষ্ট করে একটি রুট গণনা করুন:{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
গুগল ম্যাপস প্ল্যাটফর্ম এপিআই-গুলোতে প্লাস কোড সমর্থিত, যার মধ্যে রয়েছে প্লেস অটোকমপ্লিট , প্লেস ডিটেইলস , ডাইরেকশনস এপিআই (লেগ্যাসি) , এবং জিওকোডিং এপিআই । উদাহরণস্বরূপ, আপনি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক দ্বারা নির্দিষ্ট কোনো অবস্থানের প্লাস কোড নির্ধারণ করতে জিওকোডিং এপিআই ব্যবহার করে সেই অবস্থানটিকে রিভার্স জিওকোড করতে পারেন।