Przestrzenie ładunkowe
Rodzaje przestrzeni ładunkowych oraz możliwość wydzielania ich części
W Goodloading, mamy dostępnych kilka rodzajów przestrzeni ładunkowych, definiowane są one przez parametr “type”, który może przyjmować następujące wartości:
- “vehicle” – samochód (wartość domyślna)
- “sea” – kontener morski
- kontenery lotnicze (2 typy):
– “air x” – kontener z dwoma skosami
– “air y” – kontener z jednym skosem - “pallet” – paleta
W każdej przestrzeni ładunkowej można wydzielić max. 2 części, ma to zastosowanie m.in. przy załadunku zestawu, np. dla pojazdów lub kontenerów morskich Przykład 2: – Części w przestrzeniach ładunkowych.
Szczegółowy opis parametrów definiujących przestrzeń ładunkowa, został podany w rozdziale Dane przestrzeni ładunkowej (loadingSpaces)
Pojazdy
Układanie ładunków w przestrzeni “vehicle”
Zapytanie
{
"loads": [
{
"quantity": 18,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 200
},
{
"quantity": 19,
"name": "load 2",
"length": 100,
"width": 70,
"height": 80,
"weight": 160
},
{
"quantity": 20,
"name": "load 3",
"length": 100,
"width": 50,
"height": 80,
"weight": 50
}
],
"loadingSpaces": [
{
"type": "vehicle",
"quantity": 1,
"name": "Solowka 20 EP",
"parts": [
{
"length": 820,
"width": 245,
"height": 240,
"limit": 8000
}
]
}
],
"options": {
}
}
Rezultat

Palety
Układanie ładunków w przestrzeni “pallet”.
Bez uwzględniania wymiarów podstawy palety “baseHeight”
Zapytanie
{
"loads": [
{
"quantity": 12,
"name": "load 1",
"length": 40,
"width": 30,
"height": 40,
"weight": 50
},
{
"quantity": 4,
"name": "load 2",
"length": 35,
"width": 20,
"height": 50,
"weight": 60
}
],
"loadingSpaces": [
{
"type": "pallet",
"quantity": 1,
"name": "Pallet",
"parts": [
{
"length": 120,
"width": 80,
"height": 100,
"limit": 1500
}
]
}
],
"options": {
}
}
Rezultat

Z uwzględnieniem wymiarów podstawy palety “baseHeight”
Zapytanie
{
"loads": [
{
"quantity": 12,
"name": "load 1",
"length": 40,
"width": 30,
"height": 40,
"weight": 50
},
{
"quantity": 4,
"name": "load 2",
"length": 35,
"width": 20,
"height": 50,
"weight": 60
}
],
"loadingSpaces": [
{
"type": "pallet",
"quantity": 1,
"name": "Pallet",
"parts": [
{
"baseHeight": 15,
"length": 120,
"width": 80,
"height": 100,
"limit": 1500
}
]
}
],
"options": {
}
}
Rezultat

Kontenery morskie
Układanie ładunków w przestrzeni “sea”.
Zapytanie:
{
{
"loads": [
{
"quantity": 18,
"name": "load 1",
"length": 100,
"width": 80,
"height": 50,
"weight": 200
},
{
"quantity": 19,
"name": "load 2",
"length": 100,
"width": 70,
"height": 80,
"weight": 160
},
{
"quantity": 20,
"name": "load 3",
"length": 100,
"width": 50,
"height": 80,
"weight": 100
}
],
"loadingSpaces": [
{
"type": "sea",
"quantity": 1,
"name": "sea",
"parts": [
{
"length": 600,
"width": 244,
"height": 259,
"limit": 22000
}
]
}
],
"options": {
}
}
Rezultat

Kontenery lotnicze
Kontener lotniczy jednostronny “air y”.

Definicja kontenera, polega na zdefiniowaniu poniższych parametrów. Podano przykładowe wymiary dla kontenera typu LD2.
"parts": [
{
"length": 155,
"width": 153,
"height": 163,
"base": 119,
"heightD": 112,
"limit": 1150
}
],
gdzie podane wartości mają następujące odwzorowanie na rysunku:
- B – “base”
- A – “lenght”
- C – “hight
- D- “hightD”
Zapytanie:
{
"loads": [
{
"quantity": 2,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 100,
"stacking": true,
"alongFloor": true
},
{
"quantity": 2,
"name": "load 2",
"length": 50,
"width": 20,
"height": 50,
"weight": 400,
"stacking": true,
"alongFloor": true
},
{
"quantity": 2,
"name": "load 3",
"length": 100,
"width": 50,
"height": 100,
"weight": 500,
"stacking": true,
"alongFloor": true
}
],
"loadingSpaces": [
{
"type": "air y",
"quantity": 1,
"name": "zestaw",
"parts": [
{
"length": 155,
"width": 153,
"height": 163,
"base": 119,
"heightD": 112,
"limit": 1150
}
]
}
],
"options": {
}
}
Rezultat:

Kontener lotniczy dwustronny “air x”

Definicja kontenera, polega na zdefiniowaniu poniższych parametrów. Podano przykładowe wymiary dla kontenera typu LD3-45.
"parts": [
{
"length": 242,
"width": 153,
"height": 114,
"base": 156,
"heightD": 61,
"limit": 1045
}
],
gdzie podane wartości mają następujące odwzorowanie na rysunku:
- B – “base”
- A – “lenght”
- C – “hight
- D – “hightD”
Zapytanie:
{
"loads": [
{
"quantity": 2,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 100,
"stacking": true,
"alongFloor": true
},
{
"quantity": 2,
"name": "load 2",
"length": 50,
"width": 20,
"height": 50,
"weight": 400,
"stacking": true,
"alongFloor": true
},
{
"quantity": 2,
"name": "load 3",
"length": 100,
"width": 50,
"height": 100,
"weight": 500,
"stacking": true,
"alongFloor": true
}
],
"loadingSpaces": [
{
"type": "air x",
"quantity": 1,
"name": "zestaw",
"parts": [
{
"length": 242,
"width": 153,
"height": 114,
"base": 156,
"heightD": 61,
"limit": 1045
}
]
}
],
"options": {
}
}
Rezultat:

Części w przestrzeniach ładunkowych
Przestrzeń ładunkowa, może się składać max. z 2 części, dla typu przestrzeni vehicle, odpowiada to zestawowi.
Zapytanie
{
"loads": [
{
"quantity": 36,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 100
},
{
"quantity": 50,
"name": "load 2",
"length": 100,
"width": 70,
"height": 80,
"weight": 80
},
{
"quantity": 30,
"name": "load 3",
"length": 100,
"width": 50,
"height": 80,
"weight": 100
}
],
"loadingSpaces": [
{
"type": "vehicle",
"quantity": 1,
"name": "vehicle",
"parts": [
{
"length": 700,
"width": 240,
"height": 305,
"limit": 6000
},
{ "length": 700,
"width": 240,
"height": 305,
"limit": 6000
}
]
}
],
"options": {
}
Rezultat

Rodzaje załadunków
Mamy dostępne 4 rodzaje załadunków, ustawiane parametrem “loadingSide, który może przyjmować następujące wartości:
- „back” [domyślne]
- „top”
- „left”
- „right”
Parametr obowiązuje dla zdefiniowanej części przestrzeni ładunkowej “part”, tak więc dla każdej zdefiniowanej części może być ustawiony inaczej.
Na rysunkach, na żółto oznaczona jest płaszczyzna, przez którą ma być dokonywany załadunek.
Domyślny typ załadunku “back”
Zapytanie:
{
"loads": [
{
"quantity": 16,
"name": "load 1",
"color": "#71A34E",
"length": 120,
"width": 80,
"height": 100,
"weight": 50,
"stacking": true
},
{
"quantity": 18,
"name": "load 2",
"color": "#5B9BD5",
"length": 80,
"width": 60,
"height": 100,
"weight": 60,
"stacking": true
},
{
"quantity": 24,
"name": "load 3",
"color": "#FFC000",
"length": 100,
"width": 50,
"height": 100,
"weight": 80,
"stacking": true
}
],
"loadingSpaces": [
{
"quantity": 1,
"name": "Solowka 20 EP",
"parts": [
{
"length": 820,
"width": 245,
"height": 240,
"limit": 8000,
"loadingSide": "back"
}
]
}
],
"options": {
}
}
Rezultat:

Typ załadunku od góry “top”
Zapytanie:
{
"loads": [
{
"quantity": 16,
"name": "load 1",
"color": "#71A34E",
"length": 120,
"width": 80,
"height": 100,
"weight": 50,
"stacking": true
},
{
"quantity": 18,
"name": "load 2",
"color": "#5B9BD5",
"length": 80,
"width": 60,
"height": 100,
"weight": 60,
"stacking": true
},
{
"quantity": 24,
"name": "load 3",
"color": "#FFC000",
"length": 100,
"width": 50,
"height": 100,
"weight": 80,
"stacking": true
}
],
"loadingSpaces": [
{
"quantity": 1,
"name": "Solowka 20 EP",
"parts": [
{
"length": 820,
"width": 245,
"height": 240,
"limit": 8000,
"loadingSide": "top"
}
]
}
],
"options": {
}
}
Rezultat:

Typ załadunku od lewej strony “left”.
Zapytanie:
{
"loads": [
{
"quantity": 16,
"name": "load 1",
"color": "#71A34E",
"length": 120,
"width": 80,
"height": 100,
"weight": 50,
"stacking": true
},
{
"quantity": 18,
"name": "load 2",
"color": "#5B9BD5",
"length": 80,
"width": 60,
"height": 100,
"weight": 60,
"stacking": true
},
{
"quantity": 24,
"name": "load 3",
"color": "#FFC000",
"length": 100,
"width": 50,
"height": 100,
"weight": 80,
"stacking": true
}
],
"loadingSpaces": [
{
"quantity": 1,
"name": "Solowka 20 EP",
"parts": [
{
"length": 820,
"width": 245,
"height": 240,
"limit": 8000,
"loadingSide": "left"
}
]
}
],
"options": {
}
}
Rezultat:

Typ załadunku od prawej strony “right”.
Zapytanie:
{
"loads": [
{
"quantity": 16,
"name": "load 1",
"color": "#71A34E",
"length": 120,
"width": 80,
"height": 100,
"weight": 50,
"stacking": true
},
{
"quantity": 18,
"name": "load 2",
"color": "#5B9BD5",
"length": 80,
"width": 60,
"height": 100,
"weight": 60,
"stacking": true
},
{
"quantity": 24,
"name": "load 3",
"color": "#FFC000",
"length": 100,
"width": 50,
"height": 100,
"weight": 80,
"stacking": true
}
],
"loadingSpaces": [
{
"quantity": 1,
"name": "Solowka 20 EP",
"parts": [
{
"length": 820,
"width": 245,
"height": 240,
"limit": 8000,
"loadingSide": "right"
}
]
}
],
"options": {
}
}
Rezultat:

Dwie części z różnymi typami ładunków – załadunek zestawu
Obydwie części ładowane od tyłu
Zapytanie:
{
"loads": [
{
"quantity": 36,
"name": "load 1",
"color": "#71A34E",
"length": 120,
"width": 80,
"height": 100,
"weight": 100
},
{
"quantity": 50,
"name": "load 2",
"color": "#5B9BD5",
"length": 100,
"width": 70,
"height": 80,
"weight": 80
},
{
"quantity": 30,
"name": "load 3",
"color": "#FFC000",
"length": 100,
"width": 50,
"height": 80,
"weight": 100
}
],
"loadingSpaces": [
{
"type": "vehicle",
"quantity": 1,
"name": "vehicle",
"parts": [
{
"length": 700,
"width": 240,
"height": 305,
"limit": 6000,
"loadingSide": "back"
},
{ "length": 700,
"width": 240,
"height": 305,
"limit": 6000,
"loadingSide": "back"
}
]
}
],
"options": {
}
}
Rezultat:

Pierwsza część ładowana od lewej strony, a druga część ładowana od tyłu
Zapytanie:
{
"loads": [
{
"quantity": 36,
"name": "load 1",
"color": "#71A34E",
"length": 120,
"width": 80,
"height": 100,
"weight": 100
},
{
"quantity": 50,
"name": "load 2",
"color": "#5B9BD5",
"length": 100,
"width": 70,
"height": 80,
"weight": 80
},
{
"quantity": 30,
"name": "load 3",
"color": "#FFC000",
"length": 100,
"width": 50,
"height": 80,
"weight": 100
}
],
"loadingSpaces": [
{
"type": "vehicle",
"quantity": 1,
"name": "vehicle",
"parts": [
{
"length": 700,
"width": 240,
"height": 305,
"limit": 6000,
"loadingSide": "left"
},
{ "length": 700,
"width": 240,
"height": 305,
"limit": 6000,
"loadingSide": "back"
}
]
}
],
"options": {
}
}
Rezultat:

Dopuszczalna ładowność przestrzeni ładunkowej
Algorytm Goodloading,, pozwala na kontrolę wagi załadunku. Parametr przetwarzania “allowOverweight”, umożliwia sterowanie tym, czy podczas układania ładunków, można przekroczyć dopuszczalną ładowność przestrzeni ładunkowej, czy nie. Domyślna wartość “allowOverweight”: “false”, mówi, że waga ładunków nie może przekroczyć dopuszczalnej ładowności. Ustawienie wartości parametru na “true”, daje możliwość przekroczenia tej ładowności.i
Przykład 1 – Brak możliwości przekroczenia dopuszczalnej ładowności
Zapytanie:
{
"loads": [
{
"quantity": 18,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 200
},
{
"quantity": 19,
"name": "load 2",
"length": 100,
"width": 70,
"height": 80,
"weight": 160
},
{
"quantity": 20,
"name": "load 3",
"length": 100,
"width": 50,
"height": 80,
"weight": 100
}
],
"loadingSpaces": [
{
"quantity": 1,
"name": "Solowka 20 EP",
"parts": [
{
"length": 820,
"width": 245,
"height": 240,
"limit": 8000
}
]
}
],
"options": {
"allowOverweight": false
}
}
Rezultat:

Przykład 2 – Dozwolone jest przekroczenie dopuszczalnej ładowności
Zapytanie
{
"loads": [
{
"quantity": 18,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 200
},
{
"quantity": 19,
"name": "load 2",
"length": 100,
"width": 70,
"height": 80,
"weight": 160
},
{
"quantity": 20,
"name": "load 3",
"length": 100,
"width": 50,
"height": 80,
"weight": 100
}
],
"loadingSpaces": [
{
"quantity": 1,
"name": "Solowka 20 EP",
"parts": [
{
"length": 820,
"width": 245,
"height": 240,
"limit": 8000
}
]
}
],
"options": {
"allowOverweight": true
}
}
Rezultat

Naciski na osie
Algorytm Goodloading ma możliwość kontroli nacisku na osie pojazdu. W tym celu dla każdej z części przestrzeni ładunkowej należy zdefiniowac tablice z jej osiami. Taka tablica, jeżeli została dodana, musi zawierać dokładnie dwa albo trzy elementy (opisy zdefiniowanych osi) .
Przykład definiowania osi dla jednej części przestrzeni ładunkowej:
"axis": [
{
"distanceFromSpaceFront": -42,
"emptySpaceLoad": 2985,
"maxLoad": 5300
},
{
"distanceFromSpaceFront": 500,
"emptySpaceLoad": 1510,
"maxLoad": 10700
}
]
gdzie:
| distanceFromSpaceFront | number | Odległość osi od początku przestrzeni ładunkowej, wartość ujemna, gdy oś znajduje się pod kabiną kierowcy. |
|---|---|---|
| axiemptySpaceLoad | number | Obciążenie osi przy pustej przestrzeni ładunkowej. Wartość musi być liczbą większą lub równą 0. |
| maxLoad | number | Najwyższe dopuszczalne obciążenie osi. Wartość musi być liczbą większą lub równą 0. |
Schemat rozłożenia osi pojazdów
Poniżej przedstawiono przykładowe, poglądowe schematy dla różnych pojazdów.

W odpowiedzi na wysłane zapytanie, otrzymujemy odpowiedź (Response) z obciążeniem osi po załadunku towaru
"axis": [
{
"distanceFromSpaceFront": -42,
"emptySpaceLoad": 2985,
"maxLoad": 5300,
"addedLoad": 1428.04
},
{
"distanceFromSpaceFront": 500,
"emptySpaceLoad": 1510,
"maxLoad": 10700,
"addedLoad": 4371.96
}
]
gdzie parametr “addedLoad” wskazuje nacisk ustawionych ładunków na oś
Na wizualizacja wyniku przetwarzania, kolor wskazuje stopień obciążenia osi:
- kolor niebieski – obciążenie małe
- kolor czerwony – przeciążenie
- kolor pośredni, pomiędzy niebieskim a czerwonym – stopień w jakim oś jest obciążona (ale jeszcze nie jest przeciążona)
Dla zestawu możemy określić nacisk na osie dla każdej z części pojazdu, zarówno naczepy jak i przyczepy. Aby to zrobić, to dla każdej części pojazdu musimy zdefiniować tablice z parametrami poszczegolnych osi.
Przykład 1- Solówka
Zapytanie
{
"loads": [
{
"quantity": 18,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 100,
"stacking": true,
"alongFloor": true
},
{
"quantity": 20,
"name": "load 2",
"length": 50,
"width": 20,
"height": 50,
"weight": 400,
"stacking": true,
"alongFloor": true
},
{
"quantity": 11,
"name": "load 3",
"length": 100,
"width": 50,
"height": 100,
"weight": 500,
"stacking": true,
"alongFloor": true
}
],
"loadingSpaces": [
{
"type": "vehicle",
"quantity": 1,
"name": "vehicle",
"parts": [
{
"length": 700,
"width": 241.2,
"height": 280,
"limit": 10505,
"loadingSide": "left",
"axis": [
{
"distanceFromSpaceFront": -42,
"emptySpaceLoad": 2685,
"maxLoad": 5300
},
{
"distanceFromSpaceFront": 500,
"emptySpaceLoad": 1310,
"maxLoad": 10700
}
]
}
]
}
],
"options": {
"allowOverweight": true
}
}
Rezultat

Obciążenie osi po załadunku:
{
"distanceFromSpaceFront": -42,
"emptySpaceLoad": 2685,
"maxLoad": 5300,
"addedLoad": 2877.31
},
{
"distanceFromSpaceFront": 500,
"emptySpaceLoad": 1310,
"maxLoad": 10700,
"addedLoad": 12422.69
}
]
Przykład 2 – Zestaw
Zapytanie:
{
"loads": [
{
"quantity": 18,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 100,
"stacking": true,
"alongFloor": true
},
{
"quantity": 20,
"name": "load 2",
"length": 50,
"width": 20,
"height": 50,
"weight": 400,
"stacking": true,
"alongFloor": true
},
{
"quantity": 20,
"name": "load 3",
"length": 100,
"width": 50,
"height": 100,
"weight": 500,
"stacking": true,
"alongFloor": true
}
],
"loadingSpaces": [
{
"type": "vehicle",
"quantity": 1,
"name": "zestaw",
"parts": [
{
"length": 720,
"width": 200,
"height": 300,
"limit": 24000,
"loadingSide": "left",
"axis": [
{
"distanceFromSpaceFront": -100,
"emptySpaceLoad": 2685,
"maxLoad": 5300
},
{
"distanceFromSpaceFront": 550,
"emptySpaceLoad": 1310,
"maxLoad": 10700
}
]
},
{ "length": 720,
"width": 200,
"height": 300,
"limit": 24000,
"loadingSide": "back",
"axis": [
{
"distanceFromSpaceFront": 100,
"emptySpaceLoad": 2685,
"maxLoad": 5300
},
{
"distanceFromSpaceFront": 550,
"emptySpaceLoad": 1310,
"maxLoad": 10700
}
]
}
]
}
],
"options": {
}
}
Rezultat:

Obciążenie osi po załadunku:
"axis": [
{
"distanceFromSpaceFront": -100,
"emptySpaceLoad": 2685,
"maxLoad": 5300,
"addedLoad": 3726.15
},
{
"distanceFromSpaceFront": 550,
"emptySpaceLoad": 1310,
"maxLoad": 10700,
"addedLoad": 6073.85
}
]
"axis": [
{
"distanceFromSpaceFront": 100,
"emptySpaceLoad": 2685,
"maxLoad": 5300,
"addedLoad": 6666.67
},
{
"distanceFromSpaceFront": 550,
"emptySpaceLoad": 1310,
"maxLoad": 10700,
"addedLoad": 3333.33
}
]