更新时间:2020年06月23日
坐标系说明
Android定位SDK产品,支持全球定位,能够精准的获取经纬度信息。根据开发者的设置,在国内获得的坐标系类型可以是:国测局坐标、百度墨卡托坐标 和 百度经纬度坐标。在海外地区,只能获得WGS84坐标。请开发者在使用过程中注意坐标选择。定位SDK默认输出GCJ02坐标,地图SDK默认输出BD09ll坐标。
显示定位
通过如下几步您便可以在自己的地图中展示当前所在位置的定位点。
1开启地图的定位图层
myMapController?.showUserLocation(true);
2更新位置
这里的位置信息的经纬度属性coordinate是固定的,如果要获取当前位置真实的经纬度信息,可
以参考定位Flutter插件文档集成定位Flutter插件,并获取当前位置的真实经纬度。
这里的位置信息的经纬度属性coordinate是固定的,如果要获取当前位置真实的经纬度信息,可
以参考定位Flutter插件文档集成定位Flutter插件,并获取当前位置的真实经纬度。
BMFCoordinate coordinate = BMFCoordinate(39.965, 116.404); BMFLocation location = BMFLocation( coordinate: coordinate, altitude: 0, horizontalAccuracy: 5, verticalAccuracy: -1.0, speed: -1.0, course: -1.0); BMFUserLocation userLocation = BMFUserLocation( location: location, ); myMapController?.updateLocationData(userLocation);
3更新定位图层样式
BMFUserlocationDisplayParam displayParam = BMFUserlocationDisplayParam( locationViewOffsetX: 0, locationViewOffsetY: 0, accuracyCircleFillColor: Colors.red, accuracyCircleStrokeColor: Colors.blue, isAccuracyCircleShow: true, locationViewImage: 'resoures/animation_red.png', locationViewHierarchy: BMFLocationViewHierarchy.LOCATION_VIEW_HIERARCHY_BOTTOM); myMapController?.updateLocationViewWithParam(displayParam);
上图为18级缩放下的显示效果。
自定义内容
通过BMFUserlocationDisplayParam类来构造包括定位模式、设置自定义定位图标、精度圈填充颜色以及精度圈边框颜色等属性。
locationViewOffsetX |
定位图标X轴偏移量(屏幕坐标,iOS独有) |
locationViewOffsetY |
定位图标Y轴偏移量(屏幕坐标,iOS独有) |
userTrackingMode |
定位模式 |
enableDirection |
是否允许显示方向信息(Android独有) |
isAccuracyCircleShow |
精度圈是否显示(iOS独有) |
accuracyCircleFillColor |
精度圈填充颜色 |
accuracyCircleStrokeColor |
精度圈边框颜色 |
isRotateAngleValid |
跟随态旋转角度是否生效,默认true(iOS独有) |
locationViewImage |
用户自定义定位图标 |
canShowCallOut |
是否显示气泡(iOS独有) |
locationViewHierarchy |
locationView在mapview上的层级 默认值为LOCATION_VIEW_HIERARCHY_BOTTOM |
定位精度圈大小
定位精度圈大小 ,是根据当前定位精度自动控制的,无法手动控制大小。精度圈越小,代表当前定位精度越高;反之圈越大,代表当前定位精度越低。
定位指针方向
定位指针朝向,是通过获取手机系统陀螺仪数据,控制定位指针的方向,需要开发者自己实现,并不在地图实现范畴。
定位的频次自定义
开发者可以自行设置获取定位的时间间隔,详细的设置方法可以参考定位Flutter插件。