Łączenie podsumowań tras z funkcją wyszukiwania miejsc przy trasie

Obliczenia dotyczące podsumowania trasy możesz łączyć z wyszukiwaniem na trasie. W tym przypadku wyszukiwanie tekstu (nowa wersja) zwraca czas i odległość do każdego miejsca w odpowiedzi, a potem od każdego miejsca do miejsca docelowego.

Aby użyć funkcji wyszukiwania tekstu (nowej) do obliczenia podsumowania trasy wraz z wyszukiwaniem wzdłuż trasy:

  1. Oblicz trasę, która zwraca linię łamaną trasy za pomocą interfejsu Routes API. w odpowiedzi.

  2. Używaj parametru searchAlongRouteParameters.polyline.encodedPolyline, aby: przekaż linię łamaną trasy do funkcji wyszukiwania tekstowego (nowość), aby ukształtować wyniki wyszukiwania trasę. Odpowiedź zawiera miejsca, które pasują do kryteriów wyszukiwania i znajdują się w pobliżu określonej trasy.

  3. Uwzględnij routingSummaries w polu maski, aby odpowiedź zawierała tablicę routingSummaries. Ta tablica zawiera czas i odległość od punktu początkowego do każdego miejsca w odpowiedzi.

Domyślnie funkcja wyszukiwania tekstowego (nowa) wykonuje wyszukiwanie wzdłuż całej trasy:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

Odpowiedź zawiera 2 tablice: tablicę places zawierającą pasującą miejsc oraz tablicę routingSummaries zawierającą czas trwania i odległość do podróży do każdego miejsca:

{
  "places": [
    {
      "formattedAddress": "1477 Plymouth St suite c, Mountain View, CA 94043, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Zareen's",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "2464 W El Camino Real C, Mountain View, CA 94040, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Veggie Garden",
        "languageCode": "en"
      }
    },
   …
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ]
    },
   …
  ]
}

W przypadku każdego elementu w tablicy legs funkcja wyszukiwania tekstu (nowa) zwraca czas podróży 2 etapów:

  • Pierwszy etap zawiera czas podróży oraz odległość od miejsca wyjazdu do danego miejsca. W tym przykładzie czas trwania i odległość od punktu początkowego do pierwsze miejsce w wynikach to 285 sekund i 1616 metrów.

  • Drugi etap zawiera czas i odległość podróży od miejsca docelowego. W tym przykładzie czas trwania i dystans są 2466 sekund i 58147 metrów.

Określanie punktu początkowego kierowania ruchem, środka transportu i modyfikatorów trasy

Obliczenie podsumowania wyszukiwania i routingu możesz zmodyfikować, określając punkt początkowy trasy, środek transportu, modyfikatory tras i preferencje wyznaczania trasy. Tryb podróży i modyfikatory trasy działają tak samo jak w przypadku obliczania podsumowań trasy bez określania trasy, jak pokazano w sekcji Określanie opcji podróży.

Domyślnie pierwszy odcinek każdego wyniku zawiera odległość od punktu początkowego zdefiniowanego przez polilinię do każdego miejsca. Możesz jednak zastąpić tę wartość domyślną, wyraźnie określając w żądaniu źródło trasowania. Jeśli zostanie określony, pierwszy etap wszystkich odpowiedzi określa odległości i czas trwania od podanego punkt początkowy wyznaczania trasy, zastępując początek linii łamanej.

W następnym przykładzie podajesz punkt początkowy trasy jako współrzędne San Mateo w Kalifornii, zaznaczasz, że chcesz uniknąć opłat za przejazd, a liczba wyników jest ustawiona na 5:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "maxResultCount": 5,
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  },
  "routingParameters": {
    "origin": {
      "latitude": 37.56617,
      "longitude": -122.30870
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidTolls": true
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

Poniższy obraz przedstawia mapę zawierającą linię łamaną trasy, nowy punkt początkowy (jasnoniebieska pinezka) oraz miejsca w wynikach wyszukiwania (zielone pinezki). Zwróć uwagę, jak wszystkie wyniki na trasie, ale za San Mateo:

Wyniki wyszukiwania z źródła aktualizacji.