Łączenie podsumowań wyznaczania trasy z wyszukiwaniem miejsc przy trasie

Możesz łączyć obliczenia podsumowania trasy z wyszukiwaniem wzdłuż trasy. W takim przypadku Wyszukiwanie tekstowe (nowe) zwraca w odpowiedzi czas podróży i odległość do każdego miejsca, a następnie z każdego miejsca do miejsca docelowego trasy.

Aby obliczyć podsumowanie wyznaczania trasy za pomocą wyszukiwania tekstowego (nowego) wraz z wyszukiwaniem wzdłuż trasy:

  1. Użyj interfejsu Routes API, aby obliczyć trasę, która zwraca linię łamaną trasy w odpowiedzi.

  2. Użyj parametru searchAlongRouteParameters.polyline.encodedPolyline, aby przekazać linię łamaną trasy do wyszukiwania tekstowego (nowego) i skierować wyniki wyszukiwania na trasę. Odpowiedź zawiera miejsca, które pasują do kryteriów wyszukiwania i znajdują się w pobliżu określonej trasy.

  3. W masce pola umieść routingSummaries, aby odpowiedź zawierała tablicę routingSummaries. Ta tablica zawiera czas trwania i odległość od punktu początkowego do każdego miejsca w odpowiedzi.

Narzędzie APIs Explorer umożliwia wysyłanie żądań w czasie rzeczywistym, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami:

Domyślnie wyszukiwanie tekstowe (nowe) przeprowadza wyszukiwanie na całej trasie:

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 z pasującymi miejscami i tablicę routingSummaries z czasem i odległością dojazdu do każdego miejsca:

{
  "places": [
    {
      "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Vegan Mob - Vegan BBQ and Soul Food",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Enjoy Vegetarian",
        "languageCode": "en"
      }
    },
   …
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0"
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0"
    },
   …
  ]
}

W przypadku każdego wpisu w tablicy legs wyszukiwanie tekstowe (nowe) zwraca czas podróży dwuetapowej:

  • Pierwszy odcinek zawiera czas trwania podróży i odległość od miejsca początkowego do miejsca docelowego. W tym przykładzie czas trwania i odległość od miejsca początkowego do pierwszego miejsca w wynikach wynoszą 285 sekund i 1616 metrów.

  • Drugi segment zawiera czas podróży i odległość od miejsca do miejsca docelowego trasy. W tym przykładzie czas trwania i odległość to 2466 sekund i 58 147 metrów.

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

Możesz zmodyfikować obliczenia podsumowania wyszukiwania i wyznaczania trasy, określając miejsce początkowe trasy, tryb podróży, modyfikatory trasy i ustawienia 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 temacie Określanie opcji podróży.

Domyślnie pierwszy odcinek każdego wyniku zawiera odległość od punktu początkowego określonego przez linię łamaną do każdego miejsca. Możesz jednak zastąpić tę wartość domyślną, wyraźnie określając w żądaniu miejsce początkowe trasy. Jeśli jest określony, pierwszy odcinek wszystkich odpowiedzi określa odległości i czas trwania od określonego punktu początkowego trasy, zastępując punkt początkowy z linii łamanej.

W tym przykładzie jako punkt początkowy trasy podajesz współrzędne San Mateo w Kalifornii, określasz, że chcesz unikać opłat, i ustawiasz liczbę wyników 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'

Obraz poniżej przedstawia mapę z linią łamaną trasy, nowym punktem początkowym (jasnoniebieski pinezek) i miejscami w wynikach wyszukiwania (zielone pinezki). Zwróć uwagę, że wszystkie wyniki znajdują się na trasie, ale za San Mateo:

wyniki wyszukiwania z miejsca pochodzenia aktualizacji.

Wypróbuj

Narzędzie APIs Explorer umożliwia wysyłanie przykładowych żądań, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami.

  1. Po prawej stronie kliknij ikonę interfejsu API api.

  2. Opcjonalnie możesz edytować parametry żądania.

  3. Kliknij przycisk Wykonaj. W oknie wybierz konto, którego chcesz użyć do wysłania prośby.

  4. W panelu APIs Explorer kliknij ikonę pełnego ekranu fullscreen, aby rozwinąć okno narzędzia APIs Explorer.