Crea un messaggio di richiesta

Sviluppatori dello Spazio economico europeo (SEE)

Come descritto brevemente nella Panoramica dell'ottimizzazione del percorso, una richiesta di base è costituita da Modello, Spedizioni e Veicoli come entità richieste:

  • Model acquisisce le impostazioni e i vincoli per l'intera richiesta, inclusi sia Shipments che Vehicles.
  • Le spedizioni rappresentano attività o spedizioni effettive che includono il ritiro e la consegna VisitRequest. Le spedizioni hanno impostazioni e vincoli locali.
  • I veicoli rappresentano veicoli, conducenti o personale. I veicoli hanno anche impostazioni e vincoli locali.

Le proprietà di ogni entità descrivono una parte di un problema di ottimizzazione a un particolare livello di granularità. I vincoli a livello di modello vengono applicati a tutte le spedizioni e i veicoli, mentre i vincoli e le proprietà specificati per le spedizioni o i veicoli sono specifici per una singola spedizione o un singolo veicolo.

Per la documentazione completa su ogni tipo di messaggio, consulta la documentazione di riferimento per i messaggi ShipmentModel (REST, gRPC), Shipment (REST, gRPC) e Vehicle (REST, gRPC).

OptimizeToursRequest strutture

Alcune proprietà di uso comune del messaggio OptimizeToursRequest di primo livello (REST, gRPC) includono quanto segue:

  • searchMode indica se restituire la prima soluzione che soddisfa i vincoli specificati o trovare la migliore soluzione possibile entro una scadenza prestabilita.
  • considerRoadTraffic determina se il traffico in tempo reale viene utilizzato per il calcolo del percorso e della stima dell'orario di arrivo.
  • populateTransitionPolylines determina se le polilinee del percorso e i token del percorso vengono restituiti nella risposta.

Proprietà del modello

Alcune proprietà comunemente utilizzate del messaggio ShipmentModel (REST, gRPC) includono:

  • globalStartTime rappresenta l'ora di inizio più anticipata dei percorsi per tutti i veicoli e le spedizioni. Nessun veicolo può iniziare le prime transizioni e spedizioni prima di questo orario.
  • globalEndTime rappresenta l'ora di fine più recente dei percorsi di tutti i veicoli e delle spedizioni. Tutte le spedizioni e le transizioni assegnate devono essere completate prima di questo orario.

Proprietà della spedizione

Alcune proprietà comunemente utilizzate del messaggio Shipment (REST, gRPC) includono:

  • pickups[] e deliveries[] rappresentano i luoghi in cui è possibile ritirare o consegnare una spedizione. Le proprietà pickups[] e deliveries[] utilizzano entrambe il messaggio VisitRequest (REST, gRPC).
  • loadDemands rappresenta il carico necessario a un veicolo per completare una spedizione. La proprietà load_limits (REST, gRPC) dei veicoli rappresenta la quantità di carico che un veicolo può ospitare contemporaneamente. Scopri di più sul carico in Richieste e limiti di carico.
  • penalty_cost rappresenta il costo sostenuto se una spedizione viene saltata. Scopri di più sui costi in Parametri del modello di costi.

Proprietà del veicolo

Alcune proprietà comunemente utilizzate del messaggio Vehicle (REST, gRPC) includono:

  • startLocation indica il punto in cui un veicolo deve iniziare il percorso. Questa proprietà è facoltativa. Se non specificato, il percorso del veicolo inizia dalla posizione della prima spedizione assegnata.
  • endLocation rappresenta il punto in cui un veicolo deve terminare il percorso. Questa proprietà è facoltativa. Se non specificato, il percorso del veicolo termina nella posizione dell'ultima spedizione assegnata.
  • startTimeWindows[] indica quando un veicolo può iniziare il suo percorso. Questa proprietà è facoltativa.
  • endTimeWindows[] indica quando un veicolo può iniziare e terminare il percorso. Entrambe le proprietà sono facoltative.
  • loadLimits rappresentano la capacità del veicolo disponibile per soddisfare le richieste di carico delle spedizioni. Scopri di più su richieste e limiti di carico in Richieste e limiti di carico.

Una richiesta di esempio completa in formato JSON ha il seguente aspetto:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

OptimizeTours e BatchOptimizeTours utilizzano entrambi i messaggi di richiesta come l'esempio precedente, ma in modi diversi. Prima di effettuare una richiesta di ottimizzazione del percorso, è importante comprendere la differenza tra i due metodi:

Confronto tra OptimizeTours e BatchOptimizeTours