Optymalizuj kolejność przystanków na trasie

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Domyślnie metoda biblioteki Routes computeRoutes oblicza trasę przez wiele przystanków, zwanych punktami pośrednimi, w kolejności, w jakiej je podasz.

Interfejs Routes API może zoptymalizować podaną trasę, zmieniając kolejność przystanków na bardziej efektywną. Optymalizacja punktów pośrednich optymalizuje czas podróży, ale przy podejmowaniu decyzji o tym, która trasa jest najbardziej efektywna, uwzględnia też inne czynniki, takie jak odległość i liczba zakrętów.

Optymalizacja punktów na trasie

  1. Sprawdź, czy żaden z punktów na trasie nie ma ustawionego parametru via na true.
  2. Sprawdź, czy nagłówek routingPreference nie jest ustawiony na TRAFFIC_AWARE_OPTIMAL.
  3. Ustaw wartość optimizeWaypointOrder na true.
  4. W masce pola określ pole optimizedIntermediateWaypointIndices.

Jak optymalizowana jest kolejność punktów na trasie

Oto jak interfejs Routes API optymalizuje kolejność punktów na trasie:

  1. Automatycznie indeksuje punkty pośrednie na podstawie kolejności, w jakiej podajesz je w żądaniu, zaczynając od 0.
  2. Optymalizuje kolejność punktów pośrednich, używając numerów indeksów przypisanych do nich w żądaniu.
  3. Zwraca zoptymalizowaną kolejność punktów pośrednich w odpowiedzi w sekcji optimizedIntermediateWaypointIndices.

Przykładowe żądanie

Poniższy przykład pokazuje, jak poprosić o zoptymalizowane punkty pośrednie na trasie z Adelaide w Australii Południowej do każdego z głównych regionów winiarskich w Australii Południowej, a następnie powrotu do Adelaide.

const request = {
  origin: 'Adelaide, SA',
  destination: 'Adelaide, SA',
  intermediates: [
    {location: "Barossa+Valley,SA"},
    {location: "Clare,SA"},
    {location: "Coonawarra,SA"},
    {location: "McLaren+Vale,SA"},
  ],
  travelMode: 'DRIVING',
  optimizeWaypointOrder: true,
  fields: ['path','optimizedIntermediateWaypointIndices'],
};
  

Przykładowa odpowiedź

Odpowiedź zawiera optimizedIntermediateWaypointIndices.
  Response:
 [
  {
    "optimizedIntermediateWaypointIndices": [
      3, // McLaren+Vale, SA
      2, // Coonawarra, SA
      0, // Barossa+Valley, SA
      1  // Clare, SA
    ],
    ...