/
home_screen.dart
57 lines (49 loc) · 1.69 KB
/
home_screen.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
late GoogleMapController _controller;
GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
final _mapMarkerSC = StreamController<List<Marker>>();
StreamSink<List<Marker>> get _mapMarkerSink => _mapMarkerSC.sink;
Stream<List<Marker>> get mapMarkerStream => _mapMarkerSC.stream;
@override
Widget build(BuildContext context) {
final currentLocationCamera = const CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
zoom: 14.4746,
);
final googleMap = StreamBuilder<List<Marker>>(
stream: mapMarkerStream,
builder: (context, snapshot) {
return GoogleMap(
mapType: MapType.normal,
initialCameraPosition: currentLocationCamera,
rotateGesturesEnabled: false,
tiltGesturesEnabled: false,
mapToolbarEnabled: false,
myLocationEnabled: false,
myLocationButtonEnabled: false,
zoomControlsEnabled: false,
onMapCreated: (GoogleMapController controller) {
_controller = controller;
},
markers: Set<Marker>.of(snapshot.data ?? []),
padding: EdgeInsets.all(8),
);
});
return Scaffold(
key: scaffoldKey,
body: Stack(
children: [
googleMap,
],
),
);
}
}