版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1、
amap_location: ^0.2.0 #高德地图
2、
import 'package:amap_location/amap_location.dart';//高德
3、
@override
void initState() {
startPosition();//开启位置
_checkDate.text = getNowDate();
super.initState();
_listWgCheckUser();
}
startPosition()async{
await AMapLocationClient.startup(new AMapLocationOption( desiredAccuracy:CLLocationAccuracy.kCLLocationAccuracyHundredMeters ));
}
getLocation()async{
print("准备 获取 GPS");
AMapLocation d = await AMapLocationClient.getLocation(true);
var lat = d.latitude;
var lng = d.longitude;
if(isNotEmpty(lat)&&isNotEmpty(lng)){
gpsX = lat.toString();
gpsY = lng.toString();
_position.text = d.AOIName;
setState(() {
print(d.AOIName);
print(_position.text);
});
}else{
getFloat('获取位置失败,请检测GPS是否开启!');
}
}
@override
void dispose() {
//这里可以停止定位
AMapLocationClient.stopLocation();
super.dispose();
}
4、开启权限
permission_handler: ^3.2.0 #检测权限
import 'package:permission_handler/permission_handler.dart';//权限
//检测权限状态
void checkPersmission() async {
// 申请权限
Map<PermissionGroup, PermissionStatus> permissions =
await PermissionHandler().requestPermissions([PermissionGroup.location]);
// 申请结果
PermissionStatus permission =
await PermissionHandler().checkPermissionStatus(PermissionGroup.location);
if (permission == PermissionStatus.granted) {
getLocation();
} else {
getFloat('定位权限申请被拒绝');
bool isOpened = await PermissionHandler().openAppSettings();//打开应用设置
}
}