Flutter百度地图集成插件flutter_baidu_mapapi_map的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter百度地图集成插件flutter_baidu_mapapi_map的使用

Getting Started

flutter_baidu_mapapi_map 是一个用于在 Flutter 应用中集成百度地图的插件。它提供了丰富的地图功能,包括显示地图、添加标记、绘制路线等。

安装

首先,在 pubspec.yaml 文件中添加依赖:

dependencies:
  flutter_baidu_mapapi_map: ^最新版本号

然后运行 flutter pub get 命令来安装依赖。

初始化

在使用百度地图插件之前,需要进行一些初始化操作,包括设置用户是否同意 SDK 隐私协议和初始化百度地图 SDK。

设置用户是否同意 SDK 隐私协议

import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart';

BMFMapSDK.setAgreePrivacy(true);

初始化百度地图 SDK

根据平台的不同,初始化方式也有所不同。

iOS
if (Platform.isIOS) {
  BMFMapSDK.setApiKeyAndCoordType('请输入您的AK', BMF_COORD_TYPE.BD09LL);
}
Android
if (Platform.isAndroid) {
  await BMFAndroidVersion.initAndroidVersion();
  BMFMapSDK.setCoordType(BMF_COORD_TYPE.BD09LL);
}

注意:Android 平台上目前不支持通过接口设置 ApiKey,需要在主工程的 AndroidManifest.xml 文件中设置。具体配置方法请参考 百度地图官方文档

获取原生地图版本号

Map? map = await BMFMapVersion.nativeMapVersion;
print('获取原生地图版本号:$map');

示例代码

以下是一个完整的示例代码,展示了如何在 Flutter 应用中集成百度地图。

import 'dart:io' show Platform;

import 'package:flutter/material.dart';
import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart'
    show BMFMapSDK, BMF_COORD_TYPE;
import 'package:flutter_baidu_mapapi_map/flutter_baidu_mapapi_map.dart';
import 'package:flutter_baidu_mapapi_map_example/CustomWidgets/map_appbar.dart';

import 'flutter_map_demo.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  /// 设置用户是否同意SDK隐私协议
  BMFMapSDK.setAgreePrivacy(true);

  // 百度地图sdk初始化鉴权
  if (Platform.isIOS) {
    BMFMapSDK.setApiKeyAndCoordType('请输入您的AK', BMF_COORD_TYPE.BD09LL);
  } else if (Platform.isAndroid) {
    /// 初始化获取Android 系统版本号
    await BMFAndroidVersion.initAndroidVersion();
    // Android 目前不支持接口设置Apikey,
    // 请在主工程的Manifest文件里设置,详细配置方法请参考官网(https://lbsyun.baidu.com/)demo
    BMFMapSDK.setCoordType(BMF_COORD_TYPE.BD09LL);
  }
  Map? map = await BMFMapVersion.nativeMapVersion;
  print('获取原生地图版本号:$map');
  runApp(new MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: BMFAppBar(
          title: '百度地图flutter插件Demo',
          isBack: false,
        ),
        body: FlutterBMFMapDemo(),
      ),
    );
  }
}

使用示例

显示地图

flutter_map_demo.dart 文件中,定义一个显示地图的页面:

import 'package:flutter/material.dart';
import 'package:flutter_baidu_mapapi_map/flutter_baidu_mapapi_map.dart';
import 'package:flutter_baidu_mapapi_map_example/CustomWidgets/map_appbar.dart';

class FlutterBMFMapDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BMFMapWidget(
      onBMFMapCreated: (controller) {
        controller.setMapStatus(
          BMFMapStatus(
            zoom: 15,
            target: BMFCoordinate(39.917215, 116.380349),
          ),
        );
      },
      mapOptions: BMFMapOptions(
        center: BMFCoordinate(39.917215, 116.380349),
        zoomLevel: 15,
      ),
    );
  }
}

运行应用

完成上述步骤后,运行你的 Flutter 应用,你应该能够看到一个显示百度地图的页面。

参考文档

更多关于 flutter_baidu_mapapi_map 插件的详细信息和高级用法,请参考 百度地图官方文档插件文档

希望这些信息对你有所帮助!如果有任何问题,欢迎随时提问。


更多关于Flutter百度地图集成插件flutter_baidu_mapapi_map的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter百度地图集成插件flutter_baidu_mapapi_map的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中集成百度地图插件flutter_baidu_mapapi_map可以让你轻松地在应用中显示和操作地图。以下是一个基本的代码案例,展示了如何设置和使用这个插件。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加flutter_baidu_mapapi_map依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_baidu_mapapi_map: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

2. 配置Android和iOS平台

Android

android/app/src/main/AndroidManifest.xml中添加百度地图的API Key:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <application
        ... >
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="你的百度地图API Key"/>
        ...
    </application>

    ...
</manifest>

确保在android/app/build.gradle文件中配置了正确的minSdkVersiontargetSdkVersion,通常百度地图要求至少API 16。

iOS

ios/Runner/Info.plist中添加百度地图的API Key:

<key>io.flutter.embedded_views_preview</key>
<true/>
<key>BAIDU_MAP_API_KEY</key>
<string>你的百度地图API Key</string>

3. 使用百度地图插件

创建一个新的Flutter页面,并在其中使用百度地图插件。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:flutter_baidu_mapapi_map/flutter_baidu_mapapi_map.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: BaiduMapPage(),
    );
  }
}

class BaiduMapPage extends StatefulWidget {
  @override
  _BaiduMapPageState createState() => _BaiduMapPageState();
}

class _BaiduMapPageState extends State<BaiduMapPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('百度地图集成示例'),
      ),
      body: BaiduMap(
        // 初始化地图中心点
        initialCameraPosition: CameraPosition(
          target: LatLng(39.9042, 116.4074), // 北京天安门坐标
          zoom: 16.0,
        ),
        // 地图配置选项
        mapType: BMFMapType.normalMap, // 普通地图
        // 其他配置...
        onMapCreated: (BMFMapController controller) {
          // 地图创建完成后的回调
          print('地图创建成功');
          // 可以在这里添加更多地图操作,比如添加标记等
        },
      ),
    );
  }
}

4. 运行应用

确保你的开发环境已经正确配置,包括Android SDK和iOS模拟器或设备。然后运行flutter run来启动你的应用。

这个示例展示了如何在Flutter应用中集成并显示百度地图。你可以根据需要进一步自定义和扩展地图功能,比如添加标记、覆盖物、路线规划等。更多详细的功能和配置请参考flutter_baidu_mapapi_map插件的官方文档。

回到顶部