fbdplugin 0.0.4
fbdplugin: ^0.0.4 copied to clipboard
百度地图功能插件.
example/lib/main.dart
import 'dart:io';
import 'package:fbdplugin_example/home_page.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:fbdplugin/fbdplugin.dart';
import 'package:flutter_bmflocation/flutter_bmflocation.dart';
import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart'
show BMFMapSDK, BMF_COORD_TYPE;
import 'package:permission_handler/permission_handler.dart';
void initBaiduMap() async{
/// 动态申请定位权限
requestPermission();
LocationFlutterPlugin myLocPlugin = LocationFlutterPlugin();
/// 设置用户是否同意SDK隐私协议
/// since 3.1.0 开发者必须设置
BMFMapSDK.setAgreePrivacy(true);
myLocPlugin.setAgreePrivacy(true);
// 百度地图sdk初始化鉴权
if (Platform.isIOS) {
myLocPlugin.authAK('bd_ios_ak');
BMFMapSDK.setApiKeyAndCoordType('bd_ios_ak', BMF_COORD_TYPE.BD09LL);
} else if (Platform.isAndroid) {
/// 初始化获取Android 系统版本号,如果低于10使用TextureMapView 等于大于10使用Mapview
// await BMFAndroidVersion.initAndroidVersion();
// Android 目前不支持接口设置Apikey,
// 请在主工程的Manifest文件里设置,详细配置方法请参考官网(https://lbsyun.baidu.com/)demo
BMFMapSDK.setCoordType(BMF_COORD_TYPE.BD09LL);
}
}
// 动态申请定位权限
void requestPermission() async {
// 申请权限
bool hasLocationPermission = await requestLocationPermission();
if (hasLocationPermission) {
// 权限申请通过
} else {}
}
/// 申请定位权限
/// 授予定位权限返回true, 否则返回false
Future<bool> requestLocationPermission() async {
//获取当前的权限
var status = await Permission.location.status;
if (status == PermissionStatus.granted) {
//已经授权
return true;
} else {
//未授权则发起一次申请
status = await Permission.location.request();
if (status == PermissionStatus.granted) {
return true;
} else {
return false;
}
}
}
void main(){
WidgetsFlutterBinding.ensureInitialized();
initBaiduMap();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}