দূরত্ব ম্যাট্রিক্স পরিষেবা

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA) ডেভেলপাররা
দ্রষ্টব্য: সার্ভার-সাইড লাইব্রেরি

সংক্ষিপ্ত বিবরণ

গুগলের ডিসট্যান্স ম্যাট্রিক্স পরিষেবা ভ্রমণের একটি নির্দিষ্ট পদ্ধতি ব্যবহার করে একাধিক উৎস এবং গন্তব্যের মধ্যে ভ্রমণের দূরত্ব এবং ভ্রমণের সময়কাল গণনা করে।

এই পরিষেবাটি বিস্তারিত রুটের তথ্য প্রদান করে না। পলিলাইন এবং টেক্সটুয়াল দিকনির্দেশনা সহ রুটের তথ্য, পছন্দসই একক উৎস এবং গন্তব্য নির্দেশিকা পরিষেবাতে প্রেরণ করে পাওয়া যেতে পারে।

শুরু করা

Maps JavaScript API-তে Distance Matrix পরিষেবা ব্যবহার করার আগে, প্রথমে নিশ্চিত করুন যে Google Cloud Console-এ Distance Matrix API (Legacy) সক্রিয় আছে, যে প্রকল্পে আপনি Maps JavaScript API-এর জন্য সেট আপ করেছেন।

আপনার সক্রিয় API গুলির তালিকা দেখতে:

  1. গুগল ক্লাউড কনসোলে যান।
  2. "একটি প্রকল্প নির্বাচন করুন" বোতামে ক্লিক করুন, তারপর Maps JavaScript API-এর জন্য আপনি যে প্রকল্পটি সেট আপ করেছেন সেটি নির্বাচন করুন এবং " খুলুন" বোতামে ক্লিক করুন।
  3. ড্যাশবোর্ডে API-এর তালিকা থেকে, Distance Matrix API (Legacy) খুঁজুন।
  4. যদি আপনি তালিকায় API দেখতে পান, তাহলে আপনার সবকিছু ঠিক আছে। যদি API তালিকাভুক্ত না থাকে, তাহলে https://console.cloud.google.com/apis/library/distance-matrix-backend.googleapis.com এ এটি সক্ষম করুন।

মূল্য নির্ধারণ এবং নীতিমালা

মূল্য নির্ধারণ

জাভাস্ক্রিপ্ট ডিসট্যান্স ম্যাট্রিক্স পরিষেবার মূল্য এবং ব্যবহারের নীতি সম্পর্কে জানতে, ডিসট্যান্স ম্যাট্রিক্স API (লিগ্যাসি) এর ব্যবহার এবং বিলিং দেখুন।

দ্রষ্টব্য : দূরত্ব ম্যাট্রিক্স পরিষেবায় প্রেরিত প্রতিটি কোয়েরি অনুমোদিত উপাদানের সংখ্যা দ্বারা সীমাবদ্ধ, যেখানে উৎপত্তির সংখ্যা গন্তব্যের সংখ্যার গুণিতক উপাদানের সংখ্যা নির্ধারণ করে।

নীতিমালা

দূরত্ব ম্যাট্রিক্স পরিষেবার ব্যবহার অবশ্যই দূরত্ব ম্যাট্রিক্স API (লিগ্যাসি) এর জন্য বর্ণিত নীতি অনুসারে হতে হবে।

দূরত্ব ম্যাট্রিক্স অনুরোধ

ডিসটেন্স ম্যাট্রিক্স পরিষেবা অ্যাক্সেস করা অ্যাসিঙ্ক্রোনাস, কারণ গুগল ম্যাপস এপিআই-কে একটি বহিরাগত সার্ভারে কল করতে হয়। সেই কারণে, অনুরোধটি সম্পন্ন হওয়ার পরে ফলাফল প্রক্রিয়া করার জন্য আপনাকে একটি কলব্যাক পদ্ধতি পাস করতে হবে।

আপনি google.maps.DistanceMatrixService কনস্ট্রাক্টর অবজেক্টের মাধ্যমে আপনার কোডের মধ্যে Distance Matrix পরিষেবা অ্যাক্সেস করতে পারেন। DistanceMatrixService.getDistanceMatrix() পদ্ধতিটি Distance Matrix পরিষেবাতে একটি অনুরোধ শুরু করে, এটিকে একটি DistanceMatrixRequest অবজেক্ট আক্ষরিকভাবে প্রেরণ করে যার মধ্যে উৎস, গন্তব্য এবং ভ্রমণ মোড থাকে, পাশাপাশি প্রতিক্রিয়া প্রাপ্তির পরে কার্যকর করার জন্য একটি কলব্যাক পদ্ধতিও থাকে।

var origin1 = new google.maps.LatLng(55.930385, -3.118425);
var origin2 = 'Greenwich, England';
var destinationA = 'Stockholm, Sweden';
var destinationB = new google.maps.LatLng(50.087692, 14.421150);

var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
  {
    origins: [origin1, origin2],
    destinations: [destinationA, destinationB],
    travelMode: 'DRIVING',
    transitOptions: TransitOptions,
    drivingOptions: DrivingOptions,
    unitSystem: UnitSystem,
    avoidHighways: Boolean,
    avoidTolls: Boolean,
  }, callback);

function callback(response, status) {
  // See Parsing the Results for
  // the basics of a callback function.
}

উদাহরণ দেখুন

DistanceMatrixRequest এ নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

  • origins (প্রয়োজনীয়) — এক বা একাধিক ঠিকানা স্ট্রিং, google.maps.LatLng অবজেক্ট, অথবা স্থান অবজেক্ট ধারণকারী একটি অ্যারে যা থেকে দূরত্ব এবং সময় গণনা করা হবে।
  • destinations (প্রয়োজনীয়) — এক বা একাধিক ঠিকানা স্ট্রিং, google.maps.LatLng অবজেক্ট, অথবা দূরত্ব এবং সময় গণনা করার জন্য প্লেস অবজেক্ট ধারণকারী একটি অ্যারে।
  • travelMode ( ঐচ্ছিক ) — দিকনির্দেশনা গণনা করার সময় ব্যবহারযোগ্য পরিবহন পদ্ধতি। ভ্রমণের ধরণ বিভাগটি দেখুন।
  • transitOptions ( ঐচ্ছিক ) — বিকল্পগুলি যা শুধুমাত্র সেই অনুরোধগুলিতে প্রযোজ্য যেখানে travelMode হল TRANSIT । বৈধ মানগুলি transit options বিভাগে বর্ণিত হয়েছে।
  • drivingOptions ( ঐচ্ছিক ) এমন মান নির্দিষ্ট করে যা শুধুমাত্র সেই অনুরোধগুলিতে প্রযোজ্য যেখানে travelMode DRIVING । বৈধ মানগুলি ড্রাইভিং বিকল্পগুলির বিভাগে বর্ণিত হয়েছে।
  • unitSystem ( ঐচ্ছিক ) — দূরত্ব প্রদর্শনের সময় ব্যবহার করার জন্য ইউনিট সিস্টেম। গৃহীত মানগুলি হল:
    • google.maps.UnitSystem.METRIC (ডিফল্ট)
    • google.maps.UnitSystem.IMPERIAL
  • avoidHighways ( ঐচ্ছিক ) — যদি true , তাহলে সম্ভব হলে হাইওয়ে এড়িয়ে যাওয়ার জন্য উৎপত্তিস্থল এবং গন্তব্যস্থলের মধ্যে রুট গণনা করা হবে।
  • avoidTolls ( ঐচ্ছিক ) — যদি true , তাহলে পয়েন্টগুলির মধ্যে দিকনির্দেশনা, যেখানেই সম্ভব, নন-টোল রুট ব্যবহার করে গণনা করা হবে।

ভ্রমণ মোড

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

  • BICYCLING সাইকেল পথ এবং পছন্দের রাস্তার মাধ্যমে দিকনির্দেশনা অনুরোধ করে (বর্তমানে শুধুমাত্র মার্কিন যুক্তরাষ্ট্র এবং কিছু কানাডার শহরে উপলব্ধ)।
  • DRIVING (ডিফল্ট) রোড নেটওয়ার্ক ব্যবহার করে স্ট্যান্ডার্ড ড্রাইভিং দিকনির্দেশ নির্দেশ করে।
  • TRANSIT পাবলিক ট্রানজিট রুটের মাধ্যমে দিকনির্দেশনার অনুরোধ করে। অনুরোধে একটি API কী থাকলেই কেবল এই বিকল্পটি নির্দিষ্ট করা যেতে পারে। এই ধরণের অনুরোধে উপলব্ধ বিকল্পগুলির জন্য ট্রানজিট বিকল্পগুলির বিভাগটি দেখুন।
  • WALKING পথচারী পথ এবং ফুটপাতের (যেখানে উপলব্ধ) মাধ্যমে হাঁটার দিকনির্দেশনার জন্য অনুরোধ করে।

পরিবহন বিকল্প

ট্রানজিট পরিষেবা বর্তমানে 'পরীক্ষামূলক' পর্যায়ে রয়েছে। এই পর্যায়ে, আমরা API অপব্যবহার রোধ করার জন্য হারের সীমা বাস্তবায়ন করব। API-এর ন্যায্য ব্যবহারের উপর ভিত্তি করে আমরা অবশেষে প্রতি মানচিত্র লোডের মোট প্রশ্নের উপর একটি সীমা আরোপ করব।

দূরত্ব ম্যাট্রিক্স অনুরোধের জন্য উপলব্ধ বিকল্পগুলি ভ্রমণ মোড অনুসারে পরিবর্তিত হয়। ট্রানজিট অনুরোধগুলিতে, avoidHighways এবং avoidTolls বিকল্পগুলি উপেক্ষা করা হয়। আপনি TransitOptions অবজেক্ট লিটারেলের মাধ্যমে ট্রানজিট-নির্দিষ্ট রাউটিং বিকল্পগুলি নির্দিষ্ট করতে পারেন।

ট্রানজিট অনুরোধগুলি সময় সংবেদনশীল। গণনাগুলি কেবলমাত্র ভবিষ্যতের সময়ের জন্য ফেরত পাঠানো হবে।

TransitOptions অবজেক্ট লিটারেলে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

{
  arrivalTime: Date,
  departureTime: Date,
  modes: [transitMode1, transitMode2]
  routingPreference: TransitRoutePreference
}

এই ক্ষেত্রগুলি নীচে ব্যাখ্যা করা হল:

  • arrivalTime ( ঐচ্ছিক ) একটি Date অবজেক্ট হিসেবে আগমনের কাঙ্ক্ষিত সময় নির্দিষ্ট করে। যদি আগমনের সময় নির্দিষ্ট করা থাকে, তাহলে প্রস্থানের সময় উপেক্ষা করা হয়।
  • departureTime ( ঐচ্ছিক ) একটি Date অবজেক্ট হিসেবে departure এর কাঙ্ক্ষিত সময় নির্দিষ্ট করে। arrivalTime নির্দিষ্ট করা থাকলে departureTime উপেক্ষা করা হবে। departureTime বা arrivalTime এর জন্য কোন মান নির্দিষ্ট না থাকলে ডিফল্টভাবে এখন (অর্থাৎ, বর্তমান সময়) থাকে।
  • modes ( ঐচ্ছিক ) হল একটি অ্যারে যার মধ্যে এক বা একাধিক TransitMode অবজেক্ট লিটারেল রয়েছে। এই ক্ষেত্রটি শুধুমাত্র তখনই অন্তর্ভুক্ত করা যেতে পারে যদি অনুরোধে একটি API কী থাকে। প্রতিটি TransitMode একটি পছন্দের ট্রানজিট মোড নির্দিষ্ট করে। নিম্নলিখিত মানগুলি অনুমোদিত:
    • BUS নির্দেশ করে যে গণনা করা রুটে বাসে ভ্রমণ করা উচিত।
    • RAIL নির্দেশ করে যে গণনা করা রুটে ট্রেন, ট্রাম, হালকা রেল এবং পাতাল রেলে ভ্রমণ করা উচিত।
    • SUBWAY নির্দেশ করে যে গণনা করা রুটে সাবওয়েতে ভ্রমণ করা উচিত।
    • TRAIN নির্দেশ করে যে গণনা করা রুটে ট্রেনে ভ্রমণ করা উচিত।
    • TRAM নির্দেশ করে যে গণনা করা রুটে ট্রাম এবং হালকা রেলে ভ্রমণ করা উচিত।
  • routingPreference ( ঐচ্ছিক ) ট্রানজিট রুটের জন্য পছন্দগুলি নির্দিষ্ট করে। এই বিকল্পটি ব্যবহার করে, আপনি API দ্বারা নির্বাচিত ডিফল্ট সেরা রুটটি গ্রহণ করার পরিবর্তে ফিরে আসা বিকল্পগুলিকে পক্ষপাত করতে পারেন। এই ক্ষেত্রটি কেবল তখনই নির্দিষ্ট করা যেতে পারে যদি অনুরোধে একটি API কী থাকে। নিম্নলিখিত মানগুলি অনুমোদিত:
    • FEWER_TRANSFERS নির্দেশ করে যে গণনা করা রুটে সীমিত সংখ্যক স্থানান্তর পছন্দ করা উচিত।
    • LESS_WALKING নির্দেশ করে যে গণনা করা রুটে সীমিত পরিমাণে হাঁটা পছন্দ করা উচিত।

ড্রাইভিং বিকল্প

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

drivingOptions অবজেক্টে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

{
  departureTime: Date,
  trafficModel: TrafficModel
}

এই ক্ষেত্রগুলি নীচে ব্যাখ্যা করা হল:

  • departureTime ( drivingOptions অবজেক্টের আক্ষরিক বৈধতা নিশ্চিত করার জন্য প্রয়োজনীয় ) একটি Date অবজেক্ট হিসেবে প্রস্থানের কাঙ্ক্ষিত সময় নির্দিষ্ট করে। মানটি বর্তমান সময় বা ভবিষ্যতের কিছু সময়ে সেট করতে হবে। এটি অতীতে হতে পারে না। (সময় অঞ্চল জুড়ে সামঞ্জস্যপূর্ণ হ্যান্ডলিং নিশ্চিত করার জন্য API সমস্ত তারিখকে UTC তে রূপান্তর করে।) যদি আপনি অনুরোধে departureTime অন্তর্ভুক্ত করেন, তাহলে API সেই সময়ে প্রত্যাশিত ট্র্যাফিক পরিস্থিতি বিবেচনা করে সেরা রুটটি ফেরত দেয় এবং প্রতিক্রিয়ায় ট্র্যাফিকের পূর্বাভাসিত সময় ( duration_in_traffic ) অন্তর্ভুক্ত করে। যদি আপনি একটি প্রস্থান সময় নির্দিষ্ট না করেন (অর্থাৎ, যদি অনুরোধে drivingOptions অন্তর্ভুক্ত না থাকে), তাহলে ট্র্যাফিক পরিস্থিতি বিবেচনা না করেই ফেরত রুটটি সাধারণত একটি ভাল রুট।
  • trafficModel ( ঐচ্ছিক ) ট্র্যাফিকের সময় গণনা করার সময় ব্যবহার করার জন্য অনুমানগুলি নির্দিষ্ট করে। এই সেটিংটি প্রতিক্রিয়ার duration_in_traffic ক্ষেত্রের মধ্যে ফেরত আসা মানকে প্রভাবিত করে, যেখানে ঐতিহাসিক গড়ের উপর ভিত্তি করে ট্র্যাফিকের পূর্বাভাসিত সময় থাকে। ডিফল্টরূপে best_guess । নিম্নলিখিত মানগুলি অনুমোদিত:
    • bestguess (ডিফল্ট) নির্দেশ করে যে ট্র্যাফিকের মধ্যে_সময় ফেরত পাঠানো duration_in_traffic ভ্রমণের সময়ের সেরা অনুমান হওয়া উচিত, কারণ ঐতিহাসিক ট্র্যাফিক পরিস্থিতি এবং লাইভ ট্র্যাফিক উভয় সম্পর্কেই জানা আছে। departureTime যত কাছে আসবে লাইভ ট্র্যাফিক তত গুরুত্বপূর্ণ হয়ে ওঠে।
    • pessimistic ইঙ্গিত দেয় যে বেশিরভাগ দিনে ট্র্যাফিকের মধ্যে ফেরত আসা duration_in_traffic প্রকৃত ভ্রমণ সময়ের চেয়ে বেশি হওয়া উচিত, যদিও মাঝে মাঝে বিশেষভাবে খারাপ ট্র্যাফিক পরিস্থিতির দিনগুলি এই মানকে অতিক্রম করতে পারে।
    • optimistic ইঙ্গিত দেয় যে বেশিরভাগ দিনে ট্র্যাফিকের মধ্যে ফিরে আসা duration_in_traffic প্রকৃত ভ্রমণ সময়ের চেয়ে কম হওয়া উচিত, যদিও মাঝে মাঝে বিশেষভাবে ভালো ট্র্যাফিক পরিস্থিতির দিনগুলি এই মানের চেয়ে দ্রুত হতে পারে।

নিচে ড্রাইভিং রুটের জন্য DistanceMatrixRequest একটি নমুনা দেওয়া হল, যার মধ্যে প্রস্থানের সময় এবং ট্র্যাফিক মডেল অন্তর্ভুক্ত রয়েছে:

{
  origins: [{lat: 55.93, lng: -3.118}, 'Greenwich, England'],
  destinations: ['Stockholm, Sweden', {lat: 50.087, lng: 14.421}],
  travelMode: 'DRIVING',
  drivingOptions: {
    departureTime: new Date(Date.now() + N),  // for the time N milliseconds from now.
    trafficModel: 'optimistic'
  }
}

দূরত্ব ম্যাট্রিক্স প্রতিক্রিয়া

Distance Matrix পরিষেবায় একটি সফল কল একটি DistanceMatrixResponse অবজেক্ট এবং একটি DistanceMatrixStatus অবজেক্ট ফেরত পাঠায়। এগুলি আপনার অনুরোধে নির্দিষ্ট করা কলব্যাক ফাংশনে পাঠানো হয়।

DistanceMatrixResponse অবজেক্টে প্রতিটি উৎপত্তি/গন্তব্য জোড়ার দূরত্ব এবং সময়কাল সম্পর্কিত তথ্য থাকে যার জন্য একটি রুট গণনা করা যেতে পারে।

{
  "originAddresses": [ "Greenwich, Greater London, UK", "13 Great Carleton Square, Edinburgh, City of Edinburgh EH16 4, UK" ],
  "destinationAddresses": [ "Stockholm County, Sweden", "Dlouhá 609/2, 110 00 Praha-Staré Město, Česká republika" ],
  "rows": [ {
    "elements": [ {
      "status": "OK",
      "duration": {
        "value": 70778,
        "text": "19 hours 40 mins"
      },
      "distance": {
        "value": 1887508,
        "text": "1173 mi"
      }
    }, {
      "status": "OK",
      "duration": {
        "value": 44476,
        "text": "12 hours 21 mins"
      },
      "distance": {
        "value": 1262780,
        "text": "785 mi"
      }
    } ]
  }, {
    "elements": [ {
      "status": "OK",
      "duration": {
        "value": 96000,
        "text": "1 day 3 hours"
      },
      "distance": {
        "value": 2566737,
        "text": "1595 mi"
      }
    }, {
      "status": "OK",
      "duration": {
        "value": 69698,
        "text": "19 hours 22 mins"
      },
      "distance": {
        "value": 1942009,
        "text": "1207 mi"
      }
    } ]
  } ]
}

দূরত্ব ম্যাট্রিক্স ফলাফল

একটি প্রতিক্রিয়ায় সমর্থিত ক্ষেত্রগুলি নীচে ব্যাখ্যা করা হয়েছে।

  • originAddresses হল একটি অ্যারে যেখানে Distance Matrix অনুরোধের origins ক্ষেত্রে পাস করা অবস্থানগুলি থাকে। ঠিকানাগুলি জিওকোডার দ্বারা ফর্ম্যাট করা হলে ফেরত পাঠানো হয়।
  • destinationAddresses হল একটি অ্যারে যেখানে জিওকোডার দ্বারা ফেরত পাঠানো বিন্যাসে destinations ক্ষেত্রে পাস করা অবস্থানগুলি থাকে।
  • rows হলো DistanceMatrixResponseRow অবজেক্টের একটি অ্যারে, যার প্রতিটি সারি একটি অরিজিনের সাথে সম্পর্কিত।
  • elements হল rows সন্তান, এবং প্রতিটি গন্তব্যের সাথে সারির উৎপত্তির জোড়ার সাথে সঙ্গতিপূর্ণ। এগুলিতে প্রতিটি উৎপত্তি/গন্তব্য জোড়ার জন্য স্থিতি, সময়কাল, দূরত্ব এবং ভাড়ার তথ্য (যদি উপলব্ধ থাকে) থাকে।
  • প্রতিটি element নিম্নলিখিত ক্ষেত্রগুলি থাকে:
    • status : সম্ভাব্য স্ট্যাটাস কোডের তালিকার জন্য স্ট্যাটাস কোড দেখুন।
    • duration : এই রুটটি ভ্রমণ করতে যে সময় লাগে, তা সেকেন্ডে ( value ক্ষেত্র) এবং text হিসাবে প্রকাশ করা হয়। টেক্সট মানটি অনুরোধে উল্লেখিত unitSystem অনুসারে (অথবা মেট্রিকে, যদি কোনও পছন্দ সরবরাহ করা না হয়) ফর্ম্যাট করা হয়।
    • duration_in_traffic : বর্তমান ট্র্যাফিক পরিস্থিতি বিবেচনা করে এই রুটটি ভ্রমণ করতে যে সময় লাগে, তা সেকেন্ডে ( value ক্ষেত্র) এবং text হিসাবে প্রকাশ করা হয়। টেক্সট মানটি অনুরোধে নির্দিষ্ট unitSystem অনুসারে ফর্ম্যাট করা হয় (অথবা মেট্রিকে, যদি কোনও পছন্দ সরবরাহ করা না হয়)। duration_in_traffic কেবল তখনই ফেরত দেওয়া হয় যেখানে ট্র্যাফিক ডেটা উপলব্ধ থাকে, mode driving এ সেট করা থাকে এবং departureTime অনুরোধে distanceMatrixOptions ক্ষেত্রের অংশ হিসাবে অন্তর্ভুক্ত থাকে।
    • distance : এই রুটের মোট দূরত্ব, মিটার ( value ) এবং text হিসাবে প্রকাশ করা হয়েছে। টেক্সট মানটি অনুরোধে উল্লেখিত unitSystem অনুসারে ফর্ম্যাট করা হয়েছে (অথবা মেট্রিকে, যদি কোনও পছন্দ সরবরাহ করা না থাকে)।
    • fare : এই রুটের মোট ভাড়া (অর্থাৎ মোট টিকিটের খরচ) অন্তর্ভুক্ত। এই সম্পত্তিটি শুধুমাত্র ট্রানজিট অনুরোধের জন্য এবং শুধুমাত্র ট্রানজিট প্রদানকারীদের জন্য ফেরত দেওয়া হয় যেখানে ভাড়ার তথ্য পাওয়া যায়। তথ্যের মধ্যে রয়েছে:
      • currency : একটি ISO 4217 মুদ্রা কোড যা নির্দেশ করে যে মুদ্রায় পরিমাণ প্রকাশ করা হয়েছে।
      • value : উপরে উল্লেখিত মুদ্রায় মোট ভাড়ার পরিমাণ।

স্ট্যাটাস কোড

দূরত্ব ম্যাট্রিক্স প্রতিক্রিয়াতে সম্পূর্ণ প্রতিক্রিয়ার জন্য একটি স্ট্যাটাস কোড অন্তর্ভুক্ত থাকে, পাশাপাশি প্রতিটি উপাদানের জন্য একটি স্ট্যাটাসও থাকে।

প্রতিক্রিয়া স্থিতি কোড

DistanceMatrixResponse এ প্রযোজ্য স্ট্যাটাস কোডগুলি DistanceMatrixStatus অবজেক্টে পাস করা হয় এবং এতে অন্তর্ভুক্ত থাকে:

  • OK — অনুরোধটি বৈধ। এই স্ট্যাটাসটি ফেরত দেওয়া যেতে পারে, এমনকি যদি কোনও উৎস এবং গন্তব্যস্থলের মধ্যে কোনও রুট না পাওয়া যায়। এলিমেন্ট-স্তরের স্ট্যাটাস তথ্যের জন্য এলিমেন্ট স্ট্যাটাস কোড দেখুন।
  • INVALID_REQUEST — প্রদত্ত অনুরোধটি অবৈধ ছিল। প্রায়শই প্রয়োজনীয় ক্ষেত্রগুলি অনুপস্থিত থাকার কারণে এটি হয়। উপরে সমর্থিত ক্ষেত্রগুলির তালিকা দেখুন।
  • MAX_ELEMENTS_EXCEEDED — উৎপত্তি এবং গন্তব্যের গুণফল প্রতি-ক্যোয়ারী সীমা অতিক্রম করে।
  • MAX_DIMENSIONS_EXCEEDED — আপনার অনুরোধে ২৫টিরও বেশি উৎস, অথবা ২৫টিরও বেশি গন্তব্যস্থল রয়েছে।
  • OVER_QUERY_LIMIT — আপনার আবেদনটি অনুমোদিত সময়ের মধ্যে অনেক বেশি উপাদানের অনুরোধ করেছে। যুক্তিসঙ্গত সময়ের পরে আবার চেষ্টা করলে অনুরোধটি সফল হবে।
  • REQUEST_DENIED — পরিষেবাটি আপনার ওয়েব পৃষ্ঠার দ্বারা দূরত্ব ম্যাট্রিক্স পরিষেবা ব্যবহার অস্বীকৃতি জানিয়েছে।
  • UNKNOWN_ERROR — সার্ভার ত্রুটির কারণে একটি দূরত্ব ম্যাট্রিক্স অনুরোধ প্রক্রিয়া করা যায়নি। আবার চেষ্টা করলে অনুরোধটি সফল হতে পারে।

এলিমেন্ট স্ট্যাটাস কোড

নিম্নলিখিত স্ট্যাটাস কোডগুলি নির্দিষ্ট DistanceMatrixElement অবজেক্টের ক্ষেত্রে প্রযোজ্য:

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

ফলাফল বিশ্লেষণ করা

DistanceMatrixResponse অবজেক্টে অনুরোধে পাস করা প্রতিটি অরিজিনের জন্য একটি করে row থাকে। প্রতিটি সারিতে প্রদত্ত গন্তব্য(গুলি) এর সাথে সেই অরিজিনের প্রতিটি জোড়ার জন্য একটি করে element ফিল্ড থাকে।

function callback(response, status) {
  if (status == 'OK') {
    var origins = response.originAddresses;
    var destinations = response.destinationAddresses;

    for (var i = 0; i < origins.length; i++) {
      var results = response.rows[i].elements;
      for (var j = 0; j < results.length; j++) {
        var element = results[j];
        var distance = element.distance.text;
        var duration = element.duration.text;
        var from = origins[i];
        var to = destinations[j];
      }
    }
  }
}