API – Rekomendacje
Łączenie się z backendem aplikacji
Aby połączyć się z backendem aplikacji, należy wprowadzić token.
URL: https://api.goodloading.com/api/external/calculation/recommendation
POST
Request
Request Headers
| Nazwa | Wartość | Wymagane | Opis |
|---|---|---|---|
| Authorization | Bearer <token> | Tak | Klucz do autoryzacji |
Request Body
| Nazwa | Wartość | Wymagane | Opis |
|---|---|---|---|
| name | string | Nie | Nazwa projektu |
| note | string | Nie | Opis projektu |
| loads | array of Loads | Tak | Tablica z ładunkami |
| loadingSpaces | array of Loading Spaces | Nie | Tablica z przestrzeniami ładunkowymi |
| options | json | Tak | Opcje algorytmu przetwarzania |
| options.allowOverweight | boolean | Nie | Ustawienie wartości na true spowoduje, że ładunki będą ustawiane w przestrzeni ładunkowej jeżeli waga przekroczy dopuszczalną ładowność. Domyślna wartość: false. |
| options.unit | string | Nie | Jednostki wskazanych wymiarów. Można ustawić jedną z dwóch wartości: – „cm” [Domyślne] – „lb” |
| options.newAlgorithm | boolean | Nie | Ustawienie wartości true powoduje użycie nowego algorytmu. Wartość domyślna: true. |
| options.loadingOrder | string | Nie | Wartości: “default” : na podstawie kolejności ładunków “weight” : na podstawie wagi ładunków “volume” : na podstawie objętości ładunków “priority” : na podstawie priorytetyzacji ładunków |
| options.arrangeOptimally | boolean | Nie | Włączenie funkcji „układaj optymalnie” spowoduje, że algorytm będzie szukał dla ładunków ułożenia z zachowaniem jak największej wolnej przestrzeni, bez względu na kolejność ich dodania. Domyślna wartość: false. |
| options.includeSavedLoadingSpaces | boolean | Nie | Dołącz zapisane na koncie administratora przestrzenie ładunkowe aby mogły uczestniczyć w rekomendacji. Wartość domyślna: false. |
Przykłady – pojazdy
Przykład 1 – dane o przestrzeniach pobierane z Requesta – 1 przestrzeń
Ustawienie parametru w opcjach przetwarzania:
“options.includeSavedLoadingSpaces”: false
Request
{
"loads": [
{
"id": 12,
"quantity": 222,
"name": "bananas",
"length": 90,
"width": 60,
"height": 120,
"weight": 100,
"stacking": true,
"allowToRotate": true,
"color": "#42cfa2"
},
{
"id": 2,
"quantity": 1,
"name": "oranges",
"length": 120,
"width": 110,
"height": 155,
"weight": 15,
"stacking": 2,
"allowToRotate": true,
"color": "#f542dd"
}
],
"loadingSpaces": [
{
"name": "Solo truck 15 EP",
"parts": [
{
"length": 620,
"width": 245,
"height": 240,
"limit": 5000,
"axis": [
{
"distanceFromSpaceFront": -100,
"emptySpaceLoad": 800,
"maxLoad": 10000
},
{
"distanceFromSpaceFront": 580,
"emptySpaceLoad": 800,
"maxLoad": 10000
}
]
}
],
"type": "vehicle"
}
],
"options": {
"allowOverweight": true,
"unit": "cm",
"newAlgorithm": true,
"multiStops": false,
"loadingOrder": "weight",
"includeSavedLoadingSpaces": false,
"arrangeOptimally": true
}
}
Wizualizacja rekomendacji
Algorytm rozłożył ładunek w 5 przestrzeniach ładunkowych Solo truck 15 EP

Rys. przedstawia ułożenia ładunków w przestrzeniach nr 1-4

Rys. przedstawia ułożenia ładunków w przestrzeni nr 5
Przykład 2 – dane o przestrzeniach pobierane z Requesta – wiele przestrzeni
Ustawienie parametru w opcjach przetwarzania:
“options.includeSavedLoadingSpaces”: false
Request
{
"loads": [
{
"quantity": 20,
"name": "load 1",
"length": 50,
"width": 100,
"height": 50,
"weight": 50
},
{
"quantity": 60,
"name": "load 2",
"length": 100,
"width": 50,
"height": 100,
"weight": 150
},
{
"quantity": 28,
"name": "load 3",
"length": 120,
"width": 80,
"height": 100,
"weight": 100
}
],
"loadingSpaces": [
{
"name": "Bus 8 EP",
"parts": [
{
"length": 420,
"width": 220,
"height": 220,
"limit": 1500
}
]
},
{
"name": "Solówka 10 EP",
"parts": [
{
"length": 400.8,
"width": 241.2,
"height": 280,
"limit": 1050
}
]
},
{
"name": "Solówka 20 EP",
"parts": [
{
"length": 820,
"width": 245,
"height": 240,
"limit": 8000
}
]
}
],
"options": {
"includeSavedLoadingSpaces": false
}
}
Wizualizacja rekomendacji
Algorytm rozłożył ładunek w 2 przestrzeniach ładunkowych Solówka 20 EP EP
Rys. przedstawia ułożenia ładunków w przestrzeni nr 1

Rys. przedstawia ułożenia ładunków w przestrzeni nr 2

Przykład 3 – dane o przestrzeniach ładunkowych pobierane z konta w aplikacji web
Ustawienie parametru w opcjach przetwarzania:
“options.includeSavedLoadingSpaces”: true
Algorytm pobiera z konta użytkownika, następujące przestrzenie ładunkowe

Request
{
"name": "projekt 1",
"note": "opis projektu",
"loads": [
{
"id": 12,
"quantity": 222,
"name": "bananas",
"length": 90,
"width": 60,
"height": 120,
"weight": 100,
"stacking": true,
"allowToRotate": true,
"color": "#42cfa2"
},
{
"id": 2,
"quantity": 1,
"name": "oranges",
"length": 120,
"width": 110,
"height": 155,
"weight": 15,
"stacking": 2,
"allowToRotate": true,
"color": "#f542dd"
}
],
"loadingSpaces": [
{
"name": "Solo truck 15 EP",
"parts": [
{
"length": 620,
"width": 245,
"height": 240,
"limit": 5000,
"axis": [
{
"distanceFromSpaceFront": -200,
"emptySpaceLoad": 800,
"maxLoad": 10000
},
{
"distanceFromSpaceFront": 580,
"emptySpaceLoad": 800,
"maxLoad": 10000
}
]
}
],
"type": "vehicle"
}
],
"options": {
"allowOverweight": true,
"unit": "cm",
"newAlgorithm": true,
"multiStops": false,
"loadingOrder": "weight",
"includeSavedLoadingSpaces": true,
"arrangeOptimally": true
}
}
Wizualizacja rekomendacji
Algorytm rozłożył ładunek w 2 przestrzeniach ładunkowych Naczepa standard 33 EP

Rys. przedstawia ułożenia ładunków w przestrzeni nr 1

Rys. przedstawia ułożenia ładunków w przestrzeni nr 2
Przykład 4 – wyłączenie z listy przestrzeni ładunkowych na koncie, przestrzeni Naczepa standard 33 EP, przy tym samym Request, co w Przykładzie 3

Wizualizacja rekomendacji
Algorytm rozłożył ładunek w 2 przestrzeniach ładunkowych Naczepa mega 33 EP

Rys. przedstawia ułożenia ładunków w przestrzeni nr 1

Rys. przedstawia ułożenia ładunków w przestrzeni nr 2
Przykład 5- wyłączenie kilku przestrzeni ładunkowych, przy tym samym Request, co w Przykładzie 3 i 4

Wizualizacja rekomendacji
Algorytm rozłożył ładunek w 3 przestrzeniach ładunkowych Solówka 20 EP oraz w 1 przestrzeni Bus 8 EP

Rys. przedstawia ułożenia ładunków w przestrzeniach nr 1-3

Rys. przedstawia ułożenia ładunków w przestrzeni nr 4
Przykłady – kontenery morskie
Przykład 1 – dane o przestrzeniach pobierane z Requesta z 1 przestrzenią ładunkową.
Ustawienie parametru w opcjach przetwarzania:
“options.includeSavedLoadingSpaces”: false
Request
{
"name": "projekt 1",
"note": "opis projektu",
"loads": [
{
"id": 12,
"quantity": 222,
"name": "bananas",
"length": 90,
"width": 60,
"height": 120,
"weight": 100,
"stacking": true,
"allowToRotate": true,
"color": "#42cfa2"
},
{
"id": 2,
"quantity": 1,
"name": "oranges",
"length": 120,
"width": 110,
"height": 155,
"weight": 15,
"stacking": 2,
"allowToRotate": true,
"color": "#f542dd"
}
],
"loadingSpaces": [
{
"type": "sea",
"name": "sea",
"parts": [
{
"length": 400,
"width": 200,
"height": 200,
"limit": 24000
}
]
}
],
"options": {
"allowOverweight": true,
"unit": "cm",
"newAlgorithm": true,
"multiStops": false,
"loadingOrder": "weight",
"includeSavedLoadingSpaces": false,
"arrangeOptimally": true
}
}
Wizualizacja rekomendacji
Algorytm rozłożył ładunek w 18 jednakowych kontenerach morskich, zdefiniowanych w Request

Rys. przedstawia ułożenia ładunków w przestrzeni nr 1

Rys. przedstawia ułożenia ładunków w przestrzeniach nr 2-17

Rys. przedstawia ułożenia ładunków w przestrzeni nr 18
Przykład 2 – dane o przestrzeniach ładunkowych pobierane z konta w aplikacji web
Ustawienie parametru w opcjach przetwarzania:
“options.includeSavedLoadingSpaces”: true
Algorytm pobiera z konta użytkownika, następujące przestrzenie ładunkowe

Request
{
"name": "projekt 1",
"note": "opis projektu",
"loads": [
{
"id": 12,
"quantity": 222,
"name": "bananas",
"length": 90,
"width": 60,
"height": 120,
"weight": 100,
"stacking": true,
"allowToRotate": true,
"color": "#42cfa2"
},
{
"id": 2,
"quantity": 1,
"name": "oranges",
"length": 120,
"width": 110,
"height": 155,
"weight": 15,
"stacking": 2,
"allowToRotate": true,
"color": "#f542dd"
}
],
"loadingSpaces": [
{
"type": "sea",
"name": "sea",
"parts": [
{
"length": 400,
"width": 200,
"height": 200,
"limit": 24000
}
]
}
],
"options": {
"allowOverweight": true,
"unit": "cm",
"newAlgorithm": true,
"multiStops": false,
"loadingOrder": "weight",
"includeSavedLoadingSpaces": true,
"arrangeOptimally": true
}
}
Wizualizacja rekomendacji
Algorytm rozłożył ładunek w 2 przestrzeniach ładunkowych

Rys. przedstawia ułożenia ładunków w przestrzeni nr 1

Rys. przedstawia ułożenia ładunków w przestrzeni nr 2