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 para um local próximo, como um estacionamento ou um ponto de acesso. Imagine um motorista que precisa ir para um aeroporto ou um shopping. Ao ir para um aeroporto, o motorista tenta chegar a um terminal ou um ponto de entrega, e não ao centro do complexo do aeroporto. Da mesma forma, um estacionamento ao lado do shopping 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 para onde ele está indo e, em seguida, ofereça destinos opcionais perto desse local. Com essa abordagem, você pode oferecer um serviço melhor aos seus clientes e demonstrar que valoriza o tempo deles, com um esforço de desenvolvimento pequeno, mas inteligente, que aproveita os dados de local 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 ao lado do seu destino. O objetivo dessa solução é eliminar a incerteza e as várias interações para encontrar um local para estacionar enquanto se dirige mais 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 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. A Notre Dame é uma atração turística famosa em uma ilha com acesso por ponte, algumas ruas de mão única e sem um grande estacionamento disponível nas proximidades. Portanto, esse é um desafio interessante.
- Solicitação da API Places
Este exemplo de solicitação da API Places usa a pesquisa de texto para encontrar a Notre Dame. Consulte a documentação para desenvolvedores para mais detalhes. A "$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, como desenvolvedor, você precisa definir uma fieldmask no cabeçalho. O uso do 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 apontam para Notre Dame.
Como desenvolvedor ou provedor de serviços, é uma boa ideia perguntar automaticamente ao motorista: "Procurando estacionamento perto da Notre Dame?". Se o motorista tiver um veículo elétrico, você pode procurar uma estação de recarga. A experiência do usuário será diferente dependendo do dispositivo e da tela, mas um texto de diálogo sutil que desaparece após um curto período pode ser uma boa opção nesse caso. Para encontrar estacionamento perto de Notre Dame, faça uma pesquisa na API Places com os tipos "estacionamento" e "estação_de_recarga_de_veículos_elétricos" com um raio de 500 metros. O exemplo a seguir vai enviesar os resultados para áreas de estacionamento a 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, no momento em que você executar esse exemplo, os resultados podem variar. Use esse local na próxima parte, em que faremos uma solicitação da API Routes.
- **Solicitação da API Routes **
Para encontrar a rota da estação até uma estação de recarga perto de Notre Dame, faça 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 trajeto. Para incluir os dados da rota na resposta, defina "routes.legs" na máscara de campo. Cada rota consiste em várias "partes", e elas contêm várias "etapas" que mostram a distância e as coordenadas da viagem. Para encontrar as coordenadas finais acessíveis com um carro, use o campo "endLocation" da última etapa de uma última etapa em uma rota selecionada. "latitude": 48.854937299999996, "longitude": 2.3505841999999997
Esse local pode não parecer a primeira escolha, mas, quando você olha o mapa ou o Google Street View, percebe que ele fica a uma curta distância a pé, cerca de seis a sete minutos, da Notre Dame.
Rota a pé do estacionamento da estação de carregamento até a 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 a exibição da sugestão para o motorista. Isso economiza tempo para seus usuários, já que eles não estão dirigindo em ruas de mão única ou tentando encontrar um lugar para deixar o carro em uma atração turística movimentada. Como 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 na API Places para encontrar uma área de estacionamento com uma estação de recarga de carros elétricos a 500 metros dessas coordenadas
- Uma solicitação da API Routes para encontrar um trajeto até a estação de recarga
Exemplo 2: como chegar a um terminal em um aeroporto grande
Considere outro exemplo em que o motorista está tentando chegar a uma área grande que tem vários locais, pontos de interesse ou possíveis pontos de entrega. 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 novo recurso de preenchimento automático da API Places é ótimo porque permite definir um tipo principal como critério de pesquisa em combinação com a API que prevê subpremissões como possíveis resultados de pesquisa. Nesse caso, isso significa que a pesquisa de um aeroporto também vai retornar terminais. Confira a lista completa de tipos a serem incluídos ou excluídos na documentação.
curl -X POST -d '{
"input": "Heathrow",
"includedPrimaryTypes": ["airport"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete
A consulta acima mostra uma lista dos terminais e dos pontos de entrega 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 acessar um lugar em vez de algumas 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'
Novamente, como no exemplo anterior, lendo todas as etapas na resposta JSON, você vai encontrar a última parte da jornada e as coordenadas de latitude e longitude dos locais finais (51.4714348, "longitude": -0.48967890000000003).
Resumo do exemplo 2
Como no exemplo anterior, o esforço de desenvolvimento para fornecer orientações melhores ao motorista é muito pequeno, e os benefícios no tempo economizado para o motorista podem ser medidos. Fizemos as seguintes solicitações:
- Uma solicitação de autocompletar da API Places (nova) para encontrar o terminal 5 do aeroporto de Heathrow
- Uma solicitação da API Routes para receber uma rota de Wembley ao terminal 5
Este exemplo é apenas uma pequena amostra 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 fornecer um serviço premium aos clientes que viajam de carro é bastante 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 criar serviços para seus clientes. Confira nosso repositório do GitHub para a Plataforma Google Maps (link em inglês) disponível publicamente.
Próximas ações
Começar a usar a GMP : https://developers.google.com/maps/get-started
Leitura adicional sugerida
Documentação do autocompletar da API Places (nova): 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 de plataforma do Google Maps