开发 Flutter插件 开发指南 定位Flutter插件 接口说明

接口说明 最后更新时间: 2021年11月23日

设置隐私合规接口

  /// 设置是否已经包含高德隐私政策并弹窗展示显示用户查看,如果未包含或者没有弹窗展示,高德定位SDK将不会工作
  /// 高德SDK合规使用方案请参考官网地址:https://lbs.amap.com/news/sdkhgsy
  /// <b>必须保证在调用定位功能之前调用, 建议首次启动App时弹出《隐私政策》并取得用户同意</b>
  /// 高德SDK合规使用方案请参考官网地址:https://lbs.amap.com/news/sdkhgsy
  /// [hasContains] 隐私声明中是否包含高德隐私政策说明
  /// [hasShow] 隐私权政策是否弹窗展示告知用户
  static void updatePrivacyShow(bool hasContains, bool hasShow) {
    _methodChannel
        .invokeMethod('updatePrivacyStatement', {'hasContains': hasContains, 'hasShow': hasShow});
  }

  /// 设置是否已经取得用户同意,如果未取得用户同意,高德定位SDK将不会工作
  /// 高德SDK合规使用方案请参考官网地址:https://lbs.amap.com/news/sdkhgsy
  /// <b>必须保证在调用定位功能之前调用, 建议首次启动App时弹出《隐私政策》并取得用户同意</b>
  /// [hasAgree] 隐私权政策是否已经取得用户同意
  static void updatePrivacyAgree(bool hasAgree) {
    _methodChannel
        .invokeMethod('updatePrivacyStatement', {'hasAgree': hasAgree});
  }

设置定位参数

/// 设置定位参数
 void setLocationOption(AMapLocationOption locationOption)

将您设置的参数传递到原生端对外接口,目前支持以下定位参数

/// 是否需要地址信息,默认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;

开始定位

void startLocation()

停止定位

void stopLocation()

销毁定位

高德定位Flutter插件,支持多实例,请在weidet执行dispose()时调用当前定位插件的销毁方法 

void destroy()

定位结果返回

原生端以键值对map的形式回传定位结果到Flutter端

Stream<Map<String, Object>> onLocationChanged()

Flutter端获取定位结果

_locationPlugin
        .onLocationChanged()
        .listen((Map<String, Object> result) {
          ///result即为定位结果
        }

定位结果键值参数说明

字段名称

类型

含义

备注

callBackTime

String

定位结果回调时间


locationTime

String

定位时间


locationType

int

定位类型

iOS只会返回1

Android返回类型请参考官网说明:https://lbs.amap.com/api/android-location-sdk/guide/utilities/location-type

latitude

double

维度


longitude

double

维度


accuracy

double

精确度(定位半径)


altitude

double

海拔高度

Android: 定位类型为非GPS时,返回0

bearing

double

角度信息

 Android: 定位类型为非GPS时,返回0

speed

double

速度信息

 Android: 定位类型为非GPS时,返回0

country

String

国家

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

province

String

省份 

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

city

String

城市

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

district

String 

区县

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

street

String 

街道名称

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

streetNumber

String 

门牌号

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

cityCode

String 

城市编码

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

adCode

String 

地域编码

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

address

String 

地址信息

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

description

String

位置语义描述

Android:定位类型为GPS时有可能返回空

iOS:连续定位时有可能返回空

errorCode

int 

错误码

错误码信息请参考:

Android:https://lbs.amap.com/api/android-location-sdk/guide/utilities/errorcode
iOS:https://lbs.amap.com/api/ios-location-sdk/guide/utilities/errorcode

errorInfo

String

错误信息


返回顶部 示例中心 常见问题 智能客服 公众号
二维码