Wprowadzenie
W tym samouczku dowiesz się, jak dodać do aplikacji Flutter mapę Google. Na mapie znajduje się znacznik (nazwany też pinezką), który wskazuje konkretną lokalizację.
Pobieranie kodu
Sklonuj lub pobierz repozytorium Flutter Samples. Przykładowy kod znajdziesz w katalogu google_maps
.
Konfigurowanie projektu programistycznego
Zanim przejdziesz do dalszej części tego tematu, wykonaj czynności opisane w tym przewodniku.
1. Importowanie pakietu Map Google dla Flutter
- Otwórz plik
main.dart
w wybranym środowisku IDE. - Sprawdź, czy do pliku został dodany ten element importu:
import 'package:google_maps_flutter/google_maps_flutter.dart';
2. Dodawanie Map Google do aplikacji Flutter
W widżecie Scaffold
dodaj widżet GoogleMap
jako treść.
GoogleMap( initialCameraPosition: CameraPosition( target: _center, zoom: 11.0, ), markers: { const Marker( markerId: MarkerId('Sydney'), position: LatLng(-33.86, 151.20), ) }, )
- Opcja
markerId
oznacza Twój znacznik. - Opcja
position
określa, gdzie na mapie ma się wyświetlać znacznik.
3. Kompilowanie i uruchamianie aplikacji
Uruchom aplikację Flutter, korzystając z jednego z tych sposobów:
- W swojej IDE kliknij przycisk
Run
. - W wierszu poleceń uruchom
flutter run
.
Powinna Ci się wyświetlić mapa z oznacznikiem wyśrodkowanym na Sydney na wschodnim wybrzeżu Australii, podobna do tej na tej stronie.
Rozwiązywanie problemów
- Jeśli nie widzisz mapy, sprawdź, czy masz klucz interfejsu API i czy został on dodany do aplikacji.
- Jeśli do ograniczenia klucza interfejsu API użyjesz identyfikatora pakietu na iOS, zmodyfikuj klucz, aby dodać identyfikator pakietu aplikacji:
com.google.examples.map-with-marker
. - Upewnij się, że masz dobre połączenie z Wi-Fi lub GPS.
- Aby wyświetlać logi i debugować aplikację, użyj Narzędzi deweloperskich Fluttera.
- Dowiedz się więcej o uruchamianiu aplikacji Flutter.
4. Interpretowanie kodu
Ten kod znajdziesz na GitHub.
- Zaimportuj niezbędne pakiety i inicjuj aplikację.
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(); }
- Utwórz mapę wyśrodkowaną na Sydney w Australii.
class _MyAppState extends State<MyApp> { late GoogleMapController mapController; final LatLng _center = const LatLng(-33.86, 151.20); void _onMapCreated(GoogleMapController controller) { mapController = controller; }
- Dodaj widżety potrzebne do wyświetlania mapy w aplikacji.
@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 } }
- Dodaj widżety markerów, aby dodać widżet do aplikacji.
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 ...
- Dodaj do znacznika okno z informacjami.
const Marker( markerId: const MarkerId("Sydney"), position: LatLng(-33.86, 151.20), infoWindow: InfoWindow( title: "Sydney", snippet: "Capital of New South Wales", ), // InfoWindow ), //Marker ...
Domyślnie pakiet Map Google dla Fluttera wyświetla zawartość okna informacji, gdy użytkownik kliknie znacznik. Jeśli wystarcza Ci działanie domyślne, nie musisz dodawać do markera żadnych metod obsługi kliknięcia.
Gratulacje! Utworzyłeś/utworzyłaś aplikację Flutter, która wyświetla mapę Google z oznacznikiem wskazujący konkretny punkt i dodatkowe informacje w oknie informacji. Poznasz też, jak korzystać z pakietu Map Google dla Fluttera.