Calcular o resumo do trajeto

Para usar a Text Search (novo) ou a Nearby Search (novo) e calcular a duração e a distância da viagem até cada lugar na resposta:

  1. Transmita o parâmetro routingParameters.origin na solicitação para especificar as coordenadas de latitude e longitude da origem do trajeto. Esse parâmetro é obrigatório para calcular a duração e a distância até cada lugar na resposta.

  2. Inclua routingSummaries na máscara de campo para que a resposta inclua a matriz routingSummaries. Essa matriz contém a duração e a distância da origem de roteamento até cada lugar na resposta.

Com o APIs Explorer, você pode fazer solicitações em tempo real para se familiarizar com a API e as opções dela:

Na solicitação a seguir, você calcula a duração e a distância da viagem até cada lugar na resposta da Pesquisa de texto (nova):

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'

A resposta contém duas matrizes JSON: a matriz places contém os lugares correspondentes, e a matriz routingSummaries contém a duração e a distância para viajar até cada lugar:

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

Cada elemento na matriz routingSummaries está no local correspondente da matriz como o lugar na matriz places. Ou seja, o elemento em routingSummaries[0] corresponde ao lugar em places[0].

O comprimento da matriz de routingSummaries é o mesmo da matriz de places. Se o routingSummary de um lugar não estiver disponível, a entrada da matriz ficará vazia.

Como este exemplo calcula a duração e a distância da origem de roteamento até cada lugar, o campo routingSummaries.legs na resposta contém um único objeto Leg que contém duration e distanceMeters da origem de roteamento até o lugar.

{
  "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"
    },
   
  ]
}

Neste exemplo, a duração e a distância da origem do trajeto até o primeiro lugar nos resultados são de 597 segundos e 2.607 metros.

Neste exemplo, você calcula a duração e a distância da viagem até cada lugar na resposta da Pesquisa por proximidade. Este exemplo pesquisa restaurantes em Sydney, na Austrália, e define a restrição de local e a origem do trajeto para a mesma coordenada de latitude e longitude:

  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

Não é necessário usar as mesmas coordenadas para o locationRestriction e a origem do roteamento. Por exemplo, defina locationRestriction como o ponto central de Sydney para direcionar os resultados da pesquisa para esse círculo. Mas você define a origem do trajeto para as coordenadas da sua casa, ou seja, para um local diferente dentro do círculo de pesquisa. Em seguida, a solicitação envia os resultados da pesquisa para o círculo e calcula os resumos de rotas com base na localização da sua casa.

Especificar opções de viagem

Por padrão, os cálculos de duração e distância são para um carro. No entanto, você pode controlar o tipo de veículo, além de outras opções, na pesquisa.

  • Use o parâmetro routingParameters.travelMode para definir o modo de transporte como DRIVE, BICYCLE, WALK ou TWO_WHEELER. Para mais informações sobre essas opções, consulte Tipos de veículos disponíveis para rotas.

  • Use a propriedade routingParameters.routingPreference para definir a opção de preferência de roteamento como TRAFFIC_UNAWARE (padrão), TRAFFIC_AWARE ou TRAFFIC_AWARE_OPTIMAL. Cada opção tem níveis diferentes de qualidade de dados e latência. Para mais informações, consulte Especificar como e se incluir dados de tráfego.

    A propriedade routingParameters.routingPreference afeta as rotas contidas no campo directionsUri da prévia (pré-GA) porque o Google Maps mostra opções de trânsito quando abre o link.

  • Use a propriedade routingParameters.routeModifiers para especificar avoidTolls, avoidHighways, avoidFerries e avoidIndoor. Para mais informações sobre essas opções, consulte Especificar recursos de rota para evitar.

No exemplo a seguir, você especifica o modo de viagem como DRIVE e evita rodovias:

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'

Confira!

Com o APIs Explorer, você pode fazer solicitações de amostra para se familiarizar com a API e as opções dela.

  1. Selecione o ícone da API api no lado direito da página.

  2. Se quiser, edite os parâmetros da solicitação.

  3. Selecione o botão Executar. Na caixa de diálogo, escolha a conta que você quer usar para fazer a solicitação.

  4. No painel do APIs Explorer, selecione o ícone de tela cheia fullscreen para expandir a janela do APIs Explorer.