122 lines
3.9 KiB
Markdown
122 lines
3.9 KiB
Markdown
# Configuração do Google Maps API
|
||
|
||
## ✅ **JÁ CONFIGURADO - ROTAS REAIS DO GOOGLE MAPS**
|
||
|
||
Este projeto agora tem um mapa **100% funcional** com rotas **realistas** do Google Maps!
|
||
|
||
### 🗺️ **Funcionalidades Implementadas:**
|
||
- ✅ **Localização em tempo real** do usuário
|
||
- ✅ **Pesquisa de destinos** (simulada para demonstração)
|
||
- ✅ **Rotas REALISTAS** usando Google Directions API
|
||
- ✅ **Caminho pelas ruas** (nÃO é linha reta!)
|
||
- ✅ **Permissões** configuradas para Android e iOS
|
||
- ✅ **Interface intuitiva** com barra de busca
|
||
- ✅ **Feedback visual** com SnackBars funcionais
|
||
|
||
### <20>️ **Como as Rotas Funcionam:**
|
||
|
||
**🔍 Google Directions API:**
|
||
- Faz requisição real para `maps.googleapis.com/maps/api/directions`
|
||
- Parâmetros: `origin`, `destination`, `mode=walking`
|
||
- Retorna passos detalhados da rota
|
||
- Extrai pontos de cada passo (`start_location`, `end_location`)
|
||
- Cria polyline com todos os pontos conectados
|
||
|
||
**📍 Resultado Visual:**
|
||
- ✅ **Linha azul** seguindo ruas reais
|
||
- ✅ **Curvas e quinas** como GPS real
|
||
- ✅ **Pontos intermediários** das direções
|
||
- ✅ **Ajuste automático** de câmera
|
||
|
||
### <20>📱 **Como Usar:**
|
||
|
||
1. **Abrir o app** → Solicita permissão de localização
|
||
2. **Aguardar GPS** → Mostra sua localização atual (marcador azul)
|
||
3. **Pesquisar destino** → Digite "Parque Ibirapuera" ou clique nos chips
|
||
4. **Ver rota REAL** → Linha azul segue ruas reais
|
||
5. **Controles** → Zoom e botão de localização
|
||
|
||
### 🔧 **Configuração Técnica:**
|
||
|
||
#### Android:
|
||
- ✅ `AndroidManifest.xml` - Permissões de localização
|
||
- ✅ API Key configurada
|
||
- ✅ `google_maps_flutter` v2.5.3
|
||
- ✅ `geolocator` v10.1.0
|
||
- ✅ `http` v1.1.0 (para Directions API)
|
||
|
||
#### iOS:
|
||
- ✅ `Info.plist` - Permissões de localização
|
||
- ✅ `AppDelegate.swift` - API Key configurada
|
||
- ✅ `Podfile` - Dependências iOS
|
||
|
||
### 🎯 **Funcionalidades do Mapa:**
|
||
|
||
**📍 Localização:**
|
||
- Obtém GPS automaticamente
|
||
- Marcador azul para posição atual
|
||
- Botão "Minha Localização"
|
||
|
||
**🔍 Pesquisa:**
|
||
- Barra de busca intuitiva
|
||
- Sugestões de lugares populares
|
||
- Loading indicator durante busca
|
||
|
||
**🛣️ Rota REALISTA:**
|
||
- **Google Directions API** integrada
|
||
- **Caminho pelas ruas** (linha curva)
|
||
- **Pontos detalhados** de cada passo
|
||
- **Distância e tempo** reais da API
|
||
|
||
**📊 Estatísticas:**
|
||
- Distância real da API
|
||
- Tempo real da API
|
||
- Modo: Caminhada
|
||
|
||
### 🚀 **Para Testar:**
|
||
|
||
```bash
|
||
# Limpar e instalar dependências
|
||
flutter clean
|
||
flutter pub get
|
||
|
||
# Rodar o app
|
||
flutter run
|
||
```
|
||
|
||
### ⚠️ **Importante:**
|
||
- **Permissões necessárias** - Aceite quando solicitado
|
||
- **GPS ativo** - Necessário para localização precisa
|
||
- **Internet** - Para Directions API
|
||
- **Modo avião** - Desative para funcionar
|
||
|
||
### 📋 **Arquivos Configurados:**
|
||
- `lib/screens/google_maps_screen.dart` - Mapa com Directions API ✅
|
||
- `android/app/src/main/AndroidManifest.xml` - Permissões Android ✅
|
||
- `ios/Runner/Info.plist` - Permissões iOS ✅
|
||
- `ios/Runner/AppDelegate.swift` - API Key iOS ✅
|
||
- `pubspec.yaml` - Dependências incluindo http ✅
|
||
|
||
### 🔄 **Como as Rotas São Calculadas:**
|
||
|
||
1. **Requisição HTTP** para Google Directions API
|
||
2. **Parâmetros:** origin, destination, mode=walking
|
||
3. **Resposta JSON** com routes[0].legs[0].steps[]
|
||
4. **Extração** de start_location e end_location
|
||
5. **Criação** de polyline com pontos conectados
|
||
6. **Renderização** no mapa como linha azul
|
||
|
||
**Rotas 100% realistas e funcionais!** 🎉✨
|
||
|
||
### <20> **Exemplo de Console:**
|
||
```
|
||
🛣️ Buscando rota real com Google Directions API...
|
||
🌐 URL da requisição: https://maps.googleapis.com/maps/api/directions/json?origin=-23.5505,-46.6333&destination=-23.5874,-46.6576&mode=walking&language=pt_BR&key=AIzaSyCk84rxmF044cxKLABf55rEKHDqOcyoV5k
|
||
📡 Status code: 200
|
||
✅ Rota encontrada com 12 passos
|
||
📍 Total de pontos na rota: 14
|
||
📊 Distância: 2.3 km, Tempo: 28 min
|
||
```
|
||
|
||
**Mapa com rotas realistas pronto para uso!** 🗺️🛣️
|