রুট ম্যাট্রিক্সের জন্য লোকেশন নির্দিষ্ট করা

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

রুট ম্যাট্রিক্স গণনা করতে, আপনাকে অবশ্যই কমপক্ষে একটি রুটের উৎস এবং একটি রুটের গন্তব্যের লোকেশন নির্দিষ্ট করতে হবে।

কোনও রুটের জন্য লোকেশন উল্লেখ করুন

আপনি ওয়েপয়েন্ট (REST) বা ওয়েপয়েন্ট (gRPC) অবজেক্ট তৈরি করে কোনও লোকেশনকে উপস্থাপন করেন। ওয়েপয়েন্ট সংজ্ঞায়, আপনি নিম্নলিখিত যেকোনও উপায়ে লোকেশন নির্দিষ্ট করতে পারবেন:

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

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

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

প্লেস আইডি হিসেবে লোকেশন নির্দিষ্ট করুন

ওয়েপয়েন্টের লোকেশন নির্দিষ্ট করতে আপনি প্লেস আইডি ব্যবহার করতে পারেন। কারণ, অক্ষাংশ ও দ্রাঘিমাংশ কোঅর্ডিনেট রোডে স্ন্যাপ করা হয়, তাই আপনি কিছু কিছু ক্ষেত্রে প্লেস আইডি থেকে আরও ভালো ফলাফল পেতে পারেন।

Geocoding API এবং Places API (নতুন) (এর মধ্যে অটোফিল (নতুন) অন্তর্ভুক্ত) থেকে প্লেস আইডি রিট্রিভ করুন। প্লেস আইডি সম্পর্কে আরও জানতে, প্লেস আইডি ওভারভিউ দেখুন।

নিচের উদাহরণে origin এবং destination-এর জন্য প্লেস আইডি পাস করতে placeId প্রপার্টি ব্যবহার করা হয়েছে:

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক হিসেবে লোকেশন নির্দিষ্ট করা

ওয়েপয়েন্টে লোকেশন নির্ধারণ করতে, লোকেশন (REST) বা লোকেশন (gRPC) নির্দিষ্ট করুন। এর জন্য অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট ব্যবহার করুন।

যেমন, origin রুটের জন্য একটি ওয়েপয়েন্ট নির্দিষ্ট করুন এবং destination latitude ও longitude কোঅর্ডিনেট ব্যবহার করুন:

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
...
}

ঠিকানা স্ট্রিং হিসেবে লোকেশন নির্দিষ্ট করা

ঠিকানার স্ট্রিং হল আক্ষরিক ঠিকানা যা একটি স্ট্রিং দ্বারা উপস্থাপিত হয় (যেমন "১৬০০ অ্যাম্ফিথিয়েটার পার্কওয়ে, মাউন্টেন ভিউ, CA")। জিওকোডিং হল এমন একটি প্রসেস যার মাধ্যমে ঠিকানার স্ট্রিংকে অক্ষাংশ ও দ্রাঘিমাংশের কোঅর্ডিনেটে (যেমন অক্ষাংশ 37.423021 ও দ্রাঘিমাংশ -122.083739) কনভার্ট করা হয়।

আপনি যখন কোনও ওয়েপয়েন্টের লোকেশন হিসেবে কোনও অ্যাড্রেস স্ট্রিং পাস করেন, তখন Routes API অভ্যন্তরীণভাবে স্ট্রিংটিকে জিওকোড করে এটিকে অক্ষাংশ ও দ্রাঘিমাংশ কোঅর্ডিনেটে কনভার্ট করে।

যেমন, কোনও রুট গণনা করার জন্য আপনি অ্যাড্রেস স্ট্রিং ব্যবহার করে রুটের জন্য একটি ওয়েপয়েন্ট origin এবং destination নির্দিষ্ট করেন:

{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "450 Serra Mall, Stanford, CA 94305, USA"
  },
  ...
}

এই উদাহরণে, Routes API দুটি ঠিকানাকেই জিওকোড করে সেগুলিকে অক্ষাংশ ও দ্রাঘিমাংশ কোঅর্ডিনেটে কনভার্ট করে।

ঠিকানার ভ্যালু অস্পষ্ট হলে, Routes API একই ধরনের ঠিকানা থেকে অস্পষ্টতা দূর করতে সার্চ করতে পারে। যেমন, "1st Street" হল "1st street NE" বা "1st St SE"-এর সম্পূর্ণ বা আংশিক ভ্যালু। এই ফলাফল Geocoding API-এর দেওয়া ফলাফলের থেকে আলাদা হতে পারে। আপনি প্লেস আইডি ব্যবহার করে সম্ভাব্য ভুল ব্যাখ্যা এড়াতে পারবেন।

ঠিকানার জন্য অঞ্চল সেট করুন

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

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

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

{
  []
}

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

"টোলেডো" থেকে "মাদ্রিদ" যাওয়ার জন্য দিকনির্দেশ সংক্রান্ত অনুরোধে regionCode প্যারামিটার অন্তর্ভুক্ত থাকলে উপযুক্ত ফলাফল পাওয়া যায় কারণ "টোলেডো" বলতে স্পেনের একটি শহরকে বোঝানো হয়েছে:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

উত্তরে এখন টোলেডো, স্পেন থেকে মাদ্রিদ, স্পেন পর্যন্ত রুট গণনা করা হয়েছে:

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

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

Geocoding API-এর Destinations মেথড কল করে আপনি নেভিগেশন পয়েন্ট টোকেন পেতে পারেন।

নেভিগেশন পয়েন্ট টোকেন নির্দিষ্ট করতে:

  1. Geocoding API-এর SearchDestinations পদ্ধতি থেকে navigationPointToken পান। আরও তথ্যের জন্য Geocoding API ডকুমেন্টেশন দেখুন।
  2. navigationPointToken পাস করে একটি ওয়েপয়েন্ট তৈরি করুন।

নিচের উদাহরণে origin ও destination, দু'টির জন্যই নেভিগেশন পয়েন্ট টোকেন পাস করতে navigation_point_token প্রপার্টি ব্যবহার করা হয়েছে:

{
  "origin":{
    "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN"
  },
  "destination":{
    "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION"
  },
  ...
}

Plus Code হিসেবে লোকেশন নির্দিষ্ট করা

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

Plus Code হল এমন কোনও ব্যক্তি বা জায়গার রাস্তার ঠিকানা যার কোনও আসল ঠিকানা নেই। রাস্তার নাম ও নম্বর সহ ঠিকানার পরিবর্তে, Plus Codes অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটের উপর ভিত্তি করে তৈরি হয় এবং সংখ্যা ও অক্ষর হিসেবে দেখানো হয়।

প্রত্যেক ব্যক্তি ও বস্তুকে ঠিকানা সংক্রান্ত সুবিধা দেওয়ার জন্য Google Plus Codes ডেভেলপ করেছে। Plus Code হল এনকোড করা লোকেশন রেফারেন্স, যা অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট থেকে পাওয়া যায়। এটি একটি এলাকাকে বোঝায়: ১/৮০০০ ডিগ্রি বাই ১/৮০০০ ডিগ্রি (নিরক্ষরেখায় প্রায় ১৪ মিটার x ১৪ মিটার) বা তার চেয়ে ছোট। যেসব জায়গায় রাস্তার ঠিকানা নেই অথবা বিল্ডিংয়ের নম্বর বা রাস্তার নাম নেই, সেখানে রাস্তার ঠিকানার পরিবর্তে আপনি Plus Code ব্যবহার করতে পারেন।

Plus Codes অবশ্যই গ্লোবাল কোড বা কম্পাউন্ড কোড হিসেবে ফর্ম্যাট করা থাকতে হবে:

  • গ্লোবাল কোড ৪ অক্ষরের এরিয়া কোড এবং ৬ অক্ষর বা তার চেয়ে বড় লোকাল কোড দিয়ে তৈরি হয়।

    যেমন, "১৬০০ অ্যাম্ফিথিয়েটার পার্কওয়ে, মাউন্টেন ভিউ, ক্যালিফোর্নিয়া" ঠিকানার জন্য গ্লোবাল কোড হল "849V" এবং লোকাল কোড হল "CWC8+R9"। তারপরে, আপনি সম্পূর্ণ ১০-টি অক্ষরের Plus Code ব্যবহার করে লোকেশন ভ্যালু "849VCWC8+R9" হিসেবে নির্দিষ্ট করেন।

  • যৌগিক কোড হল ৬টি অক্ষর বা তার বেশি দৈর্ঘ্যের স্থানীয় কোড যা একটি নির্দিষ্ট লোকেশনের সাথে যুক্ত থাকে।

    যেমন, "450 Serra Mall, Stanford, CA 94305, USA" ঠিকানার লোকাল কোড হল "CRHJ+C3"। যৌগিক ঠিকানার ক্ষেত্রে, ঠিকানার লোকাল কোড, শহর, রাজ্য, পিন কোড ও দেশের অংশকে "CRHJ+C3 Stanford, CA 94305, USA" ফর্ম্যাটে একত্রিত করুন।

    যেমন, Plus Code ব্যবহার করে origin এবং destination রুটের জন্য ওয়েপয়েন্ট নির্দিষ্ট করে রুট গণনা করুন:

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

Google Maps Platform API-তে Plus Codes কাজ করে, এর মধ্যে রয়েছে অটোফিল (নতুন), স্থান সম্পর্কিত বিবরণ (নতুন) এবং জিওকোডিং API। যেমন, আপনি Geocoding API ব্যবহার করে অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক দ্বারা নির্দিষ্ট করা কোনও লোকেশন রিভার্স জিওকোড করে লোকেশনটির Plus Code নির্ধারণ করতে পারেন।