কোনও রুট যে পয়েন্টের মধ্যে দিয়ে যাবে সেটি সেট করা

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

ডিফল্ট হিসেবে, API কোনও রুটের মধ্যবর্তী ওয়েপয়েন্টকে স্টপ হিসেবে বিবেচনা করে। তবে, আপনি ইন্টারমিডিয়েট ওয়েপয়েন্টকে পাস-থ্রু via ওয়েপয়েন্ট হিসেবে কনফিগার করতে পারেন, যার মধ্যে দিয়ে গাড়ি না থেমে চলে যাবে।

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

কোনও রুটে সোর্স, এক বা একাধিক মধ্যবর্তী পাস-থ্রু ওয়েপয়েন্ট এবং গন্তব্য থাকলে, তাতে শুধুমাত্র একটি রুট লেগ থাকে যা সোর্সকে সরাসরি গন্তব্যের সাথে কানেক্ট করে।

ইন্টারমিডিয়েট ওয়েপয়েন্টকে পাস-থ্রু ওয়েপয়েন্ট হিসেবে কনফিগার করতে, REST Waypoint রিসোর্স বা gRPC Waypoint মেসেজে ওয়েপয়েন্টের via প্রপার্টিকে true হিসেবে সেট করুন।

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

via প্রপার্টি সবচেয়ে কার্যকর হয় যখন আপনি কোনও ম্যাপে ওয়েপয়েন্ট ড্র্যাগ করার প্রতিক্রিয়ায় রুট তৈরি করেন। এই পদ্ধতির মাধ্যমে আপনি রিয়েল-টাইমে চূড়ান্ত রুটটি কেমন দেখতে লাগবে তা দেখতে পাবেন এবং অ্যাক্সেস করা যায় এমন লোকেশনে ওয়েপয়েন্ট প্লেস করতে পারবেন।

উদাহরণ: পাস-থ্রু ওয়েপয়েন্ট সেট করা

সম্পূর্ণ computeRoutes পোস্ট রিকোয়েস্টে মধ্যবর্তী ওয়েপয়েন্টে কীভাবে "via": true সেট করতে হয় তা নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      },
      "via": true
    }
  ],
  "travelMode": "DRIVE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

পাস-থ্রু ওয়েপয়েন্টের জন্য ঠিকানা বা প্লেস আইডি ব্যবহার করা

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

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

আপনি যদি ঠিকানার স্ট্রিং বা Plus Code ব্যবহার করে কোনও ওয়েপয়েন্ট নির্দিষ্ট করেন, তাহলে API লোকেশনটি জিওকোড করে এবং রেসপন্সে geocodingResults.intermediates অ্যারেতে মিলে যাওয়া Place ID রিটার্ন করে।

intermediates অ্যারের প্রতিটি এলিমেন্টের জন্য, কোন ইন্টারমিডিয়েট ওয়েপয়েন্ট অনুরোধে রেসপন্সের প্লেস আইডির সাথে মিলে যাচ্ছে তা নির্ধারণ করতে intermediateWaypointRequestIndex প্রপার্টি ব্যবহার করুন।

উদাহরণ: পাস-থ্রু ওয়েপয়েন্টের জন্য জায়গার আইডি অনুরোধ করা

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

curl -X POST -d '{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "24 Willie Mays Plaza, San Francisco, CA 94107"
  },
  "intermediates": [
    {
      "address": "450 Serra Mall, Stanford, CA 94305, USA",
      "via": true
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      },
      "via": true
    },
    {
      "address": "1836 El Camino Real, Redwood City, CA 94063",
      "via": true
    }
  ],
  "travelMode": "DRIVE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

উত্তরে geocodingResults অ্যারে অন্তর্ভুক্ত থাকে যাতে আসল লোকেশন, গন্তব্য এবং দুটি মধ্যবর্তী ওয়েপয়েন্টের প্লেস আইডি থাকে। এগুলি আপনি অনুরোধের ইন্ডেক্স ০ ও ইন্ডেক্স ২-এ ঠিকানা দিয়ে নির্দিষ্ট করেছেন। আপনি অক্ষাংশ ও দ্রাঘিমাংশ কোঅর্ডিনেট ব্যবহার করে নির্দিষ্ট করেছেন বলে API, geocodingResults থেকে ১ নম্বর ইনডেক্সে থাকা মধ্যবর্তী ওয়েপয়েন্ট বাদ দিয়েছে:

{
  "routes": [
    {
      "distanceMeters": 54200,
      "duration": "2400s",
      "legs": [
        {
          "distanceMeters": 54200,
          "duration": "2400s",
          "startLocation": {
            "latLng": {
              "latitude": 37.4220,
              "longitude": -122.0841
            }
          },
          "endLocation": {
            "latLng": {
              "latitude": 37.7786,
              "longitude": -122.3893
            }
          }
        }
      ]
    }
  ],
  "geocodingResults": {
    "origin": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g"
    },
    "destination": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY"
    },
    "intermediates": [
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 0,
        "type": [
          "street_address"
        ],
        "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y"
      },
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 2,
        "type": [
          "premise"
        ],
        "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0"
      }
    ]
  }
}