今天这篇博客说的是地图和定位的问题,不一样的是,这是在flutter中处理地图,定位,反地理编码。
先看下做出来的效果如何:
目前用到的都是模拟数据,真实场景大家自己接入数据即可。
这里的功能分为几部分:
1.百度地图;
2.定位功能;(百度地图提供了定位功能,需要单独引入,但是这里选择使用其他的基于LBS的定位)
3.反地理编码;
4.抽屉功能;(就是这个可以拖拽的列表,可展开,可折叠)
5.滑动按钮;
6.插旗和更新位置信息;
7.总结和页面完整代码。
然后我们来一步步说明怎么来使用这些功能:
1.百度地图
百度地图flutter插件接入地址:http://lbsyun.baidu.com/index.php?title=flutter/loc
至于接入的部分,大家参照文档来接入,不再赘述。
引入地图库:
flutter_baidu_mapapi_map: ^2.0.0
地图在接入后需要初始化:
// 百度地图sdk初始化鉴权
if (Platform.isIOS) {
BMFMapSDK.setApiKeyAndCoordType(
'xxxxxxxxxxxxxxxxxxxx', BMF_COORD_TYPE.COMMON);
} else if (Platform.isAndroid) {
// Android 目前不支持接口设置Apikey,
// 请在主工程的Manifest文件里设置,详细配置方法请参考官网(https://lbsyun.baidu.com/)demo
BMFMapSDK.setCoordType(BMF_COORD_TYPE.COMMON);
}
这样就完成了地图的接入准备工作。
接着我们来创建地图:
@override
Container generateMap() {
return Container(
height: screenSize.height,
width: screenSize.width,
child: BMFMapWidget(
onBMFMapCreated: (controller) {
onBMFMapCreated(controller);
},
mapOptions: initMapOptions(latitude: dposition?.latitude ?? (widget.latitude ?? 39.928617), longitude: dposition?.longitude ?? (widget.longitude ?? 1