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

এই পৃষ্ঠার নিম্নলিখিত বিভাগগুলিতে রোডস সিলেকশন এপিআই (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 )। এই মানটি অবশ্যই ৪ থেকে ৬৩ অক্ষরের মধ্যে হতে হবে এবং এতে শুধুমাত্র আলফানিউমেরিক অক্ষর ব্যবহার করতে হবে । আপনি যদি কোনো আইডি প্রদান না করেন, তাহলে সিস্টেম নির্বাচিত রুটের জন্য একটি অনন্য আইডি তৈরি করে নেবে।

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

curl -X POST -d '
    {"dynamic_route": { \
      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"

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

নিম্নলিখিত কোড নমুনাটি একটি সফল এন্ডপয়েন্ট 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"
}

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

একটি অনুরোধে একাধিক রুট তৈরি করতে 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": [
      {
        "dynamicRoute": {
          "origin": {"latitude": ORIGIN_LATITUDE_1, "longitude": ORIGIN_LONGITUDE_1},
          "destination": {"latitude": DESTINATION_LATITUDE_1, "longitude": DESTINATION_LONGITUDE_1}
        },
        "selectedRouteId": "route-one"
      },
      {
        "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"

সফল হলে, এপিআইটি একটি রেসপন্স ফেরত দেয়, যাতে তৈরি হওয়া 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"
    }
  ]
}

মধ্যবর্তী ওয়েপয়েন্ট সহ একটি রুট তৈরি করুন

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

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

curl -X POST -d '
    {"dynamic_route": { \
        "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 অবজেক্টটিতে একটি route_attributes ফিল্ড অন্তর্ভুক্ত রয়েছে।

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

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

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

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

routeAttributes ফিল্ডটি নির্ধারণ করার সময় নিম্নলিখিত নির্দেশিকাগুলো অনুসরণ করুন:

  • কী-গুলো goog উপসর্গ দিয়ে শুরু করা যাবে না।
  • প্রতিটি কী এবং প্রতিটি ভ্যালুর দৈর্ঘ্য ১০০ অক্ষরের বেশি হবে না।

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

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

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

curl -X POST -d '
    {"dynamic_route": { origin: {latitude: ORIGIN_LATITUDE ,longitude: ORIGIN_LONGITUDE}, destination: {latitude: DESTINATION_LATITUDE, longitude: DESTINATION_LONGITUDE}}, route_attributes: {"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"