Distance Matrix Service (Legacy)

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

এক নজরে

Google-এর Distance Matrix পরিষেবা, ভ্রমণের নির্দিষ্ট মোড ব্যবহার করে একাধিক যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে ভ্রমণের দূরত্ব ও যাত্রার সময়কাল গণনা করে।

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

শুরু করা

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

আপনার চালু করা API-এর তালিকা দেখতে:

  1. Google Cloud Console-এ যান।
  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 লিঙ্কে গিয়ে এটি চালু করুন

দাম ও নীতি

দাম

JavaScript Distance Matrix পরিষেবার দাম ও ব্যবহার সংক্রান্ত নীতি সম্পর্কে জানতে, Distance Matrix API (Legacy)-এর জন্য ব্যবহার ও বিলিং দেখুন।

মনে রাখবেন: Distance Matrix পরিষেবায় পাঠানো প্রতিটি কোয়েরি অনুমোদিত এলিমেন্টের সংখ্যা দ্বারা সীমিত, যেখানে উৎসের সংখ্যাকে গন্তব্যের সংখ্যা দিয়ে গুণ করলে এলিমেন্টের সংখ্যা পাওয়া যায়।

নীতি

Distance Matrix পরিষেবা ব্যবহার করার সময় Distance Matrix API (Legacy)-এর জন্য বর্ণিত নীতি মেনে চলতে হবে।

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

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

আপনি google.maps.DistanceMatrixService কনস্ট্রাক্টর অবজেক্টের মাধ্যমে আপনার কোডের মধ্যে Distance Matrix পরিষেবা অ্যাক্সেস করেন। DistanceMatrixService.getDistanceMatrix() পদ্ধতি ডিস্ট্যান্স ম্যাট্রিক্স পরিষেবায় অনুরোধ শুরু করে, এটিতে 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। ট্রানজিট বিকল্প বিভাগে সঠিক ভ্যালু বর্ণনা করা হয়েছে।
  • 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 অবজেক্ট হিসেবে ছাড়ার কাঙ্ক্ষিত সময় নির্দিষ্ট করে। 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-এর উত্তর

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"
      }
    } ]
  } ]
}

Distance Matrix ফলাফল

উত্তরে কাজ করে এমন ফিল্ড নিচে ব্যাখ্যা করা হয়েছে।

  • 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: উপরে উল্লেখ করা মুদ্রায় মোট ভাড়ার পরিমাণ।

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

Distance Matrix-এর উত্তরে সামগ্রিকভাবে উত্তরের জন্য একটি স্ট্যাটাস কোড এবং প্রতিটি এলিমেন্টের জন্য একটি স্ট্যাটাস অন্তর্ভুক্ত থাকে।

রেসপন্স স্ট্যাটাস কোড

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

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

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

নিম্নলিখিত স্ট্যাটাস কোড নির্দিষ্ট 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];
      }
    }
  }
}