এই দস্তাবেজটি অনুমান করে যে আপনি কীভাবে কাজগুলি তৈরি করতে এবং ব্যবহার করবেন তা বোঝেন৷ এটি নিম্নলিখিত উপায়ে চালানের কাজগুলি কীভাবে কনফিগার করতে হয় তার জন্য নির্দিষ্ট উদাহরণ প্রদান করে:
একটি শিপমেন্ট টাস্কের জন্য টার্গেট টাইম উইন্ডো সেট করুন : টাস্কটি সম্পূর্ণ করার জন্য সময় উইন্ডো সেট করুন।
টাস্ক দৃশ্যমানতা কাস্টমাইজ করুন : গ্রাহক বা ফ্লিট অপারেটরদের কাছে প্রদর্শনের জন্য টাস্ক কার্যকলাপের দৃশ্যমানতা কাস্টমাইজ করুন।
চালান কাজের জন্য ক্ষেত্র সম্পর্কে বিশদ বিবরণের জন্য চালান কার্য তৈরি করুন দেখুন। আপনি যখন বিদ্যমান কাজগুলি সম্পর্কে অতিরিক্ত তথ্য আপডেট করেন, তখন আপনাকে অবশ্যই সেই কাজের জন্য প্রাসঙ্গিক শনাক্তকারী অন্তর্ভুক্ত করতে হবে, আপনি যে ক্ষেত্রগুলি কাজগুলির জন্য আপডেট করবেন তা ছাড়াও৷
টার্গেট টাইম উইন্ডো সেট করুন
টার্গেট টাইম উইন্ডো হল টাইমউইন্ডো যার সময় টাস্কটি সম্পন্ন করা উচিত। উদাহরণস্বরূপ, আপনি যদি ডেলিভারি প্রাপকদের কাছে একটি ডেলিভারি টাইম উইন্ডো যোগাযোগ করেন, আপনি এই টাইম উইন্ডোটি ক্যাপচার করতে এবং সতর্কতা জেনারেট করতে টাস্ক টার্গেট টাইম উইন্ডো ব্যবহার করতে পারেন, অথবা আপনি অতীতের ট্রিপের কার্যকারিতা বিশ্লেষণ করতে এটি ব্যবহার করতে পারেন।
টার্গেট টাইম উইন্ডোতে শুরুর সময় এবং শেষের সময় থাকে এবং যেকোন টাস্ক টাইপের জন্য সেট করা যেতে পারে। টার্গেট টাইম উইন্ডো রাউটিং আচরণকে প্রভাবিত করে না।
নিম্নলিখিত উদাহরণগুলি জাভা gRPC লাইব্রেরি ব্যবহার করে কীভাবে সময় উইন্ডো সেট করতে হয় বা UpdateTask
এ HTTP REST অনুরোধ কীভাবে করতে হয় তা দেখায়। আপনি টাস্ক তৈরির সময় এই ক্ষেত্রটিও সেট করতে পারেন।
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
.setName(taskName)
.setTargetTimeWindow(
TimeWindow.newBuilder()
.setStartTime(Timestamp.newBuilder().setSeconds(1680123600))
.setEndTime(Timestamp.newBuilder().setSeconds(1680130800)))
.build();
// Task request
UpdateTaskRequest updateTaskRequest =
UpdateTaskRequest.newBuilder() // No need for the header
.setTask(task)
.setUpdateMask(FieldMask.newBuilder().addPaths("targetTimeWindow"))
.build();
try {
Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
বিশ্রাম
HTTP ব্যবহার করে একটি টাস্ক টাইম উইন্ডো সেট করতে, PATCH
কল করুন এবং targetTimeWindow
প্যারামিটার আপডেট করতে updateMask
ব্যবহার করুন:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow
এখানে <id> টাস্কের জন্য একটি অনন্য শনাক্তকারী। অনুরোধের শিরোনামে অবশ্যই Bearer <token> মান সহ একটি ক্ষেত্র অনুমোদন থাকতে হবে, যেখানে পরিষেবা অ্যাকাউন্টের ভূমিকা এবং JSON ওয়েব টোকেনে বর্ণিত নির্দেশিকা অনুসারে আপনার সার্ভার দ্বারা <token> জারি করা হয়।
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=targetTimeWindow" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"targetTimeWindow": {
"startTime": "2023-03-29T21:00:00Z",
"endTime": "2023-03-29T23:00:00Z"
}
}
EOM
টাস্ক দৃশ্যমানতা কাস্টমাইজ করুন
ডিফল্টরূপে, ফ্লিট ইঞ্জিন টাস্ক অ্যাক্টিভিটিগুলির দৃশ্যমানতা প্রদান করে যা তারপরে একটি চালান গ্রহণকারী গ্রাহকদের এবং শিপমেন্ট ট্র্যাকিং ফ্লিট অপারেটর উভয়ের কাছেই প্রদর্শিত হতে পারে। এতে গ্রাহকদের প্যাকেজ ডেলিভারি স্থিতি সম্পর্কে একটি বিজ্ঞপ্তি পাঠানোর আগে স্টপের সংখ্যা নির্দেশ করার মতো তথ্য অন্তর্ভুক্ত রয়েছে। আপনি আপনার ব্যবসার মডেলকে আরও ভালভাবে মানিয়ে নিতে প্রতি-টাস্ক ভিত্তিতে এই তথ্যটি কাস্টমাইজ করতে পারেন।
এই বিভাগটি মানচিত্রে ট্র্যাক করা বস্তুর দৃশ্যমানতার নিয়ম বর্ণনা করে। এই নিয়ম দুটি বিষয়শ্রেণীতে প্রযোজ্য:
- অবস্থান চিহ্নিতকারী দৃশ্যমানতা
- সক্রিয় যানবাহনের কাজের জন্য টাস্ক ডেটা দৃশ্যমানতা, যেমন পলিলাইন এবং ইটিএ
অবস্থান চিহ্নিতকারী দৃশ্যমানতার নিয়ম
ফ্লিট ইঞ্জিন ডেলিভারির অবস্থা নির্বিশেষে ম্যাপে দেখানো শিপমেন্ট ডেলিভারির অবস্থানের জন্য অবস্থান চিহ্নিতকারী প্রদর্শন করে।
টাস্ক ডেটা দৃশ্যমানতার নিয়ম
এই বিভাগটি ডিফল্ট দৃশ্যমানতার নিয়মগুলি বর্ণনা করে যা টাস্ক ডেটাতে প্রযোজ্য। আপনি শুধুমাত্র সক্রিয় গাড়ির কাজগুলি কাস্টমাইজ করতে পারেন, যার মানে হল যে শুধুমাত্র পিকআপ এবং ড্রপ-অফ কাজগুলি কাস্টমাইজ করা দৃশ্যমানতা নিয়মগুলি প্রয়োগ করতে পারে৷
নিম্নলিখিত কাজগুলি কাস্টমাইজ করা যাবে না:
- নির্ধারিত স্টপ
- অনুপলব্ধ কাজ
- নিষ্ক্রিয় যানবাহন কাজ
অনুপলব্ধ কাজ দৃশ্যমানতা নিয়ম
ডিফল্টরূপে, ট্র্যাক করা টাস্কের জন্য অন্তত একটি অনুপলব্ধতা টাস্ক বরাদ্দ করা থাকলে গাড়িটি মানচিত্রে প্রদর্শিত হয় না। উদাহরণস্বরূপ, যদি চালক বিরতি নিচ্ছেন বা ট্র্যাক করা চালানের পথে যানবাহনটি রিফুয়েল করা হচ্ছে। আনুমানিক আগমনের সময় এবং আনুমানিক কাজ সমাপ্তির সময় এখনও উপলব্ধ। আবার, আপনি এই নিয়ম কাস্টমাইজ নাও করতে পারেন.
সক্রিয় যানবাহন কার্য দৃশ্যমানতা
TaskTrackingInfo
অবজেক্ট অনেকগুলি ডেটা উপাদান সরবরাহ করে যা আপনি শিপমেন্ট ট্র্যাকিং লাইব্রেরি ব্যবহার করে দৃশ্যমান করতে পারেন। ডিফল্টরূপে, এই ক্ষেত্রগুলি দৃশ্যমান হয় যখন টাস্কটি গাড়িতে বরাদ্দ করা হয় এবং যখন গাড়িটি টাস্কের 5 স্টপের মধ্যে থাকে। টাস্ক সম্পূর্ণ বা বাতিল হলে দৃশ্যমানতা শেষ হয়।
আপনি ফ্লিট ইঞ্জিনের মধ্যে টাস্ক তৈরি বা আপডেট করার সময় একটি টাস্কে TaskTrackingViewConfig
সেট করে প্রতি-টাস্ক ভিত্তিতে দৃশ্যমানতা কনফিগারেশন কাস্টমাইজ করতে পারেন। এটি পৃথক ডেটা উপাদানগুলি উপলব্ধ হওয়ার জন্য নিয়ম তৈরি করে।
নিম্নলিখিত সারণীটি ক্ষেত্রগুলি দেখায় যেখানে আপনি দৃশ্যমানতার নিয়ম প্রয়োগ করতে পারেন৷
দৃশ্যমানতার নিয়মের জন্য যানবাহনের টাস্ক ক্ষেত্র |
---|
|
এই টেবিলটি উপরে তালিকাভুক্ত ক্ষেত্রগুলির জন্য উপলব্ধ দৃশ্যমানতার বিকল্পগুলি দেখায়৷
দৃশ্যমানতার বিকল্প |
---|
|
রুট পলিলাইন এবং গাড়ির অবস্থান দৃশ্যমানতার নিয়ম
ট্র্যাক করা রুটের জন্য, রুট পলিলাইনের দৃশ্যমানতা গাড়ির দৃশ্যমানতার সাপেক্ষে। যদি একটি রুট পলিলাইন একটি সক্রিয় রুটে দৃশ্যমান হয় যেখানে যানটি দৃশ্যমান নয় , তাহলে দৃশ্যমান পলিলাইনের শেষে গাড়ির অবস্থানটি এখনও অনুমান করা যেতে পারে। অতএব, রুটের পলিলাইন দৃশ্যমানতা অবশ্যই গাড়ির দৃশ্যমানতার চেয়ে সীমাবদ্ধ বা আরও বেশি সীমাবদ্ধ হতে হবে।
একটি বৈধ রুট পলিলাইন / যানবাহনের অবস্থান দৃশ্যমানতার সমন্বয় প্রদান করতে এই নিয়মগুলি অনুসরণ করুন৷
রুট পলিলাইন এবং গাড়ির অবস্থান একই দৃশ্যমানতার বিকল্পগুলি নির্দিষ্ট করে৷
এই পরিস্থিতিতে, পলিলাইন এবং গাড়ির অবস্থান উভয়ই একই বিকল্প সেট করে, যার মধ্যে রয়েছে:
- বাকি স্টপ গণনা
- ETA পর্যন্ত সময়কাল
- অবশিষ্ট ড্রাইভিং দূরত্ব
নিয়ম মেনে চলার জন্য, রুটের পলিলাইন দৃশ্যমানতার মান অবশ্যই গাড়ির দৃশ্যমানতার জন্য সেট করা মানের থেকে কম বা সমান হতে হবে। এই উদাহরণে, পলিলাইনের জন্য অবশিষ্ট স্টপ থ্রেশহোল্ড 3 এ সেট করা হয়েছে, যা গাড়ির জন্য নির্দিষ্ট করা 5-এর মান থেকে কম। এর মানে হল, যখন ট্র্যাক করা যাত্রা টাস্ক লোকেশন থেকে 5 স্টপ দূরে পৌঁছায়, তখন গাড়িটি উপস্থিত হয়, কিন্তু 3টি স্টপ দূরে না হওয়া পর্যন্ত সেই গাড়ির রুটটি প্রদর্শিত হয় না।
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
রুট পলিলাইন এবং গাড়ির অবস্থান বিভিন্ন দৃশ্যমানতার বিকল্পগুলি নির্দিষ্ট করে৷
যখন রুট পলিলাইন এবং গাড়ির অবস্থানের বিভিন্ন দৃশ্যমানতার বিকল্প থাকে, তখন গাড়ির অবস্থান তখনই দৃশ্যমান হয় যখন তাদের উভয় দৃশ্যমানতার বিকল্পগুলি সন্তুষ্ট হয়। আবার, পলিলাইন দৃশ্যমানতা গাড়ির দৃশ্যমানতা নিয়মের সাপেক্ষে:
- সর্বদা দৃশ্যমান : একটি রুট পলিলাইনে অবশ্যই সর্বদা দৃশ্যমান দৃশ্যমান বিকল্পটি ব্যবহার করতে হবে যখন গাড়ির অবস্থানটিও একই সর্বদা দৃশ্যমান দৃশ্যমান বিকল্প প্রদান করে।
- কখনই দৃশ্যমান নয় : একটি রুট পলিলাইনে অবশ্যই কখনই দৃশ্যমান দৃশ্যমান বিকল্প ব্যবহার করতে হবে যখন গাড়ির অবস্থান কখনই দৃশ্যমান দৃশ্যমান বিকল্প ব্যবহার করে না।
একটি উদাহরণ নিম্নরূপ:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
এই উদাহরণে, গাড়ির অবস্থানটি কেবল তখনই দৃশ্যমান হয় যদি অবশিষ্ট থামার সংখ্যা কমপক্ষে 3 হয় এবং অবশিষ্ট ড্রাইভিং দূরত্ব কমপক্ষে 3000 মিটার হয়৷
উদাহরণ টাস্ক দৃশ্যমানতা কাস্টমাইজেশন
নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে নিম্নলিখিত দৃশ্যমানতা নিয়মগুলির সাথে একটি টাস্ক সেট করতে হয়:
- গাড়িটি 3 স্টপেজের মধ্যে থাকলে রুট পলিলাইন দেখান।
- বাকি ড্রাইভিং দূরত্ব 5000 মিটারের কম হলে ETA দেখান।
- অবশিষ্ট স্টপ গণনা দেখান না.
- যখন গাড়িটি টাস্কের 5 স্টপের মধ্যে থাকে তখন একেকটি ক্ষেত্র প্রদর্শিত হওয়ার ডিফল্ট দৃশ্যমানতা বজায় রাখে।
GRPC বা REST- এর জন্য TaskTrackingViewConfig
দেখুন।
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
.setName(taskName)
.setTaskTrackingViewConfig(
TaskTrackingViewConfig.newBuilder()
.setRoutePolylinePointsVisibility(
VisibilityOption.newBuilder().setRemainingStopCountThreshold(3))
.setEstimatedArrivalTimeVisibility(
VisibilityOption.newBuilder().remainingDrivingDistanceMetersThreshold(5000))
.setRemainingStopCountVisibility(
VisibilityOption.newBuilder().setNever(true)))
.build();
// Task request
UpdateTaskRequest updateTaskRequest =
UpdateTaskRequest.newBuilder() // No need for the header
.setTask(task)
.setUpdateMask(FieldMask.newBuilder().addPaths("taskTrackingViewConfig"))
.build();
try {
Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
বিশ্রাম
HTTP ব্যবহার করে টাস্ক ট্র্যাকিং ভিউ কনফিগার উইন্ডো সেট করতে, PATCH
কল করুন এবং taskTrackingViewConfig
প্যারামিটার আপডেট করতে updateMask
ব্যবহার করুন:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig
যেমন:
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=taskTrackingViewConfig" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"estimatedArrivalTimeVisibility": {
"remainingDrivingDistanceMetersThreshold": 5000
},
"remainingStopCountVisibility": {
"never": true
}
}
}
EOM