在鉴权成功且同意隐私政策的情况下使用定位步骤如下:
import 'package:flutter_bmflocation/bdmap_location_flutter_plugin.dart';
final LocationFlutterPlugin _myLocPlugin = LocationFlutterPlugin();
/* 接受定位回调 */_myLocPlugin.seriesLocationCallback(callback: (BaiduLocation result) {setState(() {_loationResult = result;_locationFinish();});});
Android端
BaiduLocationAndroidOption initAndroidOptions() {BaiduLocationAndroidOption options = BaiduLocationAndroidOption(// 定位模式,可选的模式有高精度、仅设备、仅网络。默认为高精度模式locationMode: BMFLocationMode.hightAccuracy,// 是否需要返回地址信息isNeedAddress: true,// 是否需要返回海拔高度信息isNeedAltitude: true,// 是否需要返回周边poi信息isNeedLocationPoiList: true,// 是否需要返回新版本rgc信息isNeedNewVersionRgc: true,// 是否需要返回位置描述信息isNeedLocationDescribe: true,// 是否使用gpsopenGps: true,// 可选,设置场景定位参数,包括签到场景、运动场景、出行场景locationPurpose: BMFLocationPurpose.sport,// 坐标系coordType: BMFLocationCoordType.bd09ll,// 设置发起定位请求的间隔,int类型,单位ms// 如果设置为0,则代表单次定位,即仅定位一次,默认为0scanspan: 4000);return options;}
iOS端
BaiduLocationIOSOption initIOSOptions() {BaiduLocationIOSOption options = BaiduLocationIOSOption(// 坐标系coordType: BMFLocationCoordType.bd09ll,// 位置获取超时时间locationTimeout: 10,// 获取地址信息超时时间reGeocodeTimeout: 10,// 应用位置类型 默认为automotiveNavigationactivityType: BMFActivityType.automotiveNavigation,// 设置预期精度参数 默认为bestdesiredAccuracy: BMFDesiredAccuracy.best,// 是否需要最新版本rgc数据isNeedNewVersionRgc: true,// 指定定位是否会被系统自动暂停pausesLocationUpdatesAutomatically: false,// 指定是否允许后台定位,// 允许的话是可以进行后台定位的,但需要项目// 配置允许后台定位,否则会报错,具体参考开发文档allowsBackgroundLocationUpdates: true,// 设定定位的最小更新距离distanceFilter: 10,);return options;}
设置定位参数:
Map iosMap = initIOSOptions().getMap();Map androidMap = initAndroidOptions().getMap();_suc = await _myLocPlugin.prepareLoc(androidMap, iosMap);
_suc = await _myLocPlugin.startLocation();
_suc = await _myLocPlugin.stopLocation();
上一篇
下一篇
本篇文章对您是否有帮助?