বেছে নেওয়া রুট তৈরি করুন

এই পৃষ্ঠায়, নিম্নলিখিত বিভাগে Roads Selection API ব্যবহার করে কীভাবে রুট তৈরি করতে এবং কাস্টম অ্যাট্রিবিউট যোগ করতে হয় তা বর্ণনা করা হয়েছে:

রুট তৈরি করুন

রুট তৈরি করতে, create এন্ডপয়েন্টে POST অনুরোধ পাঠান।

https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes?selectedRouteId=SELECTED_ROUTE_ID

অনুরোধের বডি অবশ্যই একটি JSON অবজেক্ট হতে হবে যা SelectedRoute রিসোর্সকে সংজ্ঞায়িত করে। এই অবজেক্ট নিম্নলিখিত তথ্য নির্দিষ্ট করে:

  • নিম্নলিখিত তথ্য সহ একটি dynamicRoute অবজেক্ট:
    • বেছে নেওয়া রুটের origin।
    • বেছে নেওয়া রুটের destination।
    • রুটের যেকোনও intermediates, যা ওয়েপয়েন্ট নামেও পরিচিত।
  • একটি অনন্য selectedRouteId। এই ভ্যালু ৪-৬৩টি অক্ষর হতে হবে এবং সঠিক অক্ষর হল a-z, A-Z, 0-9, - বা _। আইডি প্রদান করা না হলে, সিস্টেম বেছে নেওয়া রুটের জন্য একটি অনন্য আইডি তৈরি করে।

নিম্নলিখিত কোড স্যাম্পেল থেকে create এন্ডপয়েন্টে POST অনুরোধের গঠন সম্পর্কে জানতে পারবেন।

curl -X POST -d '
    {
      "dynamicRoute": {
        "origin": {
          "latitude": ORIGIN_LATITUDE,
          "longitude": ORIGIN_LONGITUDE
        },
        "destination": {
          "latitude": DESTINATION_LATITUDE,
          "longitude": DESTINATION_LONGITUDE
        }
      }
    }' \
  -H 'X-Goog-User-Project: PROJECT_NUMBER' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  "https://roads.googleapis.com/selection/v1/projects/"\
"PROJECT_NUMBER/selectedRoutes?selectedRouteId=SELECTED_ROUTE_ID"

সফল হলে, API SelectedRoute রিসোর্স ফিরিয়ে দেয়। উত্তরে name ফিল্ডে selectedRouteId অন্তর্ভুক্ত আছে। SelectedRoute রিসোর্স ফিরিয়ে আনতে বা মুছে ফেলতে আপনি এই selectedRouteId ব্যবহার করতে পারবেন।

নিচের কোড স্যাম্পেলে একটি সফল create এন্ডপয়েন্ট উত্তরের গঠন দেখানো হয়েছে।

{
  "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID",
  "dynamicRoute": {
    "origin": {
      "latitude": ORIGIN_LATITUDE,
      "longitude": ORIGIN_LONGITUDE
    },
    "destination": {
      "latitude": DESTINATION_LATITUDE,
      "longitude": DESTINATION_LONGITUDE
    }
  },
  "createTime": "CREATE_TIME",
  "state": "STATE_VALIDATING"
}

মাঝামাঝি ওয়েপয়েন্ট সহ রুট তৈরি করা

শুরু ও গন্তব্যের মধ্যে নির্দিষ্ট পয়েন্টের মধ্যে দিয়ে যায় এমন রুট তৈরি করতে, আপনার অনুরোধের বডিতে dynamicRoute অবজেক্টের মধ্যে একটি intermediates অ্যারে অন্তর্ভুক্ত করুন। intermediates অ্যারের প্রতিটি এলিমেন্ট হল একটি ওয়েপয়েন্ট যা latitude এবং longitude দ্বারা সংজ্ঞায়িত। একটি রুটে সর্বাধিক ২৫টি ওয়েপয়েন্ট থাকতে পারে।

নিম্নলিখিত কোড স্যাম্পেল থেকে জানা যায় যে কীভাবে মধ্যবর্তী ওয়েপয়েন্ট সহ SelectedRoute তৈরি করতে হয়:

curl -X POST -d '
    {
      "dynamicRoute": {
        "origin": {
          "latitude": ORIGIN_LATITUDE,
          "longitude": ORIGIN_LONGITUDE
        },
        "intermediates": [
          {"latitude": INTERMEDIATE_LATITUDE_1, "longitude": INTERMEDIATE_LONGITUDE_1},
          {"latitude": INTERMEDIATE_LATITUDE_2, "longitude": INTERMEDIATE_LONGITUDE_2},
          {"latitude": INTERMEDIATE_LATITUDE_3, "longitude": INTERMEDIATE_LONGITUDE_3}
        ],
        "destination": {
          "latitude": DESTINATION_LATITUDE,
          "longitude": DESTINATION_LONGITUDE
        }
      }
    }' \
  -H 'X-Goog-User-Project: PROJECT_NUMBER' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  "https://roads.googleapis.com/selection/v1/projects/"\
"PROJECT_NUMBER/selectedRoutes?selectedRouteId=SELECTED_ROUTE_ID"

কাস্টম রুট অ্যাট্রিবিউট ব্যবহার করুন

Roads Management Insights-এ আপনার রুট ম্যানেজমেন্ট এবং ডেটা বিশ্লেষণ উন্নত করতে, SelectedRoute অবজেক্টে একটি routeAttributes ফিল্ড অন্তর্ভুক্ত থাকে।

routeAttributes ফিল্ড ব্যবহার করে প্রতিটি রুটের জন্য আপনার নিজস্ব কাস্টম প্রপার্টি নির্ধারণ করুন, যেখানে প্রতিটি অ্যাট্রিবিউট হল একটি কী-ভ্যালু পেয়ার। আপনি প্রতিটি রুটের জন্য সর্বাধিক ২৫টি কাস্টম কী-ভ্যালু পেয়ার প্রদান করতে পারবেন।

এইসব অ্যাট্রিবিউট নির্দিষ্ট রুট শনাক্ত করতে বা আপনার প্রয়োজন অনুযায়ী প্রাসঙ্গিক নির্ণায়কের ভিত্তিতে রুট গ্রুপ করতে কাজে লাগে।

আপনি ব্যবহার করতে পারেন এমন রুট অ্যাট্রিবিউটের কিছু উদাহরণ নিচে দেওয়া হল:

  • "road_classification": "highway"
  • "maintenance_zone": "north_district"
  • "event_id": "marathon_2024"
  • "pavement_type": "asphalt"

routeAttributes ফিল্ড নির্ধারণ করার সময় পরবর্তী নির্দেশিকা অনুসরণ করুন:

  • কী অবশ্যই goog প্রিফিক্স দিয়ে শুরু হতে হবে।
  • প্রতিটি 'কী' ও ভ্যালুর দৈর্ঘ্য ১০০ অক্ষরের বেশি হলে চলবে না।

আপনি Roads Management Insights-এর মধ্যে এইসব কাস্টম routeAttributes নিম্নলিখিত উপায়ে ব্যবহার করতে পারবেন:

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

পরবর্তী কোড স্যাম্পেল দেখায় যে কীভাবে কাস্টম routeAttributes সহ SelectedRoute তৈরি করতে হয়।

curl -X POST -d '
    {
    "dynamicRoute": {
      "origin": {
        "latitude": ORIGIN_LATITUDE,
        "longitude": ORIGIN_LONGITUDE
      },
      "destination": {
        "latitude": DESTINATION_LATITUDE,
        "longitude": DESTINATION_LONGITUDE
      }
    },
    "routeAttributes": {
      "ATTRIBUTE_KEY": "ATTRIBUTE_VALUE"
    }
  }' \
  -H 'X-Goog-User-Project: PROJECT_NUMBER' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  "https://roads.googleapis.com/selection/v1/projects/"\
"PROJECT_NUMBER/selectedRoutes?selectedRouteId=SELECTED_ROUTE_ID"

ব্যাচ রুট তৈরি করুন

একটি অনুরোধে একাধিক রুট তৈরি করতে, batchCreate এন্ডপয়েন্ট ব্যবহার করুন। এই এন্ডপয়েন্ট আপনাকে একটি কলে ১০০০টি পর্যন্ত রুট নির্ধারণ করতে দেয়।

batchCreate এন্ডপয়েন্টে POST অনুরোধ পাঠান:

https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes:batchCreate

URL-এ gRPC ট্রান্সকোডিং সিনট্যাক্স ব্যবহার করা হয়।

অনুরোধের বডি অবশ্যই একটি JSON অবজেক্ট হতে হবে যাতে একটি requests অ্যারে থাকে। এই অ্যারের মধ্যে থাকা প্রতিটি অবজেক্ট হল একটি CreateSelectedRouteRequest যা একটি স্বতন্ত্র SelectedRoute রিসোর্সকে সংজ্ঞায়িত করে।

নিম্নলিখিত কোড স্যাম্পেল batchCreate এন্ডপয়েন্টে POST অনুরোধের স্ট্রাকচার দেখায়:

curl -X POST -d '
    {
      "requests": [
        {
          "selectedRoute": {
            "dynamicRoute": {
              "origin": {
                "latitude": ORIGIN_LATITUDE_1,
                "longitude": ORIGIN_LONGITUDE_1
              },
              "destination": {
                "latitude": DESTINATION_LATITUDE_1,
                "longitude": DESTINATION_LONGITUDE_1
              }
            }
          },
          "selectedRouteId": "route-one"
        },
        {
          "selectedRoute": {
            "dynamicRoute": {
              "origin": {
                "latitude": ORIGIN_LATITUDE_2,
                "longitude": ORIGIN_LONGITUDE_2
              },
              "destination": {
                "latitude": DESTINATION_LATITUDE_2,
                "longitude": DESTINATION_LONGITUDE_2
              }
            }
          },
          "selectedRouteId": "route-two"
        }
      ]
    }' \
  -H 'X-Goog-User-Project: PROJECT_NUMBER' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  "https://roads.googleapis.com/selection/v1/projects/"\
"PROJECT_NUMBER/selectedRoutes:batchCreate"

সফল হলে, API একটি রেসপন্স পাঠায় যাতে তৈরি করা SelectedRoute রিসোর্সের অ্যারে থাকে।

নিম্নলিখিত কোড স্যাম্পেল batchCreate এন্ডপয়েন্ট রেসপন্সের স্ট্রাকচার দেখায়:

{
  "selectedRoutes": [
    {
      "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1",
      "dynamicRoute": {
        "origin": {
          "latitude": ORIGIN_LATITUDE_1,
          "longitude": ORIGIN_LONGITUDE_1
        },
        "destination": {
          "latitude": DESTINATION_LATITUDE_1,
          "longitude": DESTINATION_LONGITUDE_1
        }
      },
      "createTime": "CREATE_TIME_1",
      "state": "STATE_VALIDATING"
    },
    {
      "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2",
      "dynamicRoute": {
        "origin": {
          "latitude": ORIGIN_LATITUDE_2,
          "longitude": ORIGIN_LONGITUDE_2
        },
        "destination": {
          "latitude": DESTINATION_LATITUDE_2,
          "longitude": DESTINATION_LONGITUDE_2
        }
      },
      "intermediates": [],
      "createTime": "CREATE_TIME_2",
      "state": "STATE_VALIDATING"
    }
  ]
}