Este documento é uma atualização de um artigo mais antigo que usava versões anteriores das APIs do GMP. Este conteúdo foi atualizado para a nova versão da API Places, lançada em 2023-24, e da API Routes, lançada em 2023.
Normalmente, quando o usuário está dirigindo até um ponto de interesse (PDI), ele precisa de navegação até um local próximo, como um estacionamento ou um ponto de acesso. Imagine um motorista que precisa ir a um aeroporto ou shopping center. Ao ir para um aeroporto, o motorista tenta chegar a um terminal ou a um ponto de desembarque, e não ao centro do complexo aeroportuário. Da mesma forma, um estacionamento ao lado do shopping center pode ser uma opção muito melhor para um usuário com um carro. Nesse caso, ao desenvolver um app ou serviço para orientar o motorista, primeiro encontre o local de destino e depois ofereça destinos opcionais próximos a ele. Essa abordagem permite oferecer um serviço melhor aos clientes e demonstrar que você valoriza o tempo deles, com um esforço de desenvolvimento pequeno, mas inteligente, que aproveita os dados de localização fornecidos pela Plataforma Google Maps.
Vamos mostrar como usar a nova API Places e a API Routes em sequência ou combinação para identificar o local certo para estacionar perto do seu destino. Essa solução visa remover a incerteza e várias interações para encontrar um lugar para estacionar enquanto dirige perto do destino final. Confira dois exemplos de como esses casos podem ser implementados em detalhes.
Exemplo 1: uma atração turística sem estacionamento
Escolha um local que não esteja diretamente conectado à beira da estrada para que uma rota precise ser recuperada separadamente. O destino é Notre Dame em Paris e como um ponto de partida, vamos usar a estação ferroviária Gare de l'Est (48.87697775149635, 2.3592247806755564).
O motorista sai da estação a cerca de 16 minutos ao norte de Notre Dame. Notre Dame é uma atração turística famosa em uma ilha com acesso por ponte, algumas ruas de mão única e nenhum estacionamento grande disponível nas proximidades. Portanto, esse será um desafio interessante.
1. Solicitação da API Places
Este exemplo de solicitação da API Places usa a pesquisa de texto para encontrar Notre Dame. Confira os detalhes na documentação para desenvolvedores. O "$APIKEY" nesses exemplos é a chave de API que você tem para as APIs Places e Routes da Plataforma Google Maps ativadas no Console do Google Cloud. Para uma explicação mais detalhada, consulte a documentação sobre como começar a usar a Plataforma Google Maps.
As novas solicitações da API Places têm um novo formato. Os campos de resposta não são mais fixos, e você, como desenvolvedor, precisa definir uma fieldmask no cabeçalho. O uso da fieldmask é definido na documentação.
curl -X POST --data @notre_dame.json \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress,places.location' \
'https://places.googleapis.com/v1/places:searchText'
Com o conteúdo "notre_date.json" para parâmetros de pesquisa:
{
"textQuery": "Notre Dame, Paris",
"languageCode": "en"
}
A resposta à solicitação acima fornece as seguintes coordenadas de latitude e longitude:
{
"places": [
{
"id": "ChIJATr1n-Fx5kcRjQb6q6cdQDY",
"formattedAddress": "6 Parvis Notre-Dame - Pl. Jean-Paul II, 75004 Paris, France",
"location": {
"latitude": 48.852968200000007,
"longitude": 2.3499021
},
"displayName": {
"text": "Cathédrale Notre-Dame de Paris",
"languageCode": "en"
}
}
]
}
Como você pode ver, as coordenadas realmente indicam Notre Dame.
![]() |
![]() |
Como desenvolvedor ou provedor de serviços, é uma boa ideia perguntar automaticamente ao motorista: "Procurando estacionamento perto de Notre Dame?" ou, se o motorista tiver um veículo elétrico, talvez seja melhor procurar uma estação de recarga. A experiência do usuário varia de acordo com o dispositivo e a tela, mas um texto de diálogo sutil que desaparece após um curto período pode ser interessante nesse caso. Para encontrar estacionamentos perto de Notre Dame, faça uma pesquisa por proximidade da API Places com os tipos "parking" e "electric_vehicle_charging_station" com um raio de 500 metros. O exemplo a seguir vai direcionar os resultados para áreas de estacionamento em um raio de 500 metros de Notre Dame.
curl -X POST -d '{
"includedTypes": ["parking", "electric_vehicle_charging_station"],
"maxResultCount": 10,
"rankPreference": "DISTANCE",
"locationRestriction": {
"circle": {
"center": {
"latitude": 48.852968200000007,
"longitude": 2.3499021},
"radius": 500.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H "X-Goog-FieldMask: places.displayName,places.location" \
https://places.googleapis.com/v1/places:searchNearby
O primeiro resultado é uma estação de recarga em 48.854981, 2.350629, mas quando você executar este exemplo, os resultados poderão variar. Use esse local na próxima parte, em que vamos fazer uma solicitação da API Routes.
2. Solicitação da API Routes
Para encontrar o trajeto da estação até um ponto de recarga perto de Notre Dame, é necessário fazer uma solicitação da API Routes. Basta definir os parâmetros de origem e destino. Consulte a documentação do desenvolvedor para mais opções.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 48.87697775149635,
"longitude": 2.3592247806755564
}
}
},
"destination":{
"location":{
"latLng":{
"latitude": 48.854981,
"longitude": 2.350629
}
}
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"routeModifiers": {
"avoidTolls": false,
"avoidHighways": false,
"avoidFerries": false
},
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
A resposta da API Routes geralmente contém várias sugestões de rotas. Para incluir os dados de rota na resposta, defina "routes.legs" na máscara de campo. Cada trajeto consiste em vários "trechos", que contêm várias "etapas" mostrando distância e coordenadas de viagem. Para encontrar as coordenadas finais acessíveis de carro, use o campo "endLocation" da última etapa de um último trecho em uma rota selecionada. "latitude": 48.854937299999996, "longitude": 2.3505841999999997
Talvez esse local não pareça a primeira opção, mas, ao olhar o mapa ou o Google Street View, você vai descobrir que ele fica a uma curta distância a pé da Notre Dame, cerca de 6 a 7 minutos.
Trajeto a pé do estacionamento da estação de recarga até Notre Dame
Resumo do exemplo 1
Como você pode ver, encontrar uma área de estacionamento para um carro requer apenas algumas chamadas de API e mostrar a sugestão ao motorista. Isso economiza tempo para os usuários, já que eles não precisam dirigir em ruas de mão única ou tentar encontrar um lugar para deixar o carro em uma atração turística lotada. Como um resumo, fizemos as seguintes solicitações de API:
- Uma solicitação de pesquisa de texto da API Places para encontrar as coordenadas de Notre Dame
- Uma pesquisa por proximidade da API Places para encontrar uma área de estacionamento com um ponto de recarga de carro elétrico em um raio de 500 metros dessas coordenadas
- Uma solicitação da API Routes para encontrar um trajeto até a estação de recarga
Exemplo 2: como guiar até um terminal em um aeroporto grande
Considere outro exemplo em que o motorista está tentando chegar a uma área grande com vários locais, POIs ou possíveis pontos de desembarque. O motorista está saindo do estádio de Wembley, no Reino Unido (51.557263604707224, -0.2794575145680608), e tentando chegar ao Terminal 5 do Aeroporto de Londres Heathrow.
O que é ótimo no novo preenchimento automático da API Places é a capacidade de definir tipos principais como critérios de pesquisa em combinação com a API que prevê sublocais como possíveis resultados de pesquisa. Nesse caso, pesquisar um aeroporto e um estacionamento também vai retornar terminais ou estacionamentos. Confira uma lista completa de tipos para incluir ou excluir na documentação.
curl -X POST -d '{
"input": "Heathrow",
"includedPrimaryTypes": ["airport", "parking"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete
A consulta acima nos dá uma lista dos terminais e pontos de desembarque individuais nesses terminais. Na lista de resultados, encontramos "London Heathrow Airport Terminal 5" e o ID do lugar:
"place_id" : "ChIJo21hnPxxdkgRksRL0KQRWII",
Usando o parâmetro "placeId", podemos informar à API Routes que estamos tentando chegar a um lugar em vez de coordenadas arbitrárias.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 51.557263604707224,
"longitude": -0.2794575145680608
}
}
},
"destination":{
"placeId": "ChIJo21hnPxxdkgRksRL0KQRWII"
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
Assim como no exemplo anterior, ao ler todas as etapas na resposta JSON, você encontra a última parte da viagem e as coordenadas de latitude e longitude dos locais de destino (51.4714348, "longitude": -0.48967890000000003).
Resumo do exemplo 2
Como no exemplo anterior, o esforço de desenvolvimento para fornecer orientação aprimorada ao motorista é muito pequeno, e os benefícios em tempo economizado para o motorista podem ser medidos. Fizemos as seguintes solicitações:
- Uma solicitação de preenchimento automático da API Places (nova) para encontrar o Terminal 5 do Aeroporto de Heathrow
- Uma solicitação da API Routes para receber um trajeto de Wembley até o terminal 5
Este exemplo é apenas uma pequena demonstração dos novos recursos da API Places. Confira alguns dos novos tipos de lugar, como pista de pouso e aeroporto internacional.
Conclusão
Como você pode ver, o esforço de desenvolvimento necessário para oferecer um serviço premium aos clientes que viajam de carro é pequeno, e você pode demonstrar como está pensando nas necessidades deles.
Para fins de desenvolvimento, você pode usar muitas das bibliotecas e ferramentas disponíveis para ajudar a criar os serviços para seus clientes. Confira nosso repositório público do GitHub para a Plataforma Google Maps.
Próximas ações
Começar a usar a GMP : https://developers.google.com/maps/get-started
Leitura adicional sugerida
Documentação do recurso de preenchimento automático da API Places (novo): https://developers.google.com/maps/documentation/places/web-service/place-autocomplete
Documentação da API Routes: https://developers.google.com/maps/documentation/routes
Colaboradores
Autor principal: Mikko Toivanen | Engenheiro de soluções da Plataforma Google Maps