Directions API (Legacy)-এর মাধ্যমে দিকনির্দেশ পাওয়া

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA)-এর ডেভেলপার

এই প্রোডাক্টটি লেগেসি স্ট্যাটাসে আছে। অক্টোবর ২০২৬ থেকে, নতুন Google Cloud প্রোজেক্টের জন্য Directions API (Legacy) আর চালু করা যাবে না। আগে থেকে থাকা প্রোজেক্ট সম্পূর্ণভাবে কাজ করবে। নতুন ফিচার ও উন্নত পারফর্ম্যান্সের জন্য, Routes API-তে মাইগ্রেট করুন।

ব্যবহারকারীর ইনপুটের (যেমন, ইউজার ইন্টারফেস এলিমেন্টের মধ্যে) রিয়েল-টাইম রেসপন্স হিসেবে দিকনির্দেশ সংক্রান্ত হিসাবের জন্য, আপনি Directions API (Legacy) ব্যবহার করতে পারেন অথবা আপনি Maps JavaScript API ব্যবহার করলে, Directions পরিষেবা ব্যবহার করুন। সার্ভার-সাইড ব্যবহারের জন্য, আপনি Google Maps পরিষেবার জন্য Java Client, Python Client, Go Client এবং Node.js Client ব্যবহার করতে পারবেন।

Directions API (পুরনো ভার্সন) ব্যবহার করে আপনি এগুলি করতে পারবেন:

  • ট্রানজিট, গাড়ি চালানো, হেঁটে যাওয়া বা সাইকেল চালানো সহ পরিবহনের বিভিন্ন মোডের জন্য দিকনির্দেশ সার্চ করুন।
  • একাধিক ওয়েপয়েন্ট ব্যবহার করে একাধিক অংশের দিকনির্দেশ দেখায়।
  • শুরু, গন্তব্য ও ওয়েপয়েন্ট টেক্সট স্ট্রিং হিসেবে উল্লেখ করুন (যেমন, "Chicago, IL" বা "Darwin, NT, Australia"), স্থান আইডি বা অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট হিসেবে।

দিকনির্দেশ গণনা করার সময় API সবচেয়ে দক্ষ রুট রিটার্ন করে। ভ্রমণের সময় হল প্রাথমিক ফ্যাক্টর যা অপ্টিমাইজ করা হয়, তবে কোন রুটটি সবচেয়ে দক্ষ তা নির্ধারণ করার সময় API দূরত্ব, কতগুলি বাঁক আছে এবং আরও অনেক কিছুর মতো অন্যান্য ফ্যাক্টরও বিবেচনা করতে পারে।

শুরু করার আগে

Directions API (Legacy) ব্যবহার করা শুরু করার আগে, আপনার একটি প্রোজেক্ট প্রয়োজন হবে যেখানে বিলিং অ্যাকাউন্ট এবং Directions API (Legacy) চালু করা আছে। আরও জানতে, Cloud কনসোলে সেট-আপ করুন দেখুন।

আপনার Directions API (Legacy) সংক্রান্ত অনুরোধ তৈরি করুন

Directions API (Legacy) অনুরোধের ফর্ম্যাট নিচে দেওয়া হল:

https://maps.googleapis.com/maps/api/directions/outputFormat?parameters

যেখানে outputFormat নিম্নলিখিত মানগুলির মধ্যে যেকোনও একটি হতে পারে:

  • json (সাজেস্ট করা হয়েছে) জাভাস্ক্রিপ্ট অবজেক্ট নোটেশনে (JSON) আউটপুট দেখায়
  • xml XML হিসেবে আউটপুট দেখায়

মনে রাখবেন: URL সঠিক হতে হলে সেটিকে সঠিকভাবে এনকোড করতে হবে এবং সব ওয়েব পরিষেবার জন্য ১৬৩৮৪ অক্ষরের মধ্যে সীমাবদ্ধ হতে হবে। আপনার URL তৈরি করার সময় এই সীমা সম্পর্কে সচেতন থাকুন।

URL-এর স্ট্যান্ডার্ড অনুযায়ী, সব প্যারামিটারকে অ্যামপারস্যান্ড (&) অক্ষর ব্যবহার করে আলাদা করা হয়। সব সংরক্ষিত অক্ষর (যেমন, যোগ চিহ্ন "+") অবশ্যই URL-এনকোড করা হতে হবে। প্যারামিটারের তালিকা এবং সেগুলির সম্ভাব্য মান নিচে উল্লেখ করা হল।

প্রয়োজনীয় প্যারামিটার

গন্তব্য

আপনি যে জায়গার দিকনির্দেশ গণনা করতে চান, সেটির স্থান আইডি, ঠিকানা বা টেক্সট হিসেবে অক্ষাংশ/দ্রাঘিমাংশের মান। ডেস্টিনেশন প্যারামিটারের বিকল্পগুলি অরিজিন প্যারামিটারের মতোই।

উৎস

যে জায়গা থেকে আপনি দিকনির্দেশ গণনা করতে চান, সেই জায়গার আইডি, ঠিকানা বা টেক্সট হিসেবে অক্ষাংশ/দ্রাঘিমাংশের ভ্যালু।

  • জায়গার আইডির শুরুতে place_id: থাকতে হবে। আপনি Geocoding API এবং Places API (জায়গা অটোমেটিক সম্পূর্ণ করা সহ) থেকে জায়গার আইডি ফিরিয়ে আনতে পারবেন। 'প্লেস অটো-কমপ্লিট' থেকে প্লেস আইডি ব্যবহার করার উদাহরণ দেখতে, প্লেস অটো-কমপ্লিট ও দিকনির্দেশ দেখুন। প্লেস আইডি সম্পর্কে আরও জানতে, প্লেস আইডি ওভারভিউ দেখুন।

    origin=place_id:ChIJ3S-JXmauEmsRUcIaWtf4MzE
    
  • আপনি কোনও ঠিকানা পাস করলে, Directions পরিষেবা স্ট্রিংটি জিওকোড করে এবং দিকনির্দেশ গণনা করার জন্য এটিকে অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটে রূপান্তর করে। এই স্থানাঙ্ক Geocoding API-এর মাধ্যমে পাওয়া স্থানাঙ্কের থেকে আলাদা হতে পারে, যেমন, কোনও বিল্ডিংয়ের কেন্দ্রের পরিবর্তে তার প্রবেশদ্বার।

    origin=24+Sussex+Drive+Ottawa+ON
    

    ঠিকানা বা অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটের পরিবর্তে প্লেস আইডি ব্যবহার করা বেশি সুবিধাজনক। স্থানাঙ্ক ব্যবহার করলে, সবসময় সেই স্থানাঙ্কের সবচেয়ে কাছের রাস্তায় পয়েন্টটি স্ন্যাপ করা হবে - যা প্রপার্টিতে পৌঁছানোর অ্যাক্সেস পয়েন্ট নাও হতে পারে, এমনকি সেই রাস্তা দিয়ে দ্রুত বা নিরাপদে গন্তব্যে পৌঁছানো নাও যেতে পারে।

  • আপনি স্থানাঙ্ক পাস করলে, পয়েন্টটি সবচেয়ে কাছের রাস্তায় স্ন্যাপ করবে। কোনও জায়গার আইডি পাস করাকে অগ্রাধিকার দেওয়া হয়। আপনি যদি স্থানাঙ্ক পাস করেন, তাহলে নিশ্চিত করুন যে অক্ষাংশ এবং দ্রাঘিমাংশের মানের মধ্যে কোনও স্পেস নেই।

    origin=41.43206,-81.38992
    
  • Plus কোড অবশ্যই গ্লোবাল কোড বা কম্পাউন্ড কোড হিসেবে ফর্ম্যাট করতে হবে। এখানে দেখানো ফর্ম্যাট অনুযায়ী Plus Code লিখুন (প্লাস চিহ্ন url-এ এড়িয়ে গিয়ে %2B এবং স্পেস url-এ এড়িয়ে গিয়ে %20 করা হয়েছে)।

    • গ্লোবাল কোড হল ৪ অক্ষরের এলাকার কোড এবং ৬ অক্ষর বা তার বেশি দৈর্ঘ্যের লোকাল কোড (849VCWC8+R9 হল 849VCWC8%2BR9)।
    • কম্পাউন্ড কোড হল ৬টি বা তার বেশি অক্ষর বিশিষ্ট স্থানীয় কোড যার সাথে নির্দিষ্ট লোকেশন উল্লেখ করা থাকে (CWC8+R9 Mountain View, CA, USA হল CWC8%2BR9%20Mountain%20View%20CA%20USA)।
মনে রাখবেন: দক্ষতা ও নির্ভুলতার জন্য, সম্ভব হলে জায়গার আইডি ব্যবহার করুন। এই আইডিগুলি অক্ষাংশ/দ্রাঘিমাংশ ভ্যালু পেয়ারের মতো অনন্যভাবে স্পষ্ট এবং অ্যাক্সেস পয়েন্ট ও ট্রাফিক ভেরিয়েবলের মতো রাউটিংয়ের জন্য জিওকোডিং সুবিধা প্রদান করে। ঠিকানার মতো, ID-এর ক্ষেত্রে সার্চ করার জন্য পরিষেবার প্রয়োজন হয় না অথবা জায়গার বিবরণের জন্য মধ্যবর্তী অনুরোধের প্রয়োজন হয় না; তাই, পারফর্ম্যান্স আরও ভালো হয়।

ঐচ্ছিক প্যারামিটার

বিকল্প

true-এ সেট করা হলে, এটি নির্দিষ্ট করে যে দিকনির্দেশ পরিষেবা উত্তরে একাধিক বিকল্প রুট প্রদান করতে পারে। মনে রাখবেন যে বিকল্প রুট প্রদান করলে সার্ভার থেকে উত্তর পেতে বেশি সময় লাগতে পারে। এটি শুধুমাত্র মধ্যবর্তী ওয়েপয়েন্ট ছাড়া অনুরোধের জন্য উপলভ্য। আরও তথ্যের জন্য, ওয়েপয়েন্ট সংক্রান্ত নির্দেশিকা দেখুন।

arrival_time

ট্রানজিটের দিকনির্দেশের জন্য পৌঁছানোর পছন্দের সময় উল্লেখ করে, ১ জানুয়ারি, ১৯৭০ UTC মধ্যরাত থেকে সেকেন্ডে। আপনি হয় departure_time অথবা arrival_time উল্লেখ করতে পারেন, তবে দুটিই নয়। মনে রাখবেন যে arrival_time অবশ্যই একটি পূর্ণসংখ্যা হিসাবে নির্দিষ্ট করা উচিত।

এড়িয়ে চলুন

এটি নির্দেশ করে যে গণনা করা রুট(গুলি) নির্দেশিত বৈশিষ্ট্যগুলি এড়িয়ে চলবে। এই প্যারামিটারে নিম্নলিখিত আর্গুমেন্ট কাজ করে:

  • tolls নির্দেশ করে যে গণনা করা রুটে টোল রাস্তা/ব্রিজ এড়িয়ে যাওয়া উচিত।
  • highways থেকে বোঝা যায় যে গণনা করা রুটে হাইওয়ে এড়িয়ে যাওয়া উচিত।
  • ferries নির্দেশ করে যে গণনা করা রুটে ফেরি এড়িয়ে যেতে হবে।
  • indoor থেকে বোঝা যায় যে হাঁটা ও ট্রানজিটের দিকনির্দেশের জন্য গণনা করা রুটে ইনডোর স্টেপ এড়িয়ে যাওয়া উচিত।

একাধিক বিধিনিষেধ এড়িয়ে যাওয়ার প্যারামিটারে পাস করে টোল, হাইওয়ে ও ফেরির যেকোনও কম্বিনেশন এড়িয়ে যায় এমন রুটের জন্য অনুরোধ করা সম্ভব। যেমন:

avoid=tolls|highways|ferries.

departure_time

ছাড়ার জন্য পছন্দের সময় নির্দিষ্ট করে। আপনি ১ জানুয়ারি, ১৯৭০ UTC মধ্যরাত থেকে সেকেন্ডে পূর্ণসংখ্যা হিসেবে সময় উল্লেখ করতে পারেন। যদি 9999-12-31T23:59:59.999999999Z-এর পরে কোনও departure_time উল্লেখ করা হয়, তাহলে API departure_time-কে 9999-12-31T23:59:59.999999999Z-এ ফিরিয়ে আনবে। অন্যথায়, আপনি now-এর মান নির্দিষ্ট করতে পারেন, যা ছাড়ার সময়কে বর্তমান সময়ে সেট করে (সবচেয়ে কাছাকাছি সেকেন্ডে সঠিক)। দুটি ক্ষেত্রে ছাড়ার সময় উল্লেখ করা হতে পারে:

  • যেসব অনুরোধে ট্রানজিট হল ভ্রমণের মোড: আপনি বিকল্প হিসেবে departure_time বা arrival_time-এর মধ্যে যেকোনও একটি নির্দিষ্ট করতে পারেন। কোনও সময় উল্লেখ করা না থাকলে, departure_time ডিফল্ট হিসেবে বর্তমান সময়কে ধরে নেয় (অর্থাৎ, ছাড়ার সময় ডিফল্ট হিসেবে বর্তমান সময়কে ধরে নেওয়া হয়)।
  • যেসব অনুরোধে ভ্রমণের মোড হল ড্রাইভিং: আপনি departure_time নির্দিষ্ট করতে পারেন যাতে রুট ও ট্রিপের সময়সীমা (উত্তরের ফিল্ড: duration_in_traffic) পাওয়া যায়, যা ট্রাফিক পরিস্থিতি বিবেচনা করে। departure_time বর্তমান সময় বা ভবিষ্যতের কোনও সময়ে সেট করতে হবে। এটি অতীতের কোনও তারিখ হতে পারবে না।
মনে রাখবেন: রওনা দেওয়ার সময় উল্লেখ করা না থাকলে, রুট ও সময়সীমা রাস্তার নেটওয়ার্ক ও সময়ের উপর নির্ভর করে না এমন ট্রাফিক পরিস্থিতির উপর ভিত্তি করে বেছে নেওয়া হয়। রাস্তার নেটওয়ার্কে পরিবর্তন, ট্রাফিক পরিস্থিতির আপডেট হওয়া গড় এবং পরিষেবার ডিস্ট্রিবিউটেড প্রকৃতির কারণে, কোনও নির্দিষ্ট অনুরোধের ফলাফল সময়ের সাথে সাথে পরিবর্তিত হতে পারে। এছাড়াও, প্রায় একই ধরনের রুটের ক্ষেত্রে যেকোনও সময় বা ফ্রিকোয়েন্সিতে ফলাফল আলাদা হতে পারে।
মনে রাখবেন: mode=driving-এর ক্ষেত্রে departure_time উল্লেখ করে করা ডিস্ট্যান্স ম্যাট্রিক্স অনুরোধের সংখ্যা প্রতি অনুরোধে সর্বাধিক ১০০টি এলিমেন্টে সীমিত। উৎস সংখ্যার সাথে গন্তব্য সংখ্যা গুণ করলে এলিমেন্টের সংখ্যা পাওয়া যায়।

ভাষা

যে ভাষায় ফলাফল দেখানো হবে। মনে রাখবেন, এটি শুধুমাত্র start_address-এ জিওকোড করা ঠিকানা এবং end_address, distance-এ লোকালাইজ করা টেক্সট এবং duration ফিল্ড (লেগ ও স্টেপে) এবং html_instructions-এ ম্যানুভারের বিবরণের ক্ষেত্রে প্রযোজ্য, তবে html_instructions-এ নাম ও ঠিকানার ক্ষেত্রে প্রযোজ্য নয়, যা স্থানীয় ভাষা ও স্ক্রিপ্টে ফর্ম্যাট করা হয়।

  • অনুমোদিত ভাষার তালিকা দেখুন। Google প্রায়ই কাজ করে এমন ভাষার তালিকা আপডেট করে, তাই এই তালিকা সম্পূর্ণ নাও হতে পারে।
  • language প্রদান করা না হলে, API Accept-Language হেডারে উল্লেখ করা পছন্দের ভাষা ব্যবহার করার চেষ্টা করে।
  • API এমন রাস্তার ঠিকানা প্রদান করার যথাসাধ্য চেষ্টা করে যা ব্যবহারকারী ও স্থানীয় লোকজন উভয়ের জন্যই বোধগম্য হয়। এই লক্ষ্য পূরণ করতে, এটি স্থানীয় ভাষায় রাস্তার ঠিকানা ফেরত পাঠায়, যা ব্যবহারকারীর পছন্দের ভাষা অনুযায়ী, প্রয়োজনে ব্যবহারকারীর পড়ার উপযোগী স্ক্রিপ্টে লিপ্যন্তর করা হয়। অন্যান্য সব ঠিকানা পছন্দের ভাষায় দেখানো হয়। ঠিকানার সব কম্পোনেন্ট একই ভাষায় দেখানো হয়, যা প্রথম কম্পোনেন্ট থেকে বেছে নেওয়া হয়।
  • পছন্দের ভাষায় কোনও নাম উপলভ্য না থাকলে, API সবচেয়ে কাছাকাছি ম্যাচ ব্যবহার করে।
  • API যে ফলাফল দেখায় এবং যে ক্রমে দেখায়, তার উপর পছন্দের ভাষার সামান্য প্রভাব থাকে। জিওকোডার ভাষার উপর নির্ভর করে সংক্ষিপ্ত রূপকে ভিন্নভাবে ব্যাখ্যা করে, যেমন রাস্তার প্রকারের সংক্ষিপ্ত রূপ বা সমার্থক শব্দ যা একটি ভাষায় বৈধ হতে পারে কিন্তু অন্য ভাষায় নয়। যেমন, হাঙ্গেরিয়ান ভাষায় utca এবং tér হল রাস্তার সমার্থক শব্দ।

মোড

দূরত্ব এবং দিকনির্দেশ গণনা করার জন্য, আপনি ব্যবহার করার জন্য পরিবহন মোড নির্দিষ্ট করতে পারেন। ডিফল্ট হিসেবে, driving মোড ব্যবহার করা হয়। ডিফল্ট হিসেবে, দিকনির্দেশ গাড়ি চালানোর দিকনির্দেশ হিসেবে হিসেব করা হয়। নিম্নলিখিত ভ্রমণ মোড কাজ করে:

  • driving (ডিফল্ট) স্ট্যান্ডার্ড গাড়ি চালানোর দিকনির্দেশ বা রোড নেটওয়ার্ক ব্যবহার করে দূরত্ব নির্দেশ করে।
  • walking হাঁটার দিকনির্দেশ বা দূরত্ব সম্পর্কে অনুরোধ করে পথচারীদের রাস্তা ও ফুটপাথের মাধ্যমে (যেখানে উপলভ্য)।
  • bicycling সাইকেল চালানোর দিকনির্দেশ বা সাইকেল চালানোর রাস্তা ও পছন্দের রাস্তার (যেখানে উপলভ্য) মাধ্যমে দূরত্ব জানতে চায়।
  • transit পাবলিক ট্রানজিট রুট (যেখানে উপলভ্য) ব্যবহার করে দিকনির্দেশ বা দূরত্ব জানতে চায়। আপনি মোড ট্রানজিটে সেট করলে, বিকল্প হিসেবে departure_time অথবা arrival_time উল্লেখ করতে পারবেন। কোনও সময় উল্লেখ করা না থাকলে, departure_time ডিফল্ট হিসেবে বর্তমান সময়কে ধরে নেয় (অর্থাৎ, ছাড়ার সময় ডিফল্ট হিসেবে বর্তমান সময়কে ধরে নেয়)। এছাড়াও, আপনি চাইলে transit_mode এবং/অথবা transit_routing_preference যোগ করতে পারেন। ডেটা প্রদানকারীর থেকে ট্রানজিট সংক্রান্ত তথ্য পাওয়া গেলে, ট্রানজিট ট্রিপের তথ্য অতীতে সর্বাধিক ৭ দিন বা ভবিষ্যতে সর্বাধিক ১০০ দিন পর্যন্ত উপলভ্য থাকে। ট্রানজিট শিডিউল ঘন ঘন পরিবর্তিত হয়, উপলভ্য ট্রানজিট ট্রিপ সময়ের সাথে সাথে পরিবর্তিত হতে পারে এবং অনেক আগে থেকে করা পূর্বাভাসের জন্য একই ফলাফল প্রদান করার কোনও গ্যারেন্টি নেই।
মনে রাখবেন: হাঁটা ও সাইকেল চালানোর দিকনির্দেশে কখনও কখনও স্পষ্টভাবে পথচারী বা সাইকেল চালানোর পথ নাও থাকতে পারে, তাই এই দিকনির্দেশগুলি ফলাফলে সতর্কতা দেখাবে যা আপনাকে ব্যবহারকারীকে দেখাতে হবে।

অঞ্চল

অঞ্চল কোড, যা ccTLD ("টপ-লেভেল ডোমেন") দুটি অক্ষরের মান হিসেবে উল্লেখ করা হয়। বেশিরভাগ ccTLD কোড ISO 3166-1 কোডের মতোই, তবে কিছু ব্যতিক্রম আছে। যেমন, যুক্তরাজ্যের ccTLD হল "uk" (.co.uk) এবং এর ISO 3166-1 কোড হল "gb" (টেকনিক্যালি "The United Kingdom of Great Britain and Northern Ireland" এন্টিটির জন্য)।

traffic_model

ট্রাফিকে সময় হিসেব করার সময় কোন অনুমান ব্যবহার করা হবে তা নির্দিষ্ট করে। এই সেটিং উত্তরের duration_in_traffic ফিল্ডে দেখানো ভ্যালুকে প্রভাবিত করে, যেখানে পুরনো গড় ডেটার ভিত্তিতে ট্রাফিকের মধ্যে আনুমানিক সময় দেখানো হয়। traffic_model প্যারামিটারটি শুধুমাত্র গাড়ি চালানোর দিকনির্দেশের জন্য নির্দিষ্ট করা যেতে পারে যেখানে অনুরোধে একটি departure_time অন্তর্ভুক্ত থাকে। এই প্যারামিটারের জন্য উপলভ্য ভ্যালুগুলি হল:

  • best_guess (ডিফল্ট) থেকে বোঝা যায় যে, duration_in_traffic-এর মাধ্যমে ভ্রমণের সময়ের সেরা অনুমান পাওয়া যাবে, যা ট্রাফিকের পুরনো পরিস্থিতি ও লাইভ ট্রাফিক, দুটির উপর ভিত্তি করেই করা হয়। departure_time যত কাছে আসবে, লাইভ ট্রাফিক তত বেশি গুরুত্বপূর্ণ হয়ে উঠবে।
  • pessimistic থেকে বোঝা যায় যে, বেশিরভাগ দিনেই duration_in_traffic-এর মান আসল ভ্রমণের সময়ের চেয়ে বেশি হবে, তবে কোনও কোনও দিন ট্রাফিক পরিস্থিতি খুব খারাপ হলে এই মান বেড়ে যেতে পারে।
  • optimistic থেকে বোঝা যায় যে, বেশিরভাগ দিনেই ট্রাফিকের মধ্যে কাটানো সময় প্রকৃত ভ্রমণের সময়ের চেয়ে কম হওয়া উচিত, যদিও কখনও কখনও ট্রাফিকের অবস্থা খুব ভালো থাকলে এই ভ্যালুর চেয়েও কম সময় লাগতে পারে।

best_guess-এর ডিফল্ট ভ্যালু বেশিরভাগ ব্যবহারের ক্ষেত্রে সবচেয়ে উপযোগী পূর্বাভাস দেবে। এটি সম্ভব যে best_guess ভ্রমণের সময় সংক্রান্ত পূর্বাভাস optimistic-এর থেকে কম হতে পারে অথবা বিকল্প হিসেবে pessimistic-এর থেকে বেশি হতে পারে, কারণ best_guess পূর্বাভাস মডেল যেভাবে লাইভ ট্রাফিক তথ্য ইন্টিগ্রেট করে।

transit_mode

ট্রানজিটের এক বা একাধিক পছন্দের মোড নির্দিষ্ট করে। এই প্যারামিটারটি শুধুমাত্র ট্রানজিট দিকনির্দেশের জন্য নির্দিষ্ট করা যেতে পারে। প্যারামিটারটি নিম্নলিখিত আর্গুমেন্ট সমর্থন করে:

  • bus থেকে বোঝা যায় যে গণনা করা রুটে বাসে করে যাতায়াত করাকে অগ্রাধিকার দেওয়া উচিত।
  • subway থেকে বোঝা যায় যে গণনা করা রুটে সাবওয়েতে ভ্রমণ করাকে অগ্রাধিকার দেওয়া উচিত।
  • train থেকে বোঝা যায় যে গণনা করা রুটে ট্রেনে ভ্রমণকে অগ্রাধিকার দেওয়া উচিত।
  • tram থেকে বোঝা যায় যে ট্রাম ও লাইট রেলের মাধ্যমে যাতায়াত করার জন্য রুট গণনা করা উচিত।
  • rail থেকে বোঝা যায় যে গণনা করা রুটে ট্রেন, ট্রাম, লাইট রেল ও সাবওয়েতে ভ্রমণকে অগ্রাধিকার দেওয়া উচিত। এটি transit_mode=train|tram|subway-এর সমতুল্য।

transit_routing_preference

ট্রানজিট রুটের জন্য পছন্দ নির্দিষ্ট করে। এই প্যারামিটার ব্যবহার করে, আপনি API-এর বেছে নেওয়া ডিফল্ট সেরা রুট গ্রহণ করার পরিবর্তে, ফেরত আসা বিকল্পগুলিকে প্রভাবিত করতে পারবেন। এই প্যারামিটারটি শুধুমাত্র ট্রানজিট দিকনির্দেশের জন্য নির্দিষ্ট করা যেতে পারে। প্যারামিটারটি নিম্নলিখিত আর্গুমেন্ট সমর্থন করে:

  • less_walking-এর অর্থ হল, গণনা করা রুটে কম হাঁটার বিকল্পকে অগ্রাধিকার দেওয়া হবে।
  • fewer_transfers থেকে বোঝা যায় যে গণনা করা রুটে সীমিত সংখ্যক ট্রান্সফারকে অগ্রাধিকার দেওয়া উচিত।

ইউনিট

ফলাফল দেখানোর সময় কোন ইউনিট সিস্টেম ব্যবহার করা হবে তা নির্দিষ্ট করে।

দিকনির্দেশ সংক্রান্ত ফলাফলে দূরত্বের ফিল্ডের মধ্যে টেক্সট থাকে যা ব্যবহারকারীকে রুটের নির্দিষ্ট "ধাপ" সংক্রান্ত দূরত্ব দেখানোর জন্য ব্যবহার করা হতে পারে। ডিফল্ট হিসেবে, এই টেক্সট উৎস দেশ বা অঞ্চলের ইউনিট সিস্টেম ব্যবহার করে।

যেমন, "শিকাগো, ইলিনয়" থেকে "টরন্টো, অন্টারিও" পর্যন্ত রুটের ক্ষেত্রে ফলাফল মাইলে দেখানো হবে, কিন্তু উল্টো রুটের ক্ষেত্রে ফলাফল কিলোমিটারে দেখানো হবে। আপনি অনুরোধের ইউনিট প্যারামিটারে স্পষ্টভাবে একটি সেট করে এই ইউনিট সিস্টেম ওভাররাইড করতে পারেন, নিম্নলিখিত মানগুলির মধ্যে একটি পাস করে:

  • metric মেট্রিক সিস্টেমের ব্যবহার নির্দিষ্ট করে। টেক্সট দূরত্ব কিলোমিটার এবং মিটারে দেখানো হয়।
  • imperial ইম্পেরিয়াল (ইংরেজি) সিস্টেমের ব্যবহার নির্দিষ্ট করে। টেক্সট হিসেবে দূরত্ব মাইল ও ফুট হিসেবে দেখানো হয়।
মনে রাখবেন: এই ইউনিট সিস্টেম সেটিং শুধুমাত্র দূরত্বের ফিল্ডে দেখানো টেক্সটকে প্রভাবিত করে। দূরত্ব ফিল্ডে এমন মানও থাকে যা সবসময় মিটারে প্রকাশ করা হয়।

ওয়েপয়েন্ট

সতর্কতা: ১০টির বেশি ওয়েপয়েন্ট (১১ থেকে ২৫টি) ব্যবহার করে করা অনুরোধ বা ওয়েপয়েন্ট অপ্টিমাইজেশনের জন্য বেশি রেটে বিল করা হয়। Google Maps Platform প্রোডাক্টের জন্য বিলিং সম্পর্কে আরও জানুন।

যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে রুট বরাবর অন্তর্ভুক্ত করার জন্য মধ্যবর্তী লোকেশনের একটি অ্যারে নির্দিষ্ট করে যেমন পাস থ্রু বা স্টপওভার লোকেশন। ওয়েপয়েন্ট নির্দিষ্ট লোকেশনের মাধ্যমে রুটকে নির্দেশ করে রুট পরিবর্তন করে। এইসব ভ্রমণ মোডের জন্য API ওয়েপয়েন্ট সাপোর্ট করে: ড্রাইভিং, হাঁটা ও সাইকেল চালানো; ট্রানজিট নয়। আপনি এক বা একাধিক লোকেশন দিতে পারেন যা পাইপ অক্ষর (| বা %7C) দিয়ে আলাদা করা থাকে, প্লেস আইডি, ঠিকানা বা অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটের আকারে। ডিফল্ট হিসেবে, Directions পরিষেবা, ওয়েপয়েন্টগুলি যে ক্রমে দেওয়া হয়েছে সেই ক্রম অনুযায়ী রুট গণনা করে। ওয়েপয়েন্টের ভ্যালু পার্স করার জন্য অগ্রাধিকারের ক্রম হল প্লেস আইডি, অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক, তারপর ঠিকানা।

  • আপনি কোনও জায়গার আইডি পাস করলে, আপনাকে অবশ্যই এটির আগে place_id: যোগ করতে হবে। আপনি Geocoding API এবং Places API (জায়গা অটোমেটিক সম্পূর্ণ করা সহ) থেকে জায়গার আইডি পেতে পারেন। 'প্লেস অটো-কমপ্লিট' থেকে প্লেস আইডি ব্যবহার করার উদাহরণ দেখতে, প্লেস অটো-কমপ্লিট ও দিকনির্দেশ দেখুন। প্লেস আইডি সম্পর্কে আরও জানতে, প্লেস আইডি ওভারভিউ দেখুন।
    দক্ষতা ও নির্ভুলতার জন্য, সম্ভব হলে জায়গার আইডি ব্যবহার করুন। এই আইডিগুলি অক্ষাংশ/দ্রাঘিমাংশ ভ্যালু পেয়ারের মতো অনন্যভাবে স্পষ্ট এবং অ্যাক্সেস পয়েন্ট ও ট্রাফিক ভেরিয়েবলের মতো রাউটিংয়ের জন্য জিওকোডিং সুবিধা প্রদান করে। ঠিকানার মতো, আইডি-র ক্ষেত্রে সার্চ করার জন্য পরিষেবার প্রয়োজন হয় না অথবা জায়গার বিবরণের জন্য মধ্যবর্তী অনুরোধের প্রয়োজন হয় না; তাই, পারফর্ম্যান্স আরও ভালো হয়।
  • আপনি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক পাস করলে, জিওকোডিং ছাড়াই দিকনির্দেশ গণনা করার জন্য মানগুলি সরাসরি ফ্রন্টএন্ড সার্ভারে যায়। পয়েন্টগুলি রাস্তার সাথে স্ন্যাপ করা হয় এবং আপনার অ্যাপের জন্য প্রয়োজনীয় নির্ভুলতা প্রদান নাও করতে পারে। আপনি যখন নিশ্চিত হবেন যে সম্ভাব্য অ্যাক্সেস পয়েন্ট বা অতিরিক্ত জিওকোডিং বিবরণ বিবেচনা না করেই আপনার অ্যাপের রাউটিংয়ের জন্য প্রয়োজনীয় পয়েন্টগুলি মানগুলি সত্যিই নির্দিষ্ট করে তখন কোঅর্ডিনেট ব্যবহার করুন। নিশ্চিত করুন যে অক্ষাংশ ও দ্রাঘিমাংশের মান কমা (%2C) দিয়ে আলাদা করা হয়েছে, স্পেস (%20) দিয়ে নয়।
  • আপনি কোনও ঠিকানা পাস করলে, Directions পরিষেবা স্ট্রিংটি জিওকোড করবে এবং দিকনির্দেশ গণনা করার জন্য এটিকে অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কে রূপান্তর করবে। ঠিকানার ভ্যালু অস্পষ্ট হলে, একই ধরনের ঠিকানা থেকে অস্পষ্টতা দূর করার জন্য ভ্যালুটি সার্চ করতে পারে। যেমন, "১ম স্ট্রিট" "১ম স্ট্রিট NE" বা "১ম St SE"-এর জন্য সম্পূর্ণ বা আংশিক ভ্যালু হতে পারে। Geocoding API-এর মাধ্যমে পাওয়া ফলাফলের থেকে এই ফলাফল আলাদা হতে পারে। আপনি প্লেস আইডি ব্যবহার করে সম্ভাব্য ভুল ব্যাখ্যা এড়াতে পারেন।
  • বিকল্প হিসেবে, আপনি এনকোড করা পলিলাইন অ্যালগরিদম ব্যবহার করে পয়েন্টের এনকোড করা সেট দিতে পারেন। আপনি দেখতে পাবেন যে এনকোড করা সেট অনেক বেশি সংখ্যক ওয়েপয়েন্টের জন্য উপযোগী, কারণ URL অনেক ছোট হয়। সব ওয়েব পরিষেবার URL-এ ১৬৩৮৪ অক্ষরের সীমা আছে।
    • এনকোড করা পলিলাইনের শুরুতে enc: এবং তারপরে কোলন (:) থাকতে হবে। যেমন: waypoints=enc:gfo}EtohhU:।
    • এছাড়াও, আপনি পাইপ অক্ষর (|) দিয়ে আলাদা করা একাধিক এনকোড করা পলিলাইন যোগ করতে পারেন। যেমন, waypoints=via:enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:| via:enc:udymA{~bxM:

স্টপওভার ও পাস-থ্রু ওয়েপয়েন্টের মাধ্যমে রুট প্রভাবিত করুন

অনুরোধে প্রতিটি ওয়েপয়েন্টের জন্য, দিকনির্দেশ সংক্রান্ত উত্তর legs অ্যারেতে একটি এন্ট্রি যোগ করে যাতে যাত্রার সেই অংশে স্টপওভারের বিবরণ প্রদান করা যায়।

আপনি যদি স্টপওভার যোগ না করে ওয়েপয়েন্ট ব্যবহার করে রুটকে প্রভাবিত করতে চান, তাহলে ওয়েপয়েন্টে প্রিফিক্স via: যোগ করুন। ওয়েপয়েন্ট via: দিয়ে শুরু হলে, legs অ্যারেতে কোনও এন্ট্রি যোগ করবে না, তবে ওয়েপয়েন্টের মাধ্যমে যাত্রা রুট করবে।

নিম্নলিখিত URL আগের অনুরোধকে এমনভাবে পরিবর্তন করে যাতে যাত্রাটি লেক্সিংটনের মধ্য দিয়ে না থেমে রুট করা হয়:

https://maps.googleapis.com/maps/api/directions/json?
origin=Boston,MA&destination=Concord,MA
&waypoints=Charlestown,MA|via:Lexington,MA

ম্যাপে ব্যবহারকারীর ওয়েপয়েন্ট টেনে আনার উত্তরে রুট তৈরি করার সময় via: প্রিফিক্স সবচেয়ে কার্যকর হয়। এটি করলে, ব্যবহারকারী রিয়েল-টাইমে দেখতে পাবেন যে চূড়ান্ত রুট কেমন হতে পারে এবং এটি নিশ্চিত করতে সাহায্য করে যে ওয়েপয়েন্টগুলি এমন লোকেশনে রাখা হয়েছে যেগুলি Directions API-এর অ্যাক্সেসযোগ্য।

সতর্কতা: স্টপওভার এড়াতে via: প্রিফিক্স ব্যবহার করলে এমন দিকনির্দেশ পাওয়া যায় যা ওয়েপয়েন্টের ব্যাখ্যায় কঠোর। এই ব্যাখ্যার ফলে রুটে গুরুতরভাবে পথ পরিবর্তন হতে পারে অথবা Directions API সেই পয়েন্টের মাধ্যমে দিকনির্দেশ তৈরি করতে না পারলে রেসপন্স স্ট্যাটাস কোডে ZERO_RESULTS দেখাতে পারে।

আপনার ওয়েপয়েন্ট অপ্টিমাইজ করুন

ডিফল্ট হিসেবে, Directions পরিষেবা প্রদত্ত ক্রম অনুসারে প্রদত্ত ওয়েপয়েন্টের মাধ্যমে রুট গণনা করে। বিকল্প হিসেবে, আপনি optimize:true-কে ওয়েপয়েন্ট প্যারামিটারের মধ্যে প্রথম আর্গুমেন্ট হিসেবে পাস করতে পারেন যাতে দিকনির্দেশ পরিষেবা আরও দক্ষ ক্রমে ওয়েপয়েন্টগুলি পুনর্বিন্যাস করে প্রদান করা রুট অপ্টিমাইজ করতে পারে। (এই অপ্টিমাইজেশন হল ট্রাভেলিং সেলসপার্সন সমস্যার একটি অ্যাপ্লিকেশন।) ভ্রমণের সময় হল প্রাথমিক ফ্যাক্টর যা অপ্টিমাইজ করা হয়, তবে দূরত্ব, কতবার ঘুরতে হবে এবং আরও অনেক ফ্যাক্টর বিবেচনা করা হতে পারে যখন সিদ্ধান্ত নেওয়া হয় কোন রুটটি সবচেয়ে দক্ষ। Directions পরিষেবার মাধ্যমে রুট অপ্টিমাইজ করার জন্য সব ওয়েপয়েন্টকে স্টপওভার হতে হবে।

আপনি যদি Directions পরিষেবাকে তার ওয়েপয়েন্টের ক্রম অপ্টিমাইজ করার নির্দেশ দেন, তাহলে তাদের ক্রম রুট অবজেক্টের মধ্যে waypoint_order ফিল্ডে ফেরত দেওয়া হবে। waypoint_order ফিল্ডটি শূন্য-ভিত্তিক মান প্রদান করে।

নিম্নলিখিত উদাহরণে রুট অপ্টিমাইজেশন ব্যবহার করে দক্ষিণ অস্ট্রেলিয়ার অ্যাডিলেড থেকে দক্ষিণ অস্ট্রেলিয়ার প্রতিটি প্রধান ওয়াইন অঞ্চলে সড়ক ভ্রমণের হিসেব করা হয়েছে।

https://maps.googleapis.com/maps/api/directions/json?
origin=Adelaide,SA&destination=Adelaide,SA
&waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA

গণনা করা রুটটি পরীক্ষা করলে দেখা যাবে যে গণনাটি নিম্নলিখিত উপায়ে ওয়েপয়েন্ট ব্যবহার করে:

"waypoint_order": [ 3, 2, 0, 1 ]
সতর্কতা: ওয়েপয়েন্ট অপ্টিমাইজেশন ব্যবহার করে করা অনুরোধের জন্য বেশি রেটে বিল করা হয়। Google Maps Platform প্রোডাক্টের জন্য কীভাবে বিল করা হয় সেই সম্পর্কে আরও জানুন।

এর পরে কী করতে হবে

দিকনির্দেশের উদাহরণ

দিকনির্দেশ সংক্রান্ত উত্তর