Skip to content

Instantly share code, notes, and snippets.

@diego-lipinski-de-castro
Created November 5, 2021 18:00
Show Gist options
  • Save diego-lipinski-de-castro/b82075b832f669045c9f020b09d40e66 to your computer and use it in GitHub Desktop.
Save diego-lipinski-de-castro/b82075b832f669045c9f020b09d40e66 to your computer and use it in GitHub Desktop.
import 'dart:typed_data';
import 'package:avatar_glow/avatar_glow.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:refuel/components/custom_search_bar.dart';
import 'package:refuel/components/custom_tab_bar.dart';
import 'package:refuel/utils/maps.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
GoogleMapController? _controller;
Map<MarkerId, Marker> markers = <MarkerId, Marker>{};
Uint8List? markerIcon;
bool autoCamera = true;
@override
void initState() {
super.initState();
Geolocator.requestPermission();
}
void _init(controller) async {
_controller = controller;
_controller?.setMapStyle(MapsUtil.style());
markerIcon = await MapsUtil.getMarker();
final MarkerId markerId = MarkerId('user_location');
Geolocator.getPositionStream().listen((event) {
setState(() {
markers[markerId] = Marker(
icon: BitmapDescriptor.fromBytes(markerIcon!),
markerId: markerId,
position: LatLng(event.latitude, event.longitude),
anchor: Offset(0.5, 1.0),
// rotation: event.heading,
);
});
if (autoCamera) {
_controller?.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: LatLng(event.latitude, event.longitude),
bearing: event.heading,
zoom: 16,
),
),
);
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: [
GoogleMap(
onMapCreated: (controller) {
_init(controller);
},
initialCameraPosition: CameraPosition(
// target: LatLng(-26.4814729, -49.0683848),
target: LatLng(37.33244004, -122.05984991),
zoom: 16,
),
onCameraIdle: () {
print('onCameraIdle');
},
onCameraMoveStarted: () {
print('onCameraMoveStarted');
},
onTap: (position) {
print('onTap');
},
onLongPress: (position) {
print('onLongPress');
},
mapType: MapType.normal,
myLocationEnabled: false,
myLocationButtonEnabled: false,
compassEnabled: false,
markers: Set<Marker>.of(markers.values),
),
// Center(
// child: AvatarGlow(
// glowColor: Colors.white.withOpacity(0.5),
// endRadius: 50,
// duration: Duration(milliseconds: 2000),
// repeat: true,
// showTwoGlows: true,
// repeatPauseDuration: Duration(milliseconds: 100),
// child: Material(
// elevation: 0,
// shape: CircleBorder(),
// color: Colors.transparent,
// child: Image.asset(
// 'assets/images/marker_white.png',
// width: 50,
// ),
// ),
// ),
// ),
// CustomSearchBar(),
CustomTabBar(),
],
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment