Introdução
Neste tutorial, mostramos como adicionar um mapa do Google ao seu app Flutter, incluindo um marcador (também chamado de alfinete), para indicar um local específico.
Como conseguir o código
Clone ou faça o download do repositório de exemplos do Flutter. O exemplo de código pode ser encontrado no diretório google_maps
.
Configurar seu projeto de desenvolvimento
Conclua as etapas destacadas no guia Configurar um projeto do Flutter antes de continuar com este assunto.
1. Importar o pacote do Google Maps para Flutter
- Abra o arquivo
main.dart
no seu ambiente de desenvolvimento integrado preferido. - Verifique se a seguinte instrução de importação foi adicionada ao arquivo:
import 'package:google_maps_flutter/google_maps_flutter.dart';
2. Adicionar o Google Maps ao seu app Flutter
No widget Scaffold
, adicione um widget GoogleMap
como o corpo.
GoogleMap(
initialCameraPosition: CameraPosition(
target: _center,
zoom: 11.0,
),
markers: {
const Marker(
markerId: MarkerId('Sydney'),
position: LatLng(-33.86, 151.20),
)
},
)
- A opção
markerId
rotula seu marcador. - A opção
position
define onde o marcador será exibido no mapa.
3. Compilar e executar seu app
Inicie o app Flutter usando uma das seguintes opções:
- Pelo IDE, clique no botão
Run
- Na linha de comando, execute
flutter run
.
Será mostrado um mapa com um marcador centralizado em Sydney, na costa leste da Austrália, semelhante à imagem desta página.
Solução de problemas
- Se o mapa não aparecer, confirme se você recebeu uma chave de API e a incluiu no app.
- Se você usou o identificador do pacote iOS para restringir a chave de API, edite a chave para adicionar o identificador do pacote no app:
com.google.examples.map-with-marker
. - Verifique se você tem uma boa conexão Wi-Fi ou GPS.
- Use o Flutter DevTools para conferir os registros e depurar o app.
- Você pode saber mais sobre Como executar um app Flutter.
4. Sobre o código
Este código pode ser encontrado no GitHub.
- Importe os pacotes necessários e inicialize o app.
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
void main() => runApp(const MyApp());
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
} - Crie um mapa centralizado em Sydney, Austrália.
class _MyAppState extends State<MyApp> {
late GoogleMapController mapController;
final LatLng _center = const LatLng(-33.86, 151.20);
void _onMapCreated(GoogleMapController controller) {
mapController = controller;
} - Adicione os widgets necessários para exibir um mapa em um app.
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Maps Sample App'),
backgroundColor: Colors.green[700],
),
body: GoogleMap(
onMapCreated: _onMapCreated,
initialCameraPosition: CameraPosition(
target: _center,
zoom: 11.0,
), // CameraPosition
), // GoogleMap
), // Scaffold
); // MaterialApp
}
} - Adicione os widgets de marcadores para incluir o widget no seu app.
body: GoogleMap(
onMapCreated: _onMapCreated,
initialCameraPosition: CameraPosition(
target: _center,
zoom: 11.0,
),
markers: {
const Marker(
markerId: const MarkerId("Sydney"),
position: LatLng(-33.86, 151.20),
), // Marker
}, // markers
), // GoogleMap
... - Adicione uma janela de informações ao marcador.
Por padrão, o pacote do Google Maps para Flutter mostra o conteúdo da janela de informações quando o usuário toca em um marcador. Não é preciso adicionar um listener de clique para o marcador se o comportamento padrão atende às suas expectativas.const Marker(
markerId: const MarkerId("Sydney"),
position: LatLng(-33.86, 151.20),
infoWindow: InfoWindow(
title: "Sydney",
snippet: "Capital of New South Wales",
), // InfoWindow
), //Marker
...
Parabéns! Você criou um app do Flutter que mostra um mapa do Google com um marcador indicando um local específico e fornecendo dados adicionais em uma janela de informações. Você também aprendeu como usar o pacote do Google Maps para o Flutter.