রুট ম্যাট্রিক্স গণনা করা

আপনি Routes Preferred API-এর ComputeRouteMatrix পদ্ধতি ব্যবহার করে একাধিক শুরু ও গন্তব্যের জন্য কোনও রুটের দূরত্ব ও সময়সীমা গণনা করতে পারবেন। ComputeRouteMatrix-এ gRPC কল ও REST HTTP কল, দু'ধরনের স্ট্রিমিং কলই করা যায়।

যাত্রা শুরু ও গন্তব্যের জোড়ার তালিকা দেওয়া হলে, ComputeRouteMatrix প্রতিটি যাত্রা শুরু থেকে শুরু করে প্রতিটি গন্তব্যে শেষ হওয়া রুটের দূরত্ব ও সময় গণনা করে। স্ট্রিমের প্রতিটি এলিমেন্ট একটি রুটের তথ্য দেখায়।

ComputeRouteMatrix পদ্ধতিতে Distance Matrix API (Legacy)-এর তুলনায় অনেক সুবিধা আছে:

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

ComputeRouteMatrix পদ্ধতি চালু করুন

আপনার কোডে ComputeRouteMatrix পদ্ধতি ব্যবহার করার আগে, আপনাকে অবশ্যই এটি চালু করতে হবে। Routes Preferred API মেথড চালু করা সম্পর্কে আরও তথ্যের জন্য, শুরু করা দেখুন।

ComputeRouteMatrix পদ্ধতি ব্যবহার করুন

ComputeRouteMatrix পদ্ধতিটি Routes Preferred v1 এন্ডপয়েন্টের মাধ্যমে উপলভ্য।

আরও বিস্তারিত তথ্যের জন্য নিম্নলিখিত ডকুমেন্টেশন দেখুন:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

ComputeRouteMatrix পদ্ধতি কল করার জন্য কীভাবে gRPC ব্যবহার করতে হয় তা নিম্নলিখিত সাধারণ ধাপগুলি থেকে জানতে পারবেন:

  1. googleapis রিপোজিটরি থেকে প্রয়োজনীয় protobuffers চেক করে দেখুন:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    মনে রাখবেন যে Go-এর মতো কিছু বিল্ড সিস্টেম আপনার জন্য এটি অটোমেটিক করতে পারে।

  2. আপনার পছন্দের ভাষা এবং বিল্ড টুলের সেট ব্যবহার করে, প্রাসঙ্গিক প্রোটোবাফার কোড তৈরি করুন।

  3. আপনার অনুরোধ তৈরি করুন। অনুরোধের সাথে দুটি প্রয়োজনীয় মেটাডেটা পাঠাতে হবে:

    • X-Goog-Api-Key আপনার API key-তে সেট করা থাকতে হবে।
    • X-Goog-Fieldmask অবশ্যই কমা দ্বারা পৃথক করা ফিল্ডের তালিকা হিসেবে সেট করতে হবে যা আপনার উত্তরের জন্য প্রয়োজন। যেমন, X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. আপনি সব ফিল্ড বোঝাতে ওয়াইল্ডকার্ড অক্ষর (*) ব্যবহার করতে পারেন, তবে এটি ব্যবহার না করাই ভাল। API উত্তর পরীক্ষা করে বুঝতে ওয়াইল্ডকার্ড ক্যারেক্টার ব্যবহার করুন, কিন্তু আপনার প্রোডাকশন কোডে ফিল্ড মাস্কে যেসব ফিল্ড চান সেগুলি স্পষ্টভাবে তালিকাভুক্ত করুন।

      ফিল্ড মাস্ক স্ট্রিং কীভাবে তৈরি করতে হয় সেই সম্পর্কে আরও তথ্যের জন্য, https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto দেখুন। মনে রাখবেন, আপনার প্রয়োজন নেই এমন ফিল্ড বন্ধ করে দিলে লেটেন্সি কমে যেতে পারে, কারণ সেইসব ফিল্ডের জন্য আরও কম্পিউটেশন প্রয়োজন হতে পারে। আপনার লেটেন্সি স্থিতিশীল থাকবে যদি আপনি প্রয়োজনীয় ফিল্ডগুলি নির্দিষ্ট করেন এবং নতুন ফিল্ডগুলি যেগুলির জন্য আরও কম্পিউটেশন প্রয়োজন সেগুলি পরে যোগ করা হয়।

  4. routespreferred.googleapis.com:443-এ আপনার অনুরোধ পাঠান। আপনাকে অবশ্যই TLS প্রোটোকল ব্যবহার করতে হবে।

ComputeRouteMatrix পদ্ধতি ব্যবহারের উদাহরণ দেখতে, রুট ম্যাট্রিক্স (বিটা) গণনা করার উদাহরণ দেখুন।

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

স্ট্রিম থেকে পাওয়া এলিমেন্টগুলি কোনও নির্দিষ্ট ক্রমে ফেরত দেওয়া হবে এমন কোনও গ্যারান্টি নেই। এই কারণে, প্রতিটি এলিমেন্টে একটি origin_index এবং একটি destination_index থাকে। অনুরোধে উল্লেখ করা উৎস ও গন্তব্যের জন্য, কোনও নির্দিষ্ট এলিমেন্টের ক্ষেত্রে রুটের উৎস origins[origin_index]-এর সমান এবং রুটের গন্তব্য destinations[destination_index]-এর সমান। এইসব অ্যারে জিরো-ইন্ডেক্স করা। যাত্রা শুরুর জায়গা ও গন্তব্যের তালিকা ক্রম সংরক্ষণ করা গুরুত্বপূর্ণ।

টোল ফি হিসেব করা হচ্ছে

টোল ফি গণনা করার বিষয়ে তথ্যের জন্য, টোল ফি গণনা করুন দেখুন।

টোল ফি গণনা করার উদাহরণ দেখতে, রুট ম্যাট্রিক্সের উদাহরণ গণনা করা দেখুন।