ShipmentRoute

একটি যানবাহনের পথকে সময় অক্ষ বরাবর এইভাবে বিভক্ত করা যেতে পারে (আমরা ধরে নিচ্ছি এখানে n সংখ্যক পরিদর্শন রয়েছে):

  |            |            |          |       |  T[2], |        |      |
  | Transition |  Visit #0  |          |       |  V[2], |        |      |
  |     #0     |    aka     |   T[1]   |  V[1] |  ...   | V[n-1] | T[n] |
  |  aka T[0]  |    V[0]    |          |       | V[n-2],|        |      |
  |            |            |          |       | T[n-1] |        |      |
  ^            ^            ^          ^       ^        ^        ^      ^
vehicle    V[0].start   V[0].end     V[1].   V[1].    V[n].    V[n]. vehicle
 start     (arrival)   (departure)   start   end      start    end     end

লক্ষ্য করুন যে আমরা নিম্নলিখিত বিষয়গুলোর মধ্যে পার্থক্য করি:

  • "নির্দিষ্ট ঘটনা", যেমন যানবাহনের যাত্রা শুরু ও শেষ এবং প্রতিটি পরিদর্শনের শুরু ও শেষ (অর্থাৎ আগমন ও প্রস্থান)। এগুলো একটি নির্দিষ্ট সেকেন্ডে ঘটে।
  • "সময় ব্যবধান", যেমন সাক্ষাৎগুলো এবং সাক্ষাৎগুলোর মধ্যবর্তী সময়। যদিও সময় ব্যবধানের সময়কাল কখনও কখনও শূন্য হতে পারে, অর্থাৎ একই সেকেন্ডে শুরু এবং শেষ হতে পারে, তবে প্রায়শই এর একটি ধনাত্মক সময়কাল থাকে।

অপরিবর্তনীয় বিষয়সমূহ:

  • যদি n সংখ্যক পরিদর্শন থাকে, তবে n+1 সংখ্যক স্থানান্তর থাকবে।
  • একটি ভিজিট সর্বদা তার আগে একটি ট্রানজিশন (একই ইনডেক্স) এবং তার পরে একটি ট্রানজিশন (ইনডেক্স + ১) দ্বারা পরিবেষ্টিত থাকে।
  • যানবাহন চালু হওয়ার পর সর্বদা ট্রানজিশন #০ অনুসরণ করা হয়।
  • যানবাহনের শেষের আগে সর্বদা #n ট্রানজিশনটি থাকে।

আরও বিশদভাবে দেখলে, একটি Transition এবং একটি Visit সময় যা ঘটে তা হলো:

---+-------------------------------------+-----------------------------+-->
   |           TRANSITION[i]             |           VISIT[i]          |
   |                                     |                             |
   |  * TRAVEL: the vehicle moves from   |      PERFORM the visit:     |
   |    VISIT[i-1].departure_location to |                             |
   |    VISIT[i].arrival_location, which |  * Spend some time:         |
   |    takes a given travel duration    |    the "visit duration".    |
   |    and distance                     |                             |
   |                                     |  * Load or unload           |
   |  * BREAKS: the driver may have      |    some quantities from the |
   |    breaks (e.g. lunch break).       |    vehicle: the "demand".   |
   |                                     |                             |
   |  * WAIT: the driver/vehicle does    |                             |
   |    nothing. This can happen for     |                             |
   |    many reasons, for example when   |                             |
   |    the vehicle reaches the next     |                             |
   |    event's destination before the   |                             |
   |    start of its time window         |                             |
   |                                     |                             |
   |  * DELAY: *right before* the next   |                             |
   |    arrival. E.g. the vehicle and/or |                             |
   |    driver spends time unloading.    |                             |
   |                                     |                             |
---+-------------------------------------+-----------------------------+-->
   ^                                     ^                             ^
V[i-1].end                           V[i].start                    V[i].end

সবশেষে, একটি রূপান্তরের সময় ভ্রমণ, বিরতি, বিলম্ব এবং অপেক্ষাকে কীভাবে সাজানো যেতে পারে, তা এখানে দেওয়া হলো।

  • এগুলো একে অপরের উপর পড়ে না।
  • বিলম্বটি স্বতন্ত্র এবং এটি অবশ্যই পরবর্তী পরিদর্শনের (বা যানবাহনের শেষ হওয়ার) ঠিক আগের একটি অবিচ্ছিন্ন সময়কাল হতে হবে। সুতরাং, এর শুরু এবং শেষের সময় জানার জন্য বিলম্বের সময়কাল জানাই যথেষ্ট।
  • বিরতিগুলো হলো পরপর অবস্থিত ও পরস্পর সম্পর্কহীন সময়কাল। উত্তরে প্রতিটি বিরতির শুরুর সময় ও সময়কাল উল্লেখ করা থাকে।
  • ভ্রমণ এবং অপেক্ষা হলো "পূর্বনির্ধারিত বাধা": এই রূপান্তরের সময় এগুলোকে একাধিকবার থামানো যেতে পারে। ক্লায়েন্টরা ধরে নিতে পারেন যে ভ্রমণ "যত তাড়াতাড়ি সম্ভব" সম্পন্ন হয় এবং বাকি সময়টুকু "অপেক্ষা" দ্বারা পূর্ণ থাকে।

একটি (জটিল) উদাহরণ:

                               TRANSITION[i]
--++-----+-----------------------------------------------------------++-->
  ||     |       |           |       |           |         |         ||
  ||  T  |   B   |     T     |       |     B     |         |    D    ||
  ||  r  |   r   |     r     |   W   |     r     |    W    |    e    ||
  ||  a  |   e   |     a     |   a   |     e     |    a    |    l    ||
  ||  v  |   a   |     v     |   i   |     a     |    i    |    a    ||
  ||  e  |   k   |     e     |   t   |     k     |    t    |    y    ||
  ||  l  |       |     l     |       |           |         |         ||
  ||     |       |           |       |           |         |         ||
--++-----------------------------------------------------------------++-->
JSON উপস্থাপনা
{
  "vehicleIndex": integer,
  "vehicleLabel": string,
  "vehicleStartTime": string,
  "vehicleEndTime": string,
  "visits": [
    {
      object (Visit)
    }
  ],
  "transitions": [
    {
      object (Transition)
    }
  ],
  "hasTrafficInfeasibilities": boolean,
  "routePolyline": {
    object (EncodedPolyline)
  },
  "breaks": [
    {
      object (Break)
    }
  ],
  "metrics": {
    object (AggregatedMetrics)
  },
  "vehicleFullness": {
    object (VehicleFullness)
  },
  "routeCosts": {
    string: number,
    ...
  },
  "routeTotalCost": number
}
ক্ষেত্র
vehicleIndex

integer

রুটটি সম্পাদনকারী যানবাহন, যা উৎস ShipmentModel এ তার সূচক দ্বারা চিহ্নিত।

vehicleLabel

string

এই রুটে চলাচলকারী যানবাহনের লেবেল, যা নির্দিষ্ট করা থাকলে ShipmentModel.vehicles(vehicleIndex).label এর সমান হবে।

vehicleStartTime

string ( Timestamp format)

যে সময়ে যানবাহনটি তার যাত্রা শুরু করে।

RFC 3339 ব্যবহার করা হয়, যেখানে তৈরি হওয়া আউটপুট সর্বদা Z-নরম্যালাইজড হবে এবং এতে ০, ৩, ৬ বা ৯টি ভগ্নাংশীয় অঙ্ক ব্যবহৃত হবে। "Z" ছাড়াও অন্যান্য অফসেটও গ্রহণ করা হয়। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

vehicleEndTime

string ( Timestamp format)

যে সময়ে যানবাহনটি তার পথচলা শেষ করে।

RFC 3339 ব্যবহার করা হয়, যেখানে তৈরি হওয়া আউটপুট সর্বদা Z-নরম্যালাইজড হবে এবং এতে ০, ৩, ৬ বা ৯টি ভগ্নাংশীয় অঙ্ক ব্যবহৃত হবে। "Z" ছাড়াও অন্যান্য অফসেটও গ্রহণ করা হয়। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

visits[]

object ( Visit )

একটি রুটের প্রতিনিধিত্বকারী পরিদর্শনের ক্রমিক অনুক্রম। visits[i] হলো রুটের i-তম পরিদর্শন। যদি এই ক্ষেত্রটি খালি থাকে, তবে যানবাহনটিকে অব্যবহৃত বলে গণ্য করা হয়।

transitions[]

object ( Transition )

রুটটির ট্রানজিশনগুলোর ক্রমিক তালিকা।

hasTrafficInfeasibilities

boolean

যখন OptimizeToursRequest.consider_road_traffic কে 'true' সেট করা হয়, তখন এই ফিল্ডটি নির্দেশ করে যে রুটের সময়সূচীর অসঙ্গতিগুলো ট্র্যাফিক-ভিত্তিক ভ্রমণকালের অনুমানের মাধ্যমে পূর্বাভাস করা হয়। ভিজিট এবং যানবাহনের নির্ধারিত সময়সীমা পূরণ করার পরেও, ট্র্যাফিক-সমন্বিত ভ্রমণ সম্পন্ন করার জন্য অপর্যাপ্ত সময়, বিলম্ব, এবং ভিজিটগুলোর মধ্যে, প্রথম ভিজিটের আগে, বা শেষ ভিজিটের পরে বিরতি থাকতে পারে। উদাহরণস্বরূপ,

  startTime(previous_visit) + duration(previous_visit) +
  travelDuration(previous_visit, next_visit) > startTime(next_visit)

যানজটের কারণে আনুমানিক ভ্রমণ সময় travelDuration(previous_visit, next_visit) বেড়ে যাওয়ায়, next_visit-এ পৌঁছানো সম্ভবত তার বর্তমান সময়সীমার চেয়ে দেরিতে হবে। এছাড়াও, ভ্রমণ সময়ের আনুমানিক বৃদ্ধি এবং ভিজিট বা বিরতির সময়সীমার সীমাবদ্ধতার কারণে, একটি বিরতি কোনো ভিজিটের সাথে মিলে যেতে পারে।

routePolyline

object ( EncodedPolyline )

রুটের এনকোডেড পলিলাইন উপস্থাপনা। এই ফিল্ডটি শুধুমাত্র তখনই পূরণ করা হয় যখন OptimizeToursRequest.populate_polylines মান true সেট করা থাকে।

breaks[]

object ( Break )

এই রুটে চলাচলকারী যানবাহনটির জন্য নির্ধারিত বিরতি। breaks ক্রমটি সময়ের ব্যবধানকে নির্দেশ করে, যার প্রতিটি সংশ্লিষ্ট startTime থেকে শুরু হয়ে duration সেকেন্ড পর্যন্ত স্থায়ী হয়।

metrics

object ( AggregatedMetrics )

এই রুটের জন্য সময়কাল, দূরত্ব এবং লোড মেট্রিক্স। প্রসঙ্গের উপর নির্ভর করে, AggregatedMetrics এর ফিল্ডগুলি সমস্ত ShipmentRoute.transitions বা ShipmentRoute.visits উপর যোগ করা হয়।

vehicleFullness

object ( VehicleFullness )

নির্ধারিত মেট্রিকগুলো তাদের নিজ নিজ গাড়ির সীমার কতটা কাছাকাছি, তা গণনা করার জন্য VehicleFullness ফিল্ডটি ব্যবহৃত হয়। এর ফিল্ডগুলো হলো একটি নির্ধারিত মেট্রিক ফিল্ড (যেমন AggregatedMetrics.travel_distance_meters ) এবং সংশ্লিষ্ট গাড়ির সীমার (যেমন Vehicle.route_distance_limit ) মধ্যকার অনুপাত।

পরীক্ষামূলক: ভবিষ্যতে এই ক্ষেত্রের আচরণ বা অস্তিত্ব পরিবর্তিত হতে পারে।

routeCosts

map (key: string, value: number)

রুটের খরচ, যা খরচ-সম্পর্কিত অনুরোধ ফিল্ড অনুসারে বিভক্ত। কী-গুলো হলো প্রোটো পাথ, যা ইনপুট OptimizeToursRequest-এর সাথে সম্পর্কিত, যেমন "model.shipments.pickups.cost", এবং ভ্যালু-গুলো হলো সংশ্লিষ্ট কস্ট ফিল্ড দ্বারা উৎপন্ন মোট খরচ, যা পুরো রুট জুড়ে একত্রিত করা হয়েছে। অন্য কথায়, costs["model.shipments.pickups.cost"] হলো রুট জুড়ে সমস্ত পিকআপ খরচের সমষ্টি। মডেলে সংজ্ঞায়িত সমস্ত খরচ এখানে বিস্তারিতভাবে রিপোর্ট করা হয়েছে, TransitionAttributes-সম্পর্কিত খরচ ব্যতীত, যা ২০২২/০১ তারিখ থেকে শুধুমাত্র একত্রিতভাবে রিপোর্ট করা হয়।

routeTotalCost

number

রুটের মোট খরচ। কস্ট ম্যাপে থাকা সমস্ত খরচের সমষ্টি।

পরিদর্শন করুন

একটি রুট চলাকালীন সম্পাদিত পরিদর্শন। এই পরিদর্শনটি কোনো Shipment পিকআপ বা ডেলিভারিকে বোঝায়।

JSON উপস্থাপনা
{
  "shipmentIndex": integer,
  "isPickup": boolean,
  "visitRequestIndex": integer,
  "startTime": string,
  "loadDemands": {
    string: {
      object (Load)
    },
    ...
  },
  "detour": string,
  "shipmentLabel": string,
  "visitLabel": string,
  "visitType": enum (VisitType),
  "injectedSolutionLocationToken": integer
}
ক্ষেত্র
shipmentIndex

integer

উৎস ShipmentModel এর shipments ফিল্ডের সূচক।

isPickup

boolean

যদি সত্য হয়, তবে এই পরিদর্শনটি একটি Shipment সংগ্রহের সাথে সঙ্গতিপূর্ণ। অন্যথায়, এটি একটি বিতরণের সাথে সঙ্গতিপূর্ণ।

visitRequestIndex

integer

Shipment পিকআপ অথবা ডেলিভারি ফিল্ডে থাকা VisitRequest ইন্ডেক্স ( isPickup দেখুন)।

startTime

string ( Timestamp format)

পরিদর্শন শুরুর সময়। উল্লেখ্য যে, যানবাহনটি পরিদর্শনের স্থানে এর আগেও পৌঁছাতে পারে। সময়গুলো ShipmentModel সাথে সামঞ্জস্যপূর্ণ।

RFC 3339 ব্যবহার করা হয়, যেখানে তৈরি হওয়া আউটপুট সর্বদা Z-নরম্যালাইজড হবে এবং এতে ০, ৩, ৬ বা ৯টি ভগ্নাংশীয় অঙ্ক ব্যবহৃত হবে। "Z" ছাড়াও অন্যান্য অফসেটও গ্রহণ করা হয়। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

loadDemands

map (key: string, value: object ( Load ))

চালান এবং ভিজিট অনুরোধের loadDemands যোগফল হিসাবে মোট ভিজিট লোড চাহিদা। ভিজিটটি যদি একটি ডেলিভারি হয়, তবে মানগুলি ঋণাত্মক হয়। ট্রানজিশন লোডের ( Transition.loads ) মতো একই ধরণের চাহিদার প্রতিবেদন করা হয় (এই ক্ষেত্রটি দেখুন)।

detour

string ( Duration format)

পরিদর্শনের আগে পথে পরিদর্শন করা চালান এবং নির্দিষ্ট সময়সীমার কারণে সৃষ্ট সম্ভাব্য অপেক্ষার সময়ের জন্য অতিরিক্ত পথ পরিবর্তনজনিত সময়। যদি পরিদর্শনটি একটি ডেলিভারি হয়, তবে পথ পরিবর্তনজনিত সময় সংশ্লিষ্ট পিকআপ পরিদর্শন থেকে গণনা করা হয় এবং তা নিম্নরূপ:

startTime(delivery) - startTime(pickup)
- (duration(pickup) + travel duration from the pickup location
to the delivery location).

অন্যথায়, এটি গাড়ির startLocation থেকে গণনা করা হয় এবং এর মান হলো:

startTime - vehicleStartTime - travel duration from
the vehicle's `startLocation` to the visit.

সেকেন্ডে পরিমাপকৃত সময়কাল, যা সর্বোচ্চ নয়টি ভগ্নাংশ অঙ্ক পর্যন্ত হতে পারে এবং শেষে ' s ' থাকে। উদাহরণ: "3.5s"

shipmentLabel

string

Shipment উল্লেখিত থাকলে, সংশ্লিষ্ট Shipment.label -এর একটি অনুলিপি।

visitLabel

string

VisitRequest এ নির্দিষ্ট করা থাকলে, সংশ্লিষ্ট VisitRequest.label এর একটি অনুলিপি।

visitType

enum ( VisitType )

ঐচ্ছিক। পরিদর্শনের ধরণ নির্দিষ্ট করে। এটি Visit.is_pickup ফিল্ডটিকে অগ্রাহ্য করে।

injectedSolutionLocationToken

integer

পরিদর্শনের স্থান সম্পর্কিত তথ্য উপস্থাপনকারী একটি অস্বচ্ছ টোকেন।

এই ভিজিটের জন্য VisitRequest.avoid_u_turns true সেট করা হলে অথবা OptimizeToursRequest রিকোয়েস্টে ShipmentModel.avoid_u_turns true সেট করা হলে, রেজাল্ট রুটগুলোর ভিজিটগুলোতে এই ফিল্ডটি পূরণ করা হতে পারে।

পরীক্ষামূলক: আরও বিস্তারিত জানতে https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request দেখুন।

পরিদর্শনের ধরণ

এটি নির্দেশ করে যে ভিজিটটি একটি পিকআপ, ডেলিভারি, নাকি কোনো Stop ভিজিট। Stop ভিজিট শুধুমাত্র তখনই ব্যবহৃত হয় যখন মাল্টিমোডাল অপটিমাইজেশন সক্রিয় থাকে।

এনাম
VISIT_TYPE_UNSPECIFIED অনির্দিষ্ট পরিদর্শনের ধরণ।
PICKUP_SHIPMENT এই পরিদর্শনের মাধ্যমে পণ্য চালান সংগ্রহ করা হয়।
DELIVER_SHIPMENT পরিদর্শন বলতে চালান সরবরাহকে বোঝায়।

রূপান্তর

রুটের দুটি ইভেন্টের মধ্যে ট্রানজিশন। ShipmentRoute এর বিবরণ দেখুন।

যদি যানবাহনটির কোনো startLocation এবং/অথবা endLocation না থাকে, তাহলে সংশ্লিষ্ট ভ্রমণের মেট্রিক্স ০ হবে।

JSON উপস্থাপনা
{
  "travelDuration": string,
  "travelDistanceMeters": number,
  "trafficInfoUnavailable": boolean,
  "delayDuration": string,
  "breakDuration": string,
  "waitDuration": string,
  "totalDuration": string,
  "startTime": string,
  "routePolyline": {
    object (EncodedPolyline)
  },
  "routeToken": string,
  "vehicleLoads": {
    string: {
      object (VehicleLoad)
    },
    ...
  }
}
ক্ষেত্র
travelDuration

string ( Duration format)

এই পরিবর্তনকালীন ভ্রমণের সময়কাল।

সেকেন্ডে পরিমাপকৃত সময়কাল, যা সর্বোচ্চ নয়টি ভগ্নাংশ অঙ্ক পর্যন্ত হতে পারে এবং শেষে ' s ' থাকে। উদাহরণ: "3.5s"

travelDistanceMeters

number

রূপান্তরের সময় অতিক্রান্ত দূরত্ব।

trafficInfoUnavailable

boolean

যখন OptimizeToursRequest.consider_road_traffic এর মাধ্যমে ট্র্যাফিকের জন্য অনুরোধ করা হয় এবং কোনো Transition জন্য ট্র্যাফিকের তথ্য সংগ্রহ করা যায় না, তখন এই বুলিয়ানটির মান 'true' সেট করা হয়। এটি অস্থায়ী (রিয়েলটাইম ট্র্যাফিক সার্ভারে বিরল কোনো সমস্যা) অথবা স্থায়ী (এই অবস্থানের জন্য কোনো ডেটা নেই) হতে পারে।

delayDuration

string ( Duration format)

এই ট্রানজিশনে প্রয়োগ করা বিলম্বের সময়কালগুলোর সমষ্টি। যদি কোনো বিলম্ব থাকে, তবে তা পরবর্তী ইভেন্টের (ভিজিট বা গাড়ির শেষ) ঠিক delayDuration সেকেন্ড আগে শুরু হয়। TransitionAttributes.delay দেখুন।

সেকেন্ডে পরিমাপকৃত সময়কাল, যা সর্বোচ্চ নয়টি ভগ্নাংশ অঙ্ক পর্যন্ত হতে পারে এবং শেষে ' s ' থাকে। উদাহরণ: "3.5s"

breakDuration

string ( Duration format)

এই ট্রানজিশনের সময় ঘটা বিরতিগুলোর (যদি থাকে) মোট সময়কাল। প্রতিটি বিরতির শুরুর সময় এবং সময়কাল সম্পর্কিত বিস্তারিত তথ্য ShipmentRoute.breaks ফাইলে সংরক্ষিত থাকে।

সেকেন্ডে পরিমাপকৃত সময়কাল, যা সর্বোচ্চ নয়টি ভগ্নাংশ অঙ্ক পর্যন্ত হতে পারে এবং শেষে ' s ' থাকে। উদাহরণ: "3.5s"

waitDuration

string ( Duration format)

এই রূপান্তরের সময় অপেক্ষার সময়। অপেক্ষার সময়কাল বলতে নিষ্ক্রিয় সময়কে বোঝায় এবং এর মধ্যে বিরতির সময় অন্তর্ভুক্ত নয়। আরও মনে রাখবেন যে এই অপেক্ষার সময়টি কয়েকটি বিচ্ছিন্ন বিরতিতে বিভক্ত হতে পারে।

সেকেন্ডে পরিমাপকৃত সময়কাল, যা সর্বোচ্চ নয়টি ভগ্নাংশ অঙ্ক পর্যন্ত হতে পারে এবং শেষে ' s ' থাকে। উদাহরণ: "3.5s"

totalDuration

string ( Duration format)

রূপান্তরের মোট সময়কাল, যা সুবিধার জন্য প্রদান করা হলো:

  • পরবর্তী পরিদর্শনের startTime (অথবা vehicleEndTime যদি এটি শেষ ট্রানজিশন হয়) - এই ট্রানজিশনের startTime ;
  • যদি ShipmentRoute.has_traffic_infeasibilities মিথ্যা হয়, তাহলে অতিরিক্তভাবে নিম্নলিখিতটি প্রযোজ্য হবে: `totalDuration = travelDuration + delayDuration`
  • `breakDuration + waitDuration`।

সেকেন্ডে পরিমাপকৃত সময়কাল, যা সর্বোচ্চ নয়টি ভগ্নাংশ অঙ্ক পর্যন্ত হতে পারে এবং শেষে ' s ' থাকে। উদাহরণ: "3.5s"

startTime

string ( Timestamp format)

এই রূপান্তরের শুরুর সময়।

RFC 3339 ব্যবহার করা হয়, যেখানে তৈরি হওয়া আউটপুট সর্বদা Z-নরম্যালাইজড হবে এবং এতে ০, ৩, ৬ বা ৯টি ভগ্নাংশীয় অঙ্ক ব্যবহৃত হবে। "Z" ছাড়াও অন্যান্য অফসেটও গ্রহণ করা হয়। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

routePolyline

object ( EncodedPolyline )

ট্রানজিশনের সময় অনুসরণ করা পথের এনকোডেড পলিলাইন উপস্থাপনা। এই ফিল্ডটি শুধুমাত্র তখনই পূরণ করা হয় যখন populateTransitionPolylines মান `true` সেট করা থাকে।

routeToken

string

শুধুমাত্র আউটপুট। এটি একটি অস্বচ্ছ টোকেন যা নেভিগেশনের সময় রুট পুনর্গঠন করতে এবং রুট পরিবর্তনের ক্ষেত্রে, রুট তৈরির সময়কার মূল উদ্দেশ্যকে সম্মান জানাতে নেভিগেশন SDK- তে পাঠানো যেতে পারে। এই টোকেনটিকে একটি অস্বচ্ছ ব্লব হিসেবে বিবেচনা করুন। বিভিন্ন রিকোয়েস্টের মধ্যে এর মান তুলনা করবেন না, কারণ সার্ভিসটি হুবহু একই রুট ফেরত দিলেও এর মান পরিবর্তিত হতে পারে। এই ফিল্ডটি শুধুমাত্র তখনই পূরণ করা হয় যখন populateTransitionPolylines মান `true` সেট করা থাকে।

vehicleLoads

map (key: string, value: object ( VehicleLoad ))

এই স্থানান্তরের সময় যানবাহনের লোড, প্রতিটি ধরণের জন্য যা হয় এই যানবাহনের Vehicle.load_limits এ প্রদর্শিত হয়, অথবা এই রুটে সম্পাদিত কোনো চালানে যেগুলোর Shipment.load_demands শূন্য নয়।

প্রথম ট্রানজিশনের সময়কার লোডগুলোই হলো যানবাহন রুটের প্রারম্ভিক লোড। এরপর, প্রতিটি ভিজিটের পরে, ভিজিটটি পিকআপ ছিল নাকি ডেলিভারি ছিল তার উপর নির্ভর করে, পরবর্তী ট্রানজিশনের লোড পাওয়ার জন্য সেই ভিজিটের loadDemands যোগ বা বিয়োগ করা হয়।

এনকোডেডপলিলাইন

একটি পলিলাইনের এনকোডেড উপস্থাপনা। পলিলাইন এনকোডিং সম্পর্কে আরও তথ্য এখানে পাওয়া যাবে: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding

JSON উপস্থাপনা
{
  "points": string
}
ক্ষেত্র
points

string

পলিলাইনের এনকোড করা পয়েন্টগুলো উপস্থাপনকারী স্ট্রিং।

বিরতি

একটি বিরতি কার্যকর হওয়ার তথ্য।

JSON উপস্থাপনা
{
  "startTime": string,
  "duration": string
}
ক্ষেত্র
startTime

string ( Timestamp format)

বিরতির শুরুর সময়।

RFC 3339 ব্যবহার করা হয়, যেখানে তৈরি হওয়া আউটপুট সর্বদা Z-নরম্যালাইজড হবে এবং এতে ০, ৩, ৬ বা ৯টি ভগ্নাংশীয় অঙ্ক ব্যবহৃত হবে। "Z" ছাড়াও অন্যান্য অফসেটও গ্রহণ করা হয়। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

duration

string ( Duration format)

বিরতির সময়কাল।

সেকেন্ডে পরিমাপকৃত সময়কাল, যা সর্বোচ্চ নয়টি ভগ্নাংশ অঙ্ক পর্যন্ত হতে পারে এবং শেষে ' s ' থাকে। উদাহরণ: "3.5s"

যানবাহন পূর্ণতা

VehicleFullness হলো একটি মেট্রিক যা গণনা করে একটি যানবাহন কতটা পূর্ণ। প্রতিটি VehicleFullness ফিল্ডের মান ০ থেকে ১-এর মধ্যে থাকে, যা একটি নির্দিষ্ট মেট্রিক ফিল্ড (যেমন AggregatedMetrics.travel_distance_meters ) এবং এর সম্পর্কিত যানবাহনের সীমার (যেমন Vehicle.route_distance_limit ) অনুপাত হিসাবে গণনা করা হয়, যদি সেই সীমাটি বিদ্যমান থাকে। অন্যথায়, পূর্ণতার অনুপাতটি অনির্ধারিত থাকে। যদি সীমাটি ০ হয়, তবে ফিল্ডটির মান ১ নির্ধারণ করা হয়। দ্রষ্টব্য: যখন কোনো রুটে যানজটের কারণে চলাচল করা অসম্ভব হয়ে পড়ে, তখন কিছু পূর্ণতার অনুপাত ১.০ অতিক্রম করতে পারে, যেমন যানবাহনটি তার দূরত্বের সীমা অতিক্রম করতে পারে। এই ক্ষেত্রে, আমরা পূর্ণতার মান ১.০-এ সীমাবদ্ধ করে দিই।

JSON উপস্থাপনা
{
  "maxFullness": number,
  "distance": number,
  "travelDuration": number,
  "activeDuration": number,
  "maxLoad": number,
  "activeSpan": number
}
ক্ষেত্র
maxFullness

number

এই বার্তার অন্য সব ক্ষেত্রের সর্বোচ্চ মান।

distance

number

AggregatedMetrics.travel_distance_meters এবং Vehicle.route_distance_limit এর মধ্যকার অনুপাত। যদি Vehicle.route_distance_limit সেট করা না থাকে, তাহলে এই ফিল্ডটি সেট করা থাকবে না।

travelDuration

number

[AggregatedMetrics.travel_duration_seconds][] এবং Vehicle.travel_duration_limit এর মধ্যকার অনুপাত। যদি Vehicle.travel_duration_limit সেট করা না থাকে, তাহলে এই ফিল্ডটি সেট করা থাকবে না।

activeDuration

number

[AggregatedMetrics.total_duration_seconds][] এবং Vehicle.route_duration_limit এর মধ্যকার অনুপাত। যদি Vehicle.route_duration_limit সেট করা না থাকে, তাহলে এই ফিল্ডটি সেট করা থাকবে না।

maxLoad

number

সকল প্রকারের [AggregatedMetrics.max_load][] এবং তাদের নিজ নিজ Vehicle.load_limits এর মধ্যে সর্বোচ্চ অনুপাত। যদি সমস্ত Vehicle.load_limits ফিল্ড আনসেট করা থাকে, তাহলে এই ফিল্ডটিও আনসেট থাকবে।

activeSpan

number

একটি নির্দিষ্ট গাড়ির জন্য অনুপাতটি হলো (vehicleEndTime - vehicleStartTime) / (latestVehicleEndTime - earliestVehicleStartTime)। যদি হরটি উপস্থিত না থাকে, তবে এর পরিবর্তে ( ShipmentModel.global_end_time - ShipmentModel.global_start_time ) ব্যবহৃত হয়।