Oblicz podsumowanie trasowania

Aby użyć wyszukiwania tekstowego (nowej funkcji) lub wyszukiwania w pobliżu (nowej funkcji) do obliczenia czasu podróży i odległości do każdego miejsca w odpowiedzi:

  1. Przekaż parametr routingParameters.origin w żądaniu, aby określić współrzędne szerokości i długości geograficznej punktu początkowego trasy. Ten parametr jest wymagany do obliczenia czasu trwania i odległości do każdego miejsca w odpowiedzi.

  2. 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.

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

Korzystanie z wyszukiwania tekstowego (nowy sposób)

W następującej prośbie obliczasz czas i odległość do każdego miejsca w odpowiedzi wyszukiwania tekstowego (nowa):

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-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 JSON: tablica places zawiera pasujące miejsca, a tablica routingSummaries zawiera czas trwania i odległość do pokonania do każdego miejsca:

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

Każdy element w tablicy routingSummaries znajduje się w odpowiednim miejscu w tablicy places. Oznacza to, że element routingSummaries[0] odpowiada miejscu places[0].

Długość tablicy routingSummaries jest taka sama jak długość tablicy places. Jeśli wartość routingSummary dla danego miejsca jest niedostępna, element tablicy jest pusty.

W tym przykładzie obliczamy czas i odległość od punktu początkowego do poszczególnych miejsc, dlatego pole routingSummaries.legs w odpowiedzi zawiera pojedynczy obiekt Leg, który zawiera wartości durationdistanceMeters od punktu początkowego do miejsca docelowego.

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   
  ]
}

Z tego przykładu wynika, że czas i odległość od punktu początkowego do pierwszego miejsca w wynikach to odpowiednio 597 sekund i 2607 metrów.

W tym przykładzie obliczasz czas i odległość do każdego miejsca w odpowiedzi na zapytanie w pobliżu. W tym przykładzie wyszukiwane są restauracje w Sydney w Australii. Ustawienie ograniczeń dotyczących lokalizacji i miejsca docelowego na podstawie tych samych współrzędnych geograficznych:

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

Nie musisz używać tych samych współrzędnych dla locationRestriction i źródła routingu. Możesz na przykład ustawić locationRestriction na punkt środkowy Sydney, aby wyniki wyszukiwania były przybliżone do tego koła. Następnie ustawiasz punkt początkowy nawigacji na współrzędne swojego domu, czyli na inną lokalizację w zakresie koła wyszukiwania. Następnie żądanie wpływa na wyniki wyszukiwania w określonym obszarze i oblicza podsumowania tras na podstawie lokalizacji Twojego domu.

Określ opcje podróży

Domyślnie obliczenia czasu trwania i odległości dotyczą samochodu. Możesz jednak kontrolować typ pojazdu oraz inne opcje w wyszukiwarce.

  • Użyj parametru routingParameters.travelMode, aby ustawić tryb transportu na DRIVE, BICYCLE, WALK lub TWO_WHEELER. Więcej informacji o tych opcjach znajdziesz w artykule Dostępne typy pojazdów na trasach.

  • Użyj właściwości routingParameters.routingPreference, aby ustawić opcję preferencji routingu na TRAFFIC_UNAWARE (domyślnie), TRAFFIC_AWARE lub TRAFFIC_AWARE_OPTIMAL. Każda opcja ma różny poziom jakości danych i opóźnienia. Więcej informacji znajdziesz w artykule Określanie sposobu i czasu uwzględniania danych o ruchu.

    Właściwość routingParameters.routingPreference ma wpływ na wskazówki zawarte w polu directionsUri w sekcji Podgląd (przed GA), ponieważ Mapy Google wyświetlają opcje ruchu po otwarciu linku.

  • Użyj właściwości routingParameters.routeModifiers, aby określić, czy chcesz użyć wartości avoidTolls, avoidHighways, avoidFerries lub avoidIndoor. Więcej informacji o tych opcjach znajdziesz w artykule Określanie elementów trasy, których należy unikać.

W następnym przykładzie określasz środek transportu jako DRIVE i ustawiasz opcję omijania autostrad:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": 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'

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 strony kliknij ikonę interfejsu API api.

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

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

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