Android定位SDK产品,支持全球定位,能够精准的获取经纬度信息。根据开发者的设置,在国内获得的坐标系类型可以是:国测局坐标、百度墨卡托坐标 和 百度经纬度坐标。在海外地区,只能获得WGS84坐标。请开发者在使用过程中注意坐标选择。定位SDK默认输出GCJ02坐标,地图SDK默认输出BD09ll坐标。
通过如下几步您便可以在自己的地图中展示当前所在位置的定位点。
myMapController?.showUserLocation(true);
这里的位置信息的经纬度属性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);
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插件。
上一篇
下一篇
本篇文章对您是否有帮助?