1.引入依赖
1 2
| flutter_bmfmap: ^1.0.2 flutter_bmfutils: ^1.0.2
|
获取秘钥
安卓获取参考文档
配置
在安卓目录AndroidManifest.xml
文件中,配置权限与上一步获取的AK
1 2 3 4 5 6 7
| <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 --> <uses-permission android:name="android.permission.INTERNET" />
|
1 2 3
| <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="VGtYqXAMquUFPbx0fk1oZhviGlQTMYcI" />
|

创建地图容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| import 'package:flutter/material.dart'; import 'package:flutter_bmfmap/BaiduMap/bmfmap_map.dart'; import 'package:flutter_bmfbase/BaiduMap/bmfmap_base.dart';
class BasicMap extends StatefulWidget { @override _BasicMapState createState() => _BasicMapState(); }
class _BasicMapState extends State<BasicMap> { Size screenSize; BMFMapOptions mapOptions; BMFMapController myMapController;
@override void initState() { super.initState(); mapOptions = BMFMapOptions( center: BMFCoordinate(34.263161, 108.948024), zoomLevel: 12, mapPadding: BMFEdgeInsets(left: 30, top: 0, right: 30, bottom: 0)); }
/// 创建完成回调 void onBMFMapCreated(BMFMapController controller) { myMapController = controller;
/// 地图加载回调 myMapController?.setMapDidLoadCallback(callback: () { print('mapDidLoad-地图加载完成'); }); }
@override Widget build(BuildContext context) { screenSize = MediaQuery.of(context).size; return Container( height: screenSize.height, width: screenSize.width, child: BMFMapWidget( onBMFMapCreated: (controller) { onBMFMapCreated(controller); }, mapOptions: mapOptions, ), ); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), home: BasicMap(), ); } }
|
运行测试

参考文档
- 百度地图官网Flutter插件文档
- 示例demo下载