এই পৃষ্ঠায় Roads Selection API ব্যবহার করে কীভাবে রুট তৈরি করতে এবং কাস্টম অ্যাট্রিবিউট যোগ করতে হয় তা নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে:
- রুট তৈরি করা:
createএন্ডপয়েন্ট ব্যবহার করে একটি রুট নির্দিষ্ট করুন। - ব্যাচ ক্রিয়েট রুট:
batchCreateএন্ডপয়েন্ট ব্যবহার করে একটি অনুরোধে একাধিক রুট নির্ধারণ করুন। - মধ্যবর্তী ওয়েপয়েন্ট সহ রুট তৈরি করা: সর্বাধিক ২৫টি মধ্যবর্তী ওয়েপয়েন্ট সহ রুট নির্ধারণ করুন।
- কাস্টম রুট অ্যাট্রিবিউট ব্যবহার করুন: সাংগঠনিক উদ্দেশ্যে আপনার রুটে সর্বাধিক ১০টি কাস্টম কী-ভ্যালু পেয়ার যোগ করুন।
রুট তৈরি করুন
রুট তৈরি করতে, 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,-বা_। আইডি প্রদান করা না হলে, সিস্টেম বেছে নেওয়া রুটের জন্য একটি অনন্য আইডি তৈরি করে।
একটি নির্দিষ্ট রুট তৈরি করুন (ডিফল্ট)
রুটগুলি ডিফল্ট হিসেবে নির্দিষ্ট রুট হিসেবে তৈরি করা হয় এবং লাইভ ট্রাফিক ছাড়াই তৈরির সময় গণনা করা স্ট্যাটিক রুট জ্যামিতির (routes_status BigQuery টেবিলে এক্সপোর্ট করা হয়) সাথে সামঞ্জস্যপূর্ণ থাকে। এটি ট্রাফিক শর্তাবলী পরিবর্তনের দ্বারা প্রভাবিত না হয়ে ট্রাফিক ডেটার ধারাবাহিক
পর্যবেক্ষণ নিশ্চিত করে।
আপনি অনুরোধের বডিতে dynamicRouting বুলিয়ান ফিল্ড সেট করে
রুটটি নির্দিষ্ট (false, ডিফল্ট) নাকি ডায়নামিক (true) তা উল্লেখ করতে পারবেন।
নিম্নলিখিত কোড স্যাম্পেল থেকে একটি নির্দিষ্ট রুটের জন্য POST অনুরোধের
create স্ট্রাকচার সম্পর্কে জানতে পারবেন।
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",
"dynamicRouting": false
}
ডায়নামিক রুট তৈরি করুন
বিকল্প হিসেবে, আপনি dynamicRouting ফিল্ড true-এ সেট করে
ডায়নামিক রুট তৈরি করতে পারবেন। ট্রাফিকের পরিস্থিতি অনুযায়ী রুটের জ্যামিতি পরিবর্তিত হতে পারে
কারণ Google-এর রাউটিং প্ল্যাটফর্ম প্রতিবার সেরা রুট খুঁজে বের করে।
নিম্নলিখিত কোড স্যাম্পেল থেকে ডায়নামিক রুট create করার জন্য POST অনুরোধের স্ট্রাকচার সম্পর্কে জানতে পারবেন:
curl -X POST -d '
{
"dynamicRoute": {
"origin": {
"latitude": ORIGIN_LATITUDE,
"longitude": ORIGIN_LONGITUDE
},
"destination": {
"latitude": DESTINATION_LATITUDE,
"longitude": DESTINATION_LONGITUDE
}
},
"dynamicRouting": true
}' \
-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"নিচের কোড স্যাম্পেল থেকে সফল 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",
"dynamicRouting": true
}
মাঝামাঝি ওয়েপয়েন্ট সহ রুট তৈরি করা
শুরু ও গন্তব্যের মধ্যে নির্দিষ্ট পয়েন্টের মধ্যে দিয়ে যায় এমন রুট তৈরি করতে, আপনার অনুরোধের বডিতে
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",
"dynamicRouting": false
},
{
"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
}
},
"createTime": "CREATE_TIME_2",
"state": "STATE_VALIDATING",
"dynamicRouting": false
}
]
}