amap_map/example/lib/pages/map/map_my_location.dart

56 lines
1.3 KiB
Dart
Raw Permalink Normal View History

2023-12-22 21:23:24 +08:00
import 'package:amap_map/amap_map.dart';
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
2023-12-30 07:54:59 +08:00
class MyLocationPage extends StatefulWidget {
2024-08-26 09:55:49 +08:00
MyLocationPage({super.key});
2023-12-22 21:23:24 +08:00
@override
2024-08-26 09:55:49 +08:00
State<MyLocationPage> createState() => _BodyState();
2023-12-22 21:23:24 +08:00
}
2023-12-30 07:54:59 +08:00
class _BodyState extends State<MyLocationPage> {
AMapController? _mapController;
2023-12-22 21:23:24 +08:00
@override
void initState() {
super.initState();
_requestLocaitonPermission();
}
@override
void reassemble() {
super.reassemble();
_requestLocaitonPermission();
}
void _requestLocaitonPermission() async {
PermissionStatus status = await Permission.location.request();
print('permissionStatus=====> $status');
}
@override
Widget build(BuildContext context) {
final AMapWidget amap = AMapWidget(
myLocationStyleOptions: MyLocationStyleOptions(
true,
circleFillColor: Colors.lightBlue,
circleStrokeColor: Colors.blue,
circleStrokeWidth: 1,
),
onLocationChanged: (loc) {
if (isLocationValid(loc)) {
print(loc);
_mapController?.moveCamera(CameraUpdate.newLatLng(loc.latLng));
}
},
onMapCreated: (controller) {
_mapController = controller;
},
2023-12-22 21:23:24 +08:00
);
2023-12-30 07:54:59 +08:00
2023-12-22 21:23:24 +08:00
return Container(
child: amap,
);
}
}