Distance Matrix API (পুরনো) অনুরোধ ও উত্তর

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

ভূমিকা

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

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

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

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

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

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

  • ডেস্টিনেশন

    ভ্রমণের দূরত্ব ও সময় গণনা করার জন্য গন্তব্য হিসেবে এক বা একাধিক লোকেশন ব্যবহার করা হবে। গন্তব্য প্যারামিটারের বিকল্পগুলি উৎস প্যারামিটারের মতোই একই।

  • উৎস

    ভ্রমণের দূরত্ব ও সময় হিসেব করার জন্য শুরুর পয়েন্ট। আপনি পাইপ ক্যারেক্টার (|) দিয়ে আলাদা করে এক বা একাধিক লোকেশন দিতে পারেন, প্লেস আইডি, ঠিকানা বা অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটের আকারে:

    • জায়গার আইডি: আপনি জায়গার আইডি দিলে, আপনাকে অবশ্যই সেটির আগে place_id: যোগ করতে হবে।
    • ঠিকানা: আপনি কোনও ঠিকানা পাস করলে, পরিষেবাটি স্ট্রিংটিকে জিওকোড করে এবং দূরত্ব গণনা করার জন্য এটিকে অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটে রূপান্তর করে। এই স্থানাঙ্ক Geocoding API-এর মাধ্যমে রিটার্ন করা স্থানাঙ্কের থেকে আলাদা হতে পারে, যেমন, কোনও বিল্ডিংয়ের কেন্দ্রের পরিবর্তে তার প্রবেশদ্বার।
      মনে রাখবেন: ঠিকানা বা অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটের পরিবর্তে প্লেস আইডি ব্যবহার করা বেশি সুবিধাজনক। স্থানাঙ্ক ব্যবহার করলে, সবসময় সেই স্থানাঙ্কের সবচেয়ে কাছের রাস্তায় পয়েন্টটি স্ন্যাপ করা হবে - যা প্রপার্টিতে পৌঁছানোর অ্যাক্সেস পয়েন্ট নাও হতে পারে, এমনকি সেই রাস্তা দিয়ে দ্রুত বা নিরাপদে গন্তব্যে পৌঁছানো নাও যেতে পারে। ঠিকানা ব্যবহার করলে বিল্ডিংয়ের প্রবেশপথের পরিবর্তে বিল্ডিংয়ের কেন্দ্র থেকে দূরত্ব প্রদান করা হবে।
    • স্থানাঙ্ক: আপনি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক পাস করলে, সেগুলি নিকটতম রাস্তার সাথে স্ন্যাপ করবে। কোনও জায়গার আইডি পাস করা বেশি ভালো। আপনি যদি স্থানাঙ্ক পাস করেন, তাহলে নিশ্চিত করুন যে অক্ষাংশ এবং দ্রাঘিমাংশের মানের মধ্যে কোনও স্পেস নেই।
    • Plus কোড অবশ্যই গ্লোবাল কোড বা কম্পাউন্ড কোড হিসেবে ফর্ম্যাট করতে হবে। এখানে দেখানো ফর্ম্যাট অনুযায়ী প্লাস কোড লিখুন (প্লাস চিহ্ন url-escaped হয়ে %2B এবং স্পেস url-escaped হয়ে %20 হয়ে যায়):
      • গ্লোবাল কোড হল ৪ অক্ষরের এলাকার কোড এবং ৬ অক্ষর বা তার বেশি দৈর্ঘ্যের স্থানীয় কোড (849VCWC8+R9-কে 849VCWC8%2BR9-এ এনকোড করা হয়েছে)।
      • কম্পাউন্ড কোড হল ৬টি বা তার বেশি অক্ষর বিশিষ্ট লোকাল কোড যার সাথে নির্দিষ্ট লোকেশন উল্লেখ করা থাকে (CWC8+R9 Mountain View, CA, USA কোডটি CWC8%2BR9%20Mountain%20View%20CA%20USA-এ এনকোড করা হয়েছে)।
    • এনকোড করা পলিলাইন বিকল্প হিসেবে, আপনি এনকোড করা পলিলাইন অ্যালগরিদম ব্যবহার করে স্থানাঙ্কের এনকোড করা সেট প্রদান করতে পারেন। আপনার কাছে অনেক বেশি সংখ্যক উৎস বিন্দু থাকলে এটি বিশেষভাবে উপযোগী, কারণ এনকোড করা পলিলাইন ব্যবহার করার সময় URL উল্লেখযোগ্যভাবে ছোট হয়।
      • এনকোড করা পলিলাইনের শুরুতে enc: এবং শেষে কোলন : থাকতে হবে। যেমন: origins=enc:gfo}EtohhU:
      • এছাড়াও, আপনি একাধিক এনকোড করা পলিলাইন যোগ করতে পারেন, যা পাইপ অক্ষর | দ্বারা আলাদা করা থাকে। যেমন:
        origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
        

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

  • 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 উল্লেখ করে করা ডিস্ট্যান্স ম্যাট্রিক্স অনুরোধের সংখ্যা প্রতি অনুরোধে সর্বাধিক ১০০টি এলিমেন্টে সীমাবদ্ধ। শুরুর পয়েন্টের সংখ্যাকে গন্তব্যের সংখ্যা দিয়ে গুণ করলে এলিমেন্টের সংখ্যা পাওয়া যায়।
  • ভাষা

    যে ভাষায় ফলাফল দেখানো হবে।

    • অনুমোদিত ভাষার তালিকা দেখুন। 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" (টেকনিক্যালি "গ্রেট ব্রিটেন ও উত্তর আয়ারল্যান্ডের যুক্তরাজ্য" এন্টিটির জন্য)।

  • 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 থেকে বোঝা যায় যে গণনা করা রুটে সীমিত সংখ্যক ট্রান্সফারকে অগ্রাধিকার দেওয়া উচিত।
  • ইউনিট

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

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

অনুরোধের উদাহরণ

এই উদাহরণে গন্তব্যের কোঅর্ডিনেট নির্দিষ্ট করতে অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট ব্যবহার করা হয়েছে:

ইউআরএল

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626
  &origins=40.6655101%2C-73.89188969999998
  &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626&key=YOUR_API_KEY'

এই উদাহরণে গন্তব্যের কোঅর্ডিনেট নির্দিষ্ট করতে Plus Code ব্যবহার করা হয়েছে:

ইউআরএল

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=San%20Francisco
  &origins=849VCWC8%2BR9
  &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=849VCWC8%2BR9&destinations=San%20Francisco&key=YOUR_API_KEY'

এই উদাহরণে এনকোড করা পলিলাইন ব্যবহার করে একই অনুরোধ দেখানো হয়েছে:

ইউআরএল

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A
  &origins=40.6655101%2C-73.89188969999998
  &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A&key=YOUR_API_KEY'

ট্রাফিক তথ্য

ট্রাফিক সংক্রান্ত তথ্য ব্যবহার করা হয় যখন নিম্নলিখিত সবকটি প্রযোজ্য হয় (এগুলি হল Distance Matrix রেসপন্সে duration_in_traffic ফিল্ড পাওয়ার জন্য প্রয়োজনীয় শর্ত):

  • ভ্রমণ mode প্যারামিটার হল driving, অথবা নির্দিষ্ট করা নেই (driving হল ডিফল্ট ভ্রমণ মোড)।
  • অনুরোধে একটি সঠিক departure_time প্যারামিটার অন্তর্ভুক্ত আছে। departure_time বর্তমান সময় বা ভবিষ্যতের কোনও সময়ের জন্য সেট করা যেতে পারে। এটি অতীতের কোনও তারিখ হতে পারবে না।

ট্রাফিকের মধ্যে সময় গণনা করার সময় কোন কোন অনুমান ব্যবহার করা হবে তা নির্দিষ্ট করতে, আপনার অনুরোধে ঐচ্ছিকভাবে traffic_model প্যারামিটার অন্তর্ভুক্ত করতে পারেন।

নিম্নলিখিত URL, বস্টন, MA বা চার্লসটাউন, MA এবং লেক্সিংটন, MA ও কনকর্ড, MA-এর মধ্যে ড্রাইভিং দূরত্বের জন্য একটি Distance Matrix অনুরোধ শুরু করে। অনুরোধে একটি প্রস্থানের সময় অন্তর্ভুক্ত থাকে, যা Distance Matrix রেসপন্সে duration_in_traffic ফিল্ড ফেরত দেওয়ার সমস্ত প্রয়োজনীয়তা পূরণ করে।

ইউআরএল

https://maps.googleapis.com/maps/api/distancematrix/json
  ?departure_time=now
  &destinations=Lexington%2CMA%7CConcord%2CMA
  &origins=Boston%2CMA%7CCharlestown%2CMA
  &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Boston%2CMA%7CCharlestown%2CMA&destinations=Lexington%2CMA%7CConcord%2CMA&departure_time=now&key=YOUR_API_KEY'

JSON

{
  "destination_addresses": ["Lexington, MA, USA", "Concord, MA, USA"],
  "origin_addresses": ["Boston, MA, USA", "Charlestown, Boston, MA, USA"],
  "rows":
    [
      {
        "elements":
          [
            {
              "distance": { "text": "33.3 km", "value": 33253 },
              "duration": { "text": "27 mins", "value": 1620 },
              "duration_in_traffic": { "text": "34 mins", "value": 2019 },
              "status": "OK",
            },
            {
              "distance": { "text": "41.5 km", "value": 41491 },
              "duration": { "text": "33 mins", "value": 1981 },
              "duration_in_traffic": { "text": "39 mins", "value": 2342 },
              "status": "OK",
            },
          ],
      },
      {
        "elements":
          [
            {
              "distance": { "text": "31.1 km", "value": 31100 },
              "duration": { "text": "26 mins", "value": 1543 },
              "duration_in_traffic": { "text": "29 mins", "value": 1754 },
              "status": "OK",
            },
            {
              "distance": { "text": "39.3 km", "value": 39338 },
              "duration": { "text": "32 mins", "value": 1904 },
              "duration_in_traffic": { "text": "35 mins", "value": 2077 },
              "status": "OK",
            },
          ],
      },
    ],
  "status": "OK",
}

XML


 OK
 Boston, MA, USA
 Charlestown, Boston, MA, USA
 Lexington, MA, USA
 Concord, MA, USA
 
  
   OK
   
    1620
    27 mins
   
   
    33253
    33.3 km
   
   
    2018
    34 mins
   
  
  
   OK
   
    1981
    33 mins
   
   
    41491
    41.5 km
   
   
    2342
    39 mins
   
  
 
 
  
   OK
   
    1543
    26 mins
   
   
    31100
    31.1 km
   
   
    1759
    29 mins
   
  
  
   OK
   
    1904
    32 mins
   
   
    39338
    39.3 km
   
   
    2077
    35 mins
   
  
 

লোকেশন মডিফায়ার

ড্রাইভারদের কীভাবে কোনও নির্দিষ্ট লোকেশনে পৌঁছানো উচিত তা নির্দেশ করতে আপনি লোকেশন মডিফায়ার ব্যবহার করতে পারেন। রাস্তার কোন দিকটি ব্যবহার করতে হবে তা নির্দিষ্ট করতে side_of_road মডিফায়ার ব্যবহার করুন অথবা ভ্রমণের সঠিক দিক নির্দেশ করতে একটি হেডিং নির্দিষ্ট করুন।

উল্লেখ করুন যে গণনা করা রুট অবশ্যই রাস্তার একটি নির্দিষ্ট দিক দিয়ে যেতে হবে

লোকেশন উল্লেখ করার সময়, আপনি অনুরোধ করতে পারেন যে গণনা করা রুটটি রাস্তার যে দিকেই হোক না কেন, side_of_road: প্রিফিক্স ব্যবহার করে ওয়েপয়েন্টটি যেদিকে পক্ষপাতদুষ্ট সেদিকেই যাবে। যেমন, এই অনুরোধটি একটি দীর্ঘ রুটের জন্য দূরত্ব ফেরত দেবে যাতে গাড়িটি রাস্তার সেই পাশে শেষ হয় যেখানে ওয়েপয়েন্টটি পক্ষপাতদুষ্ট ছিল:

ইউআরএল

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=side_of_road%3A37.7663444%2C-122.4412006
  &origins=37.7680296%2C-122.4375126
  &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=37.7680296%2C-122.4375126&destinations=side_of_road%3A37.7663444%2C-122.4412006&key=YOUR_API_KEY'

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

ইউআরএল

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A
  &origins=San%20Francisco%20City%20hall
  &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=San%20Francisco%20City%20hall&destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A&key=YOUR_API_KEY'

side_of_road: মডিফায়ার শুধুমাত্র এই বিধিনিষেধের সাথে ব্যবহার করা যেতে পারে:

  • ভ্রমণ mode প্যারামিটার হল driving, অথবা নির্দিষ্ট করা নেই (driving হল ডিফল্ট ভ্রমণ মোড)।

গণনা করা রুটের একটি নির্দিষ্ট হেডিং থাকতে হবে তা উল্লেখ করুন

কোনও লোকেশন নির্দিষ্ট করার সময়, আপনি অনুরোধ করতে পারেন যে গণনা করা রুটটি যেন একটি নির্দিষ্ট হেডিংয়ে লোকেশনের মধ্য দিয়ে যায়। এই হেডিংটি প্রিফিক্স heading=X: দিয়ে নির্দিষ্ট করা হয়, যেখানে X হল ০ (অন্তর্ভুক্ত) থেকে ৩৬০ (বহির্ভূত) পর্যন্ত পূর্ণসংখ্যায় ডিগ্রির মান। ০ হেডিং উত্তর দিক, ৯০ হেডিং পূর্ব দিক নির্দেশ করে, ঘড়ির কাঁটার দিকে চলতে থাকে। যেমন, এই অনুরোধে, গণনা করা রুটটি উৎস থেকে পূর্ব দিকে যায়, তারপর একটি ইউ-টার্ন নেয়:

ইউআরএল

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=37.773245%2C-122.469502
  &origins=heading%3D90%3A37.773279%2C-122.468780
  &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=heading%3D90%3A37.773279%2C-122.468780&destinations=37.773245%2C-122.469502&key=YOUR_API_KEY'

heading=X: মডিফায়ার শুধুমাত্র এইসব বিধিনিষেধের সাথে ব্যবহার করা যেতে পারে:

  • ট্রাভেল mode প্যারামিটার হল driving, bicycling, অথবা উল্লেখ করা নেই (driving হল ডিফল্ট ট্রাভেল মোড)।
  • একই লোকেশনের জন্য side_of_road মডিফায়ার নির্দিষ্ট করা নেই।
  • লোকেশনটি অক্ষাংশ/দ্রাঘিমাংশের মান দিয়ে নির্দিষ্ট করা হয়। আপনি ঠিকানা, প্লেস আইডি বা এনকোড করা পলিলাইনের সাথে heading ব্যবহার করতে পারবেন না।

Distance Matrix সংক্রান্ত অনুরোধ ও উত্তর

নিচে একটি স্যাম্পেল HTTP অনুরোধ দেখানো হয়েছে, যেখানে ভ্যাঙ্কুভার, বিসি, কানাডা এবং সিয়াটেল, ডব্লিউএ, মার্কিন যুক্তরাষ্ট্র থেকে সান ফ্রান্সিসকো, সিএ, মার্কিন যুক্তরাষ্ট্র এবং ভিক্টোরিয়া, বিসি, কানাডার দূরত্ব এবং সময়কাল সম্পর্কে অনুরোধ করা হয়েছে।

ইউআরএল

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=San%20Francisco%7CVictoria%20BC
  &language=fr-FR
  &mode=bicycling
  &origins=Vancouver%20BC%7CSeattle
  &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver%20BC%7CSeattle&destinations=San%20Francisco%7CVictoria%20BC&mode=bicycling&language=fr-FR&key=YOUR_API_KEY'

এই অনুরোধ চারটি এলিমেন্ট রিটার্ন করবে - দুটি সোর্স এবং দুটি গন্তব্য:

ভ্যাঙ্কুভার থেকে সান ফ্রান্সিসকো ভ্যাঙ্কুভার থেকে ভিক্টোরিয়া
সিয়াটেল থেকে সান ফ্রান্সিসকো সিয়াটেল থেকে ভিক্টোরিয়া

ফলাফল সারিতে দেখানো হয়, প্রতিটি সারিতে একটি করে উৎস ও গন্তব্য থাকে।

JSON

{
  "destination_addresses":
    ["San Francisco, Californie, États-Unis", "Victoria, BC, Canada"],
  "origin_addresses":
    ["Vancouver, BC, Canada", "Seattle, Washington, États-Unis"],
  "rows":
    [
      {
        "elements":
          [
            {
              "distance": { "text": "1 712 km", "value": 1711765 },
              "duration": { "text": "3 jours 16 heures", "value": 318119 },
              "status": "OK",
            },
            {
              "distance": { "text": "140 km", "value": 139695 },
              "duration": { "text": "6 heures 49 minutes", "value": 24567 },
              "status": "OK",
            },
          ],
      },
      {
        "elements":
          [
            {
              "distance": { "text": "1 452 km", "value": 1451704 },
              "duration": { "text": "3 jours 2 heures", "value": 266680 },
              "status": "OK",
            },
            {
              "distance": { "text": "146 km", "value": 146500 },
              "duration": { "text": "2 heures 53 minutes", "value": 10374 },
              "status": "OK",
            },
          ],
      },
    ],
  "status": "OK",
}

XML


 OK
 Vancouver, BC, Canada
 Seattle, Washington, États-Unis
 San Francisco, Californie, États-Unis
 Victoria, BC, Canada
 
  
   OK
   
    318119
    3 jours 16 heures
   
   
    1711765
    1 712 km
   
  
  
   OK
   
    24567
    6 heures 49 minutes
   
   
    139695
    140 km
   
  
 
 
  
   OK
   
    266680
    3 jours 2 heures
   
   
    1451704
    1 452 km
   
  
  
   OK
   
    10374
    2 heures 53 minutes
   
   
    146500
    146 km
   
  
 

DistanceMatrixResponse

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় Array<string>

আপনার আসল অনুরোধ থেকে API-এর মাধ্যমে ফেরত পাওয়া ঠিকানার অ্যারে। origin_addresses-এর মতো, এগুলি উপযুক্ত হলে লোকালাইজ করা হয়। এই কন্টেন্ট যেমন আছে তেমনই পড়তে হবে। ফর্ম্যাট করা ঠিকানা প্রোগ্রাম্যাটিক্যালি পার্স করবেন না।

প্রয়োজনীয় Array<string>

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

প্রয়োজনীয় Array<DistanceMatrixRow>

এলিমেন্টের একটি অ্যারে, যার প্রতিটিতে একটি করে status, duration এবং distance এলিমেন্ট থাকে।

আরও তথ্যের জন্য DistanceMatrixRow দেখুন।

প্রয়োজনীয় DistanceMatrixStatus

অনুরোধের স্ট্যাটাস থাকে এবং অনুরোধ কেন ব্যর্থ হয়েছে তা ট্র্যাক করতে সাহায্য করার জন্য ডিবাগিং তথ্য থাকতে পারে।

আরও তথ্যের জন্য DistanceMatrixStatus দেখুন।

ঐচ্ছিক স্ট্রিং

অনুরোধ প্রসেস করার সময় কোনও সমস্যা হলে, মানুষের-পঠনযোগ্য টেক্সট সহ স্ট্রিং।

DistanceMatrixStatus

পরিষেবা থেকে স্ট্যাটাস কোড পাঠানো হয়েছে।

  • OK নির্দেশ করে যে উত্তরে সঠিক ফলাফল রয়েছে।
  • INVALID_REQUEST থেকে বোঝা যায় যে প্রদত্ত অনুরোধটি সঠিক ছিল না।
  • MAX_ELEMENTS_EXCEEDED থেকে বোঝা যায় যে, উৎস ও গন্তব্যের প্রোডাক্ট প্রতি কোয়েরির সীমা ছাড়িয়ে গেছে।
  • MAX_DIMENSIONS_EXCEEDED থেকে বোঝা যায় যে শুরু বা গন্তব্যের সংখ্যা কোয়েরি প্রতি সীমা ছাড়িয়ে গেছে।
  • OVER_DAILY_LIMIT নিম্নলিখিত যেকোনও একটিকে নির্দেশ করে:
    • API কী নেই বা ভুল।
    • আপনার অ্যাকাউন্টে বিলিং চালু করা হয়নি।
    • ব্যবহারের ক্ষেত্রে নিজের উপর আরোপ করা সীমা অতিক্রম করা হয়েছে।
    • প্রদান করা পেমেন্ট পদ্ধতি আর বৈধ নয় (যেমন, ক্রেডিট কার্ডের মেয়াদ শেষ হয়ে গেছে)।
  • OVER_QUERY_LIMIT-এর অর্থ হল, অনুমোদিত সময়সীমার মধ্যে আপনার অ্যাপ্লিকেশন থেকে পরিষেবাটি অনেক বেশি অনুরোধ পেয়েছে।
  • REQUEST_DENIED থেকে বোঝা যায় যে পরিষেবাটি আপনার অ্যাপ্লিকেশনকে Distance Matrix পরিষেবা ব্যবহার করার অনুমতি দেয়নি।
  • UNKNOWN_ERROR-এর অর্থ হল, সার্ভারে সমস্যার কারণে Distance Matrix সংক্রান্ত অনুরোধ প্রসেস করা যায়নি। আপনি আবার চেষ্টা করলে অনুরোধটি সফল হতে পারে।

DistanceMatrixRow

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় Array<DistanceMatrixElement>

Distance Matrix API ফলাফল রিটার্ন করলে, এটি সেগুলিকে JSON সারি অ্যারের মধ্যে রাখে। এমনকি কোনও ফলাফল না পাওয়া গেলেও (যেমন, উৎস এবং/অথবা গন্তব্য না থাকলে), এটি এখনও একটি খালি অ্যারে রিটার্ন করে।

অনুরোধের অরিজিন প্যারামিটারের মান অনুযায়ী সারিগুলি সাজানো হয়। প্রতিটি সারি একটি উৎসের সাথে সম্পর্কিত এবং সেই সারির প্রতিটি এলিমেন্ট একটি গন্তব্য মানের সাথে উৎসের পেয়ারিংয়ের সাথে সম্পর্কিত।

প্রতিটি সারি অ্যারেতে এক বা একাধিক এলিমেন্ট এন্ট্রি থাকে, যা ঘুরে ফিরে একটি সিঙ্গেল অরিজিন-ডেস্টিনেশন পেয়ারিং সম্পর্কে তথ্য ধারণ করে।

আরও তথ্যের জন্য DistanceMatrixElement দেখুন।

DistanceMatrixElement

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় DistanceMatrixElementStatus

এলিমেন্টের স্ট্যাটাস।

আরও তথ্যের জন্য DistanceMatrixElementStatus দেখুন।

ঐচ্ছিক TextValueObject

এই রুটের মোট দূরত্ব, মিটারে (মান) এবং টেক্সট হিসেবে প্রকাশ করা হয়েছে। টেক্সট ভ্যালু, মূল অনুরোধের ইউনিট প্যারামিটার বা উৎসের অঞ্চলের সাথে নির্দিষ্ট করা ইউনিট সিস্টেম ব্যবহার করে।

আরও তথ্যের জন্য TextValueObject দেখুন।

ঐচ্ছিক TextValueObject

এই রুটে ভ্রমণ করতে কত সময় লাগে, তা সেকেন্ডে (ভ্যালু ফিল্ড) এবং টেক্সট হিসেবে প্রকাশ করা হয়। কোয়েরির ভাষা প্যারামিটার অনুযায়ী টেক্সট সংক্রান্ত উপস্থাপনা লোকালাইজ করা হয়।

আরও তথ্যের জন্য TextValueObject দেখুন।

ঐচ্ছিক TextValueObject

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

  • অনুরোধে departure_time প্যারামিটার অন্তর্ভুক্ত আছে।
  • অনুরোধ করা রুটের জন্য ট্রাফিকের অবস্থা উপলভ্য আছে।
  • মোড প্যারামিটার ড্রাইভিংয়ে সেট করা আছে।

আরও তথ্যের জন্য TextValueObject দেখুন।

ঐচ্ছিক ভাড়া

উপলভ্য থাকলে, এই রুটের মোট ভাড়া (অর্থাৎ, মোট টিকিটের খরচ) অন্তর্ভুক্ত থাকে। এই প্রপার্টি শুধুমাত্র ট্রানজিট অনুরোধের জন্য এবং শুধুমাত্র ট্রানজিট প্রদানকারীদের জন্য ফেরত দেওয়া হয় যেখানে ভাড়ার তথ্য উপলভ্য।

আরও তথ্যের জন্য ভাড়া দেখুন।

ভাড়া

রুটের জন্য মোট ভাড়া।

{
  "currency" : "USD",
  "value" : 6,
  "text" : "$6.00"
}
ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় স্ট্রিং

একটি ISO 4217 মুদ্রা কোড যা নির্দেশ করে যে পরিমাণটি কোন মুদ্রায় প্রকাশ করা হয়েছে।

প্রয়োজনীয় স্ট্রিং

অনুরোধ করা ভাষায় ফর্ম্যাট করা মোট ভাড়ার পরিমাণ।

প্রয়োজনীয় নম্বর

নির্দিষ্ট করা মুদ্রায় মোট ভাড়ার পরিমাণ।

DistanceMatrixElementStatus

  • OK নির্দেশ করে যে উত্তরে সঠিক ফলাফল রয়েছে।
  • NOT_FOUND থেকে বোঝা যায় যে এই পেয়ারিংয়ের উৎস এবং/অথবা গন্তব্য জিওকোড করা যায়নি।
  • ZERO_RESULTS-এর অর্থ হল, যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে কোনও রুট খুঁজে পাওয়া যায়নি।
  • MAX_ROUTE_LENGTH_EXCEEDED-এর অর্থ হল, অনুরোধ করা রুটটি অনেক বড় এবং প্রসেস করা যাবে না।

TextValueObject

একটি অবজেক্ট যাতে একটি সংখ্যাসূচক মান এবং এর ফর্ম্যাট করা টেক্সট উপস্থাপনা রয়েছে।

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় স্ট্রিং

স্ট্রিং ভ্যালু।

প্রয়োজনীয় নম্বর

সাংখ্যিক মান।