[flutter] 플러터에서 지도에 다중 마커 표시하기
플러터를 사용하여 지도에 다중 마커를 표시하는 기능을 구현하는 방법에 대해 알아보겠습니다.
필요한 패키지 추가하기
우선, 다중 마커를 표시하기 위해 플러터 프로젝트에 google_maps_flutter
패키지를 추가해야 합니다. pubspec.yaml
파일에 다음과 같이 패키지를 추가합니다.
dependencies:
google_maps_flutter: ^2.0.6
이후, 터미널에서 flutter pub get
명령어를 실행하여 패키지를 다운로드 받습니다.
다중 마커 표시하기
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MapSample(),
);
}
}
class MapSample extends StatefulWidget {
@override
State<MapSample> createState() => MapSampleState();
}
class MapSampleState extends State<MapSample> {
late GoogleMapController mapController;
final Set<Marker> _markers = {};
void _onMapCreated(GoogleMapController controller) {
mapController = controller;
setState(() {
_markers.add(Marker(
markerId: MarkerId('id-1'),
position: LatLng(37.7749, -122.4194),
infoWindow: InfoWindow(title: 'San Francisco'),
icon: BitmapDescriptor.defaultMarker,
));
_markers.add(Marker(
markerId: MarkerId('id-2'),
position: LatLng(34.0522, -118.2437),
infoWindow: InfoWindow(title: 'Los Angeles'),
icon: BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueOrange),
));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Map Sample'),
backgroundColor: Colors.green[700],
),
body: GoogleMap(
onMapCreated: _onMapCreated,
initialCameraPosition: CameraPosition(
target: LatLng(37.7749, -122.4194),
zoom: 7,
),
markers: _markers,
),
);
}
}
위 코드는 플러터 앱에서 google_maps_flutter
패키지를 사용하여 지도에 다중 마커를 추가하는 예제입니다. 예제에서는 MapSample
위젯을 생성하여 GoogleMap
위젯을 사용하여 지도를 표시하고, _onMapCreated
메서드를 사용하여 다중 마커를 추가합니다.
위 예시에서 Marker
클래스의 인스턴스를 사용하여 각 마커의 위치, 정보창 및 아이콘을 설정할 수 있습니다.
위 코드를 실행하면 플러터 앱이 시작되고, 초기 지도 위치에 두 개의 마커가 추가된 지도가 표시됩니다.
이제 플러터를 사용하여 지도에 다중 마커를 표시하는 방법에 대한 이해가 높아졌을 것입니다.