Под термином «Google Maps Flutter» подразумевается использование API Google Maps в рамках Flutter, которое позволяет разработчикам интегрировать карты и службы определения местоположения в свои приложения Flutter. Вот несколько методов, которые можно использовать с примерами кода:
- Отображение карты.
Чтобы отобразить карту с помощью Google Maps Flutter, вы можете использовать виджетGoogleMap. Вот пример:
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class MapScreen extends StatefulWidget {
@override
_MapScreenState createState() => _MapScreenState();
}
class _MapScreenState extends State<MapScreen> {
GoogleMapController mapController;
@override
Widget build(BuildContext context) {
return Scaffold(
body: GoogleMap(
onMapCreated: (GoogleMapController controller) {
mapController = controller;
},
initialCameraPosition: CameraPosition(
target: LatLng(37.7749, -122.4194),
zoom: 12,
),
),
);
}
}
- Добавление маркеров.
Вы можете добавлять маркеры на карту, чтобы указать определенные местоположения. Вот пример:
Marker marker = Marker(
markerId: MarkerId('marker_1'),
position: LatLng(37.7749, -122.4194),
infoWindow: InfoWindow(title: 'San Francisco'),
);
GoogleMap(
markers: {marker},
// ... other properties
)
- Прослушивание событий на карте:
Вы можете прослушивать различные события на карте, например изменение положения камеры или нажатие на маркер. Вот пример:
GoogleMap(
onCameraMove: (CameraPosition position) {
// Do something when the camera position changes
},
onMarkerTapped: (MarkerId markerId) {
// Do something when a marker is tapped
},
// ... other properties
)
- Рисование полилинии.
Вы можете рисовать на карте полилинии, чтобы соединить несколько точек. Вот пример:
Polyline polyline = Polyline(
polylineId: PolylineId('polyline_1'),
points: [
LatLng(37.7749, -122.4194),
LatLng(37.3382, -121.8863),
LatLng(37.7749, -122.4194),
],
color: Colors.blue,
width: 3,
);
GoogleMap(
polylines: {polyline},
// ... other properties
)
- Геокодирование и обратное геокодирование.
Вы можете использовать API геокодирования Карт Google для преобразования адресов в географические координаты (геокодирование) и наоборот (обратное геокодирование). Вот пример:
import 'package:geocoding/geocoding.dart';
List<Location> locations = await locationFromAddress('1600 Amphitheatre Parkway, Mountain View, CA');
Location location = locations.first;
double latitude = location.latitude;
double longitude = location.longitude;