負載需求和限制

loadDemands 屬性是在 ShipmentModel.shipments.Shipment 下定義,而 loadLimits 屬性則是在 ShipmentModel.vehicles.Vehicle 下定義。

負載需求和限制是一種限制條件,可用於管理容量。這些限制條件會指定運送作業所需的容量和車輛的最大容量,讓您根據這些限制條件來最佳化路線指派。

負載需求和限制可支援下列目標:

  • 避免車輛超載。
  • 監控車輛載重量,瞭解在接送和運送貨物時的變化。
  • 限制車輛可造訪特定地點的次數。

負載需求和限制會在下列屬性中指定:

結構

如圖所示,負載需求和限制的結構如下:

屬性

本節將說明負載需求和限制的屬性,如下所示:

  • 負載類型:負載需求和限制之間的共用屬性。
  • LoadLoadLimit分別是負載需求和負載限制中出現的專屬屬性。

載入類型

負載類型是字串鍵,可識別運送要求的負載類型,以及車輛的負載限制。負載類型具有下列重要特性:

  • 使用者定義:負載類型是您定義的類型。載入類型沒有預先定義的系統變數。
  • 共用:負載類型是用於貨物和車輛之間的共用。也就是說,只有在負載類型相符的情況下,運送作業才會將車輛的容量用盡,如果車輛未針對特定類型指定任何負載限制,則可載運無限量的該類型負載。

代表載入類型的字串鍵會使用 通訊協定緩衝區對應類型語法。這些字串鍵不得為空值,否則可能會發生問題。命名負載類型時,建議使用可描述負載類型及其單位的 ID。例如:weightKgvolume_gallonspalletcountfrequencyDaily

LoadLoadLimit

LoadLoadLimit 物件包含特定屬性,可定義運送和車輛的容量需求,下表說明這些屬性:

物件 有子女 屬性 房源類型 屬性說明
Load loadDemands amount string (int64 格式) 定義指定類型中運送的容量需求。
LoadLimit loadLimits maxLoad string (int64 格式) 定義指定類型中車輛的最大載重量。

範例

以下範例顯示負載需求的結構,您可以將 loadDemands 類型設為字串,並將 amount 屬性設為 int64 格式的字串:

"loadDemands": {
  "MATCHING_LOAD_TYPE": {
    "amount": "YOUR_LOAD_AMOUNT"
  }
}

以下範例顯示負載限制最基本的結構,您可以將 loadLimits 類型設為字串,並將 maxLoad 屬性設為 int64 格式的字串:

"loadLimits": {
  "MATCHING_LOAD_TYPE": {
    "maxLoad": "YOUR_MAX_LOAD"
  }
}

立即試用

使用上述程式碼範例,建立虛構情境。在這個情境中,您有 10 公斤的貨物,以及可載運 100 公斤的車輛:

  1. loadDemands 範例中,將載入類型定義為 weightKg

    完成這項操作後,loadLimits 範例中的負載類型也會填入,並共用負載類型。請注意,loadDemandsloadLimits 的類型必須相符,才能讓運送作業使用車輛的限制。

  2. 在同一個 loadDemands 範例中,將 amount 屬性設為 10

    也就是說,貨物重量為 10 公斤。

  3. loadLimits 範例中,將 maxLoad 屬性設為 100

    也就是說,車輛最多可載 100 公斤。

請注意,沒有預先定義的類型組合。在本例中,您可以將公斤變更為磅,或將公斤變更為線性測量單位,而非重量。這項彈性功能可讓您根據特定需求調整負載需求和限制。

要求範例

以下範例顯示基本 optimizeTours 要求的結構,其中包含在運送中使用的 loadDemands,以及在車輛中使用的 loadLimits

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "endLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "costPerKilometer": 1.0,
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

請注意,一筆貨運可能有不同的裝載需求,而車輛可能有不同的裝載限制,因此您可以提供複雜的限制,以便在最佳化車隊路線時納入考量。