浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

WebAPI文档全面上新

新增示例代码、在线运行等功能,帮助您实现快速接入,前往体验吧!

体验新版
更新时间:2020年03月25日 
1引入包名
import 'package:flutter_bmflocation/bdmap_location_flutter_plugin.dart';
2初始化地理围栏插件
final GeofenceFlutterPlugin _myGeofencePlugin = GeofenceFlutterPlugin();
3添加地理围栏

圆形地理围栏

LocationCircleGeofenceOption option = 
LocationCircleGeofenceOption(
  // 半径,单位:米(必选)
  radius:  '2000',
  // 围栏中心点(必选)
  centerCoordinate: BMFCoordinate(39.928617, 
  116.40329),
  // 坐标系
  coordType: BMFLocationCoordType.bd09ll,
  // 围栏监听通知类型
  activateAction: GeofenceActivateAction.geofenceAll,
  // 自定义围栏id
  customId: 'circleGeofence_id',
  // 定位是否会被系统自动暂停。(Andorid设置无效)
  pausesLocationUpdatesAutomatically: false,
  // 是否允许后台定位。(Andorid设置无效)
  allowsBackgroundLocationUpdates: true);

  //添加地理围栏
  _myGeofencePlugin.addCircleRegion(option.toMap());

      //地理围栏创建回调
      _myGeofencePlugin.geofenceFinishCallback(
          callback: (BMFGeofence? geofence) {
        if (geofence != null) {
          
     }
 });

多边形地理围栏

List<BMFCoordinate> _coordinateList = [];
_coordinateList.add(BMFCoordinate(40.065, 116.224));
_coordinateList.add(BMFCoordinate(40.125, 116.404));
_coordinateList.add(BMFCoordinate(40.125, 116.404));

LocationPolygonGeofenceOption
option = LocationPolygonGeofenceOption(
  // 坐标点,必须大于等于3个
  coordinateList: _coordinateList,
  // 坐标系
  coordType: BMFLocationCoordType.bd09ll,
  // 围栏监听通知类型
  activateAction: 
GeofenceActivateAction.geofenceAll,
  // 自定义围栏id
  customId: 'polyGeofence_id',
  // 定位是否会被系统自动暂停。(Andorid设置
  无效)
  pausesLocationUpdatesAutomatically: false,
  // 是否允许后台定位。(Andorid设置无效)
  allowsBackgroundLocationUpdates: true);
  //添加地理围栏
  _myGeofencePlugin.addPolygonRegion(option.toMap());

  //地理围栏创建回调
  _myGeofencePlugin.geofenceFinishCallback(
  callback: (BMFGeofence? geofence) {
  });  
44.监听地理围栏
/**
* 监听围栏状态发生改变时回调
* geoFenceRegionStatus:
* 1:进入围栏  2:围栏内停留超过10分钟  3:离开围栏
*/
_myGeofencePlugin.didGeoFencesStatusChangedCallback(
    callback: (Map geofenceResult) {
      if (geofenceResult.isNotEmpty) {
        setState(() {
          Map map = geofenceResult['result'];
          int status = map['geoFenceRegionStatus'] as int;
          switch (status) {
            case 1:
              resultText = '进入地理围栏';
              break;
            case 2:
              resultText = '在围栏内停留超过10分钟';
              break;
              case 3:
                resultText = '在地理围栏之外';
                break;
              case 0:
                resultText = '定位失败';
                break;
              default:
            }
          });
        }
      });
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消