## 前述
1. 高德定位Flutter插件
2. 登录[高德开放平台官网](https://lbs.amap.com/api/)分别申请[Android端](https://lbs.amap.com/api/android-location-sdk/guide/create-project/get-key/)和[iOS端](https://lbs.amap.com/api/ios-location-sdk/guide/create-project/get-key)的key
3. 如需了解高德定位SDK的相关功能,请参阅[Android定位SDK开发指南](https://lbs.amap.com/api/android-location-sdk/locationsummary/)和[iOS定位SDK开发指南](https://lbs.amap.com/api/ios-location-sdk/summary/)
## 使用高德定位Flutter插件
* 请参考[在Flutter里使用Packages](https://flutter.cn/docs/development/packages-and-plugins/using-packages), 引入amap_flutter_location插件
* 引入高德定位SDK,Android平台请参考[Android Sudio配置工程](https://lbs.amap.com/api/android-location-sdk/guide/create-project/android-studio-create-project), iOS平台请参考[ios安装定位SDK](https://lbs.amap.com/api/ios-location-sdk/guide/create-project/cocoapods)
### 常见问题:
1、[在iOS设备上运行或者运行iOS工程遇到: `Invalid `Podfile` file: cannot load such file - /flutter/packages/flutter_tools/bin/podhelper`](https://github.com/flutter/flutter/issues/59522)
```
$ rm ios/Podfile
$ flutter build ios
```
### 在需要的定位功能的页面中引入定位Flutter插件的dart类
``` Dart
import 'package:amap_flutter_location/amap_flutter_location.dart';
import 'package: amap_flutter_location/amap_location_option.dart';
```
## 接口说明
### 设置定位参数
``` Dart
/// 设置定位参数
void setLocationOption(AMapLocationOption locationOption)
```
> 将您设置的参数传递到原生端对外接口,目前支持以下定位参数
``` Dart
//// 是否需要地址信息,默认true
bool needAddress = true;
///逆地理信息语言类型
///默认[GeoLanguage.DEFAULT] 自动适配
///可选值:
///
[GeoLanguage.DEFAULT] 自动适配
///[GeoLanguage.EN] 英文
///[GeoLanguage.ZH] 中文
GeoLanguage geoLanguage;
///是否单次定位
///默认值:false
bool onceLocation = false;
///Android端定位模式, 只在Android系统上有效
///默认值:[AMapLocationMode.Hight_Accuracy]
///可选值:
///[AMapLocationMode.Battery_Saving]
///[AMapLocationMode.Device_Sensors]
///[AMapLocationMode.Hight_Accuracy]
AMapLocationMode locationMode;
///Android端定位间隔
///单位:毫秒
///默认:2000毫秒
int locationInterval = 2000;
///iOS端是否允许系统暂停定位
///默认:false
bool pausesLocationUpdatesAutomatically = false;
/// iOS端期望的定位精度, 只在iOS端有效
/// 默认值:最高精度
/// 可选值:
/// [DesiredAccuracy.Best] 最高精度
/// [DesiredAccuracy.BestForNavigation] 适用于导航场景的高精度
/// [DesiredAccuracy.NearestTenMeters] 10米
/// [DesiredAccuracy.Kilometer] 1000米
/// [DesiredAccuracy.ThreeKilometers] 3000米
DesiredAccuracy desiredAccuracy = DesiredAccuracy.Best;
/// iOS端定位最小更新距离
/// 单位:米
/// 默认值:-1,不做限制
double distanceFilter = -1;
///iOS 14中设置期望的定位精度权限
AMapLocationAccuracyAuthorizationMode desiredLocationAccuracyAuthorizationMode = AMapLocationAccuracyAuthorizationMode.FullAccuracy;
/// iOS 14中定位精度权限由模糊定位升级到精确定位时,需要用到的场景key fullAccuracyPurposeKey 这个key要和plist中的配置一样
String fullAccuracyPurposeKey = "";
```
### 开始定位
``` Dart
void startLocation()
```
### 停止定位
``` Dart
void stopLocation()
```
### 销毁定位
> 高德定位Flutter插件,支持多实例,请在weidet执行dispose()时调用当前定位插件的销毁方法
``` Dart
void destroy()
```
### 定位结果获取
> 原生端以键值对map的形式回传定位结果到Flutter端, 通过onLoationChanged返回定位结果
``` Dart
Stream