import
'dart:async'
;
import
'dart:typed_data'
;
import
'dart:ui'
as ui;
import
'package:flutter/material.dart'
;
import
'package:flutter/services.dart'
;
import
'package:geolocator/geolocator.dart'
;
import
'package:google_maps_flutter/google_maps_flutter.dart'
;
class
HomePage extends StatefulWidget {
const
HomePage({Key? key}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
class
_HomePageState extends State<HomePage> {
Completer<GoogleMapController> _controller = Completer();
static
final CameraPosition _kGoogle =
const
CameraPosition(
target: LatLng(19.0759837, 72.8776559),
zoom: 15,
);
Uint8List? marketimages;
List<String> images = [
'images/car.png'
,
'images/bus.png'
,
'images/travelling.png'
,
'images/bycicle.png'
,
'images/food-delivery.png'
];
final List<Marker> _markers = <Marker>[];
final List<LatLng> _latLen = <LatLng>[
LatLng(19.0759837, 72.8776559),
LatLng(28.679079, 77.069710),
LatLng(26.850000, 80.949997),
LatLng(24.879999, 74.629997),
LatLng(16.166700, 74.833298),
LatLng(12.971599, 77.594563),
];
Future<Uint8List> getImages(String path,
int
width) async{
ByteData data = await rootBundle.load(path);
ui.Codec codec = await ui.instantiateImageCodec(data.buffer.asUint8List(), targetHeight: width);
ui.FrameInfo fi = await codec.getNextFrame();
return
(await fi.image.toByteData(format: ui.ImageByteFormat.png))!.buffer.asUint8List();
}
@override
void
initState() {
super.initState();
loadData();
}
loadData() async{
for
(
int
i=0 ;i<images.length; i++){
final Uint8List markIcons = await getImages(images[i], 100);
_markers.add(
Marker(
markerId: MarkerId(i.toString()),
icon: BitmapDescriptor.fromBytes(markIcons),
position: _latLen[i],
infoWindow: InfoWindow(
title:
'Location: '
+i.toString(),
),
)
);
setState(() {
});
}
}
@override
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(
backgroundColor: Color(0xFF0F9D58),
title: Text(
"GFG"
),
),
body: Container(
child: SafeArea(
child: GoogleMap(
initialCameraPosition: _kGoogle,
markers: Set<Marker>.of(_markers),
mapType: MapType.normal,
myLocationEnabled:
true
,
myLocationButtonEnabled:
true
,
compassEnabled:
true
,
onMapCreated: (GoogleMapController controller){
_controller.complete(controller);
},
),
),
),
);
}
}