flutter_amap_location

Last updated:

0 purchases

flutter_amap_location Image
flutter_amap_location Images
Add to Cart

Description:

flutter amap location

flutter_amap_location #
A Flutter plugin for AMap location. 高德地图定位插件
在0.0.1版本中,使用了场景定位来获取定位数据。
在0.0.2版本中,修改了接口方法,尽量按高德定位sdk的接口来,这样高德定位SDK的文档也可以提供一定的参考意义。
使用方法 #
引入flutter_amap_location包 #
pubspec.yaml文件中dependencies:下加入
flutter_amap_location:
copied to clipboard
然后在终端下执行
flutter packages get
copied to clipboard
完成后,再引入包
import 'package:flutter_amap_location/flutter_amap_location.dart';
copied to clipboard
引入包以后,只需要在您的flutter程序中增加两个函数,用来处理接收到的数据和发生的错误。
有个文章可以参考一下。

连续定位
高德定位SDK默认使用的是连续定位方式,您只需设置相关定位参数,然后调用startLocation()方法即可;
如果不需要调整定位参数,直接使用默认参数,则更简单,直接调用startLocation(),开始定位,定位成功后结果通过
StreamHandler的事件发送回Flutter端。

// 设置定位参数
// ...
// 开始定位
startLocation();
copied to clipboard
注意:连续定位默认时间间隔是2000ms,可通过setInterval()改变。当不需要定位时,调用stopLocation()停止定位服务。

单次定位
单次定位有两种方法实现,一个是调用setOnceLocation()设置定位选项,一个是通过setOnceLocationLatest()设置定位
选项后,再调用startLocation()启动定位,定位结果同样通过StreamHandler的事件发送回Flutter端。

// 只定位一次
setOnceLocation(true);
startLocation();

// 只定位一次,返回最近3秒内定位结果中精度最高的一次结果
setOnceLocationLatest(true);
startLocation();
copied to clipboard
注意:使用setOnceLocationLatest()时,会同时将setOnceLocation()的参数设置为相同的值;反之则不会。

定位场景
从高德定位sdk3.7.0开始,sdk已经提供了按场景定位的功能,提供了三种预置的场景:签到、出行、运动,默认为无场景。
如果选择用场景定位,则无需设置其它定位参数,sdk会根据选择的场景自动设置参数。
当然开发人员仍可以根据自己的需要设置定位参数。在设置完场景后,最好执行一次stopLocation(),再startLocation(),
以确保场景参数生效。

setLocationPurpose(AMapLocationPurpose.TRANSPORT);
stopLocation();
startLocation();
copied to clipboard

设置定位参数的方法

setOnceLocation() 设置只定位一次
setOnceLocationLatest() 设置只定位一次,返回3秒内的定位结果中精度最高的的结果
setInterval() 设置定位间隔,默认为2000ms
setHttpTimeOut() 设置定位超时时间,默认30s
setLocationMode() 设置定位模式,默认为高精度
setNeedAddress() 设置是否返回地址信息,默认是返回
setMockEnable() 设置是否支持模拟定位,默认是支持
setLocationCacheEnable() 设置是否使用缓存,默认是使用
setLocationPurpose() 设置定位场景
copied to clipboard
注意事项 #

andriod下,要在AndroidManifest.xml增加定位权限

<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--用于写入缓存数据到扩展存储卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--用于申请获取蓝牙信息进行室内定位-->
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
copied to clipboard

增加一个定位service和设置高德定位的apikey

<service android:name="com.amap.api.location.APSService"></service>

<meta-data android:name="com.amap.api.v2.apikey" android:value="你在高德后台获取的apikey">
</meta-data>
copied to clipboard
For help getting started with Flutter, view our online
documentation.
For help on editing plugin code, view the documentation.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.