Crea un messaggio di richiesta

Come descritto brevemente in Panoramica dell'ottimizzazione del percorso, una richiesta di base comprende Modello, Spedizioni e Veicoli come entità obbligatorie:

  • Il modello acquisisce impostazioni e vincoli per l'intera richiesta, inclusi Shipments e Vehicles.
  • Le spedizioni rappresentano attività o spedizioni effettive che includono i VisitRequest di ritiro e consegna. 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 parte di un problema di ottimizzazione a un determinato livello di granularità. I vincoli a livello di modello si applicano a tutte le spedizioni e a tutti i veicoli, mentre i vincoli e le proprietà specificati sulle spedizioni o sui veicoli sono specifici di una singola spedizione o di un singolo veicolo.

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

OptimizeToursRequest strutture

Ecco alcune proprietà di uso comune del messaggio OptimizeToursRequest di primo livello (REST, gRPC):

  • searchMode indica se restituire la prima soluzione che soddisfa i vincoli specificati o trovare la migliore soluzione possibile entro una scadenza impostata.
  • considerRoadTraffic determina se il traffico in tempo reale viene utilizzato o meno per il routing e la stima dell'orario di arrivo stimato.
  • populateTransitionPolylines determina se le polilinee di route vengono restituite nella risposta.

Proprietà del modello

Alcune proprietà di uso comune del messaggio ShipmentModel (REST, gRPC) includono:

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

Proprietà della spedizione

Alcune proprietà di uso comune del messaggio Shipment (REST, gRPC) includono:

  • pickups[] e deliveries[] indicano il luogo in cui una spedizione può essere ritirata o consegnata. Le proprietà pickups[] e deliveries[] utilizzano entrambi il messaggio VisitRequest (REST, gRPC).
  • loadDemands rappresenta il carico necessario a un veicolo per completare una spedizione. La proprietà load_limits (REST, gRPC) corrispondente dei veicoli rappresenta il carico massimo che un veicolo può sostenere contemporaneamente. Scopri di più sul caricamento in Carica richieste e limiti.
  • penalty_cost rappresenta il costo sostenuto nel caso in cui una spedizione venga saltata. Per saperne di più sui costi, consulta Parametri del modello di costo.

Proprietà dei veicoli

Alcune proprietà di uso comune del messaggio Vehicle (REST, gRPC) includono:

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

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 messaggi di richiesta come nell'esempio sopra, ma in modi diversi. Prima di effettuare una richiesta di ottimizzazione della route, è importante comprendere la differenza tra i due metodi:

Confronto di OptimizeTour e BatchOptimizeTours