Flutter腾讯地图集成插件byn_tencent_map的使用

Flutter腾讯地图集成插件byn_tencent_map的使用

用于在iOS和Android应用程序中集成腾讯地图的Flutter插件。目前只集成了单次获取定位功能,地图选点功能。

开始使用

Android

  1. 申请一个key 请访问腾讯地图开发指南申请一个key。

  2. 在AndroidManifest.xml中配置keyAndroidManifest.xml文件的<application>标签内添加以下代码(将value替换为申请到的key):

    <meta-data
        android:name="TencentMapSDK"
        android:value="*****-*****-*****-*****-*****-*****"/>
    

iOS

  1. 申请一个key 请访问腾讯地图开发指南申请一个key。

  2. 在info.plist中增加权限描述Info.plist文件中增加以下代码:

    <key>NSLocationWhenInUseUsageDescription</key>
    <string>要用定位</string>
    
  3. 在dart文件中设置key

    import 'package:byn_tencent_map/byn_tencent_map.dart';
    import 'package:flutter/material.dart';
    import 'dart:io';
    
    void main(){
      if (Platform.isIOS) {
        TencentMap.initIOSSdk("K7LBZ-6OXKZ-YHIXM-7K5IR-LU4T7-UDFH4");
      }
      runApp(const MyApp());
    }
    

如何使用

  1. 导入dart包 修改pubspec.yaml文件,增加依赖:

    dependencies:
      byn_tencent_map: ^0.1.3
    
  2. 在要用的地方导入

    import 'package:byn_tencent_map/byn_tencent_map.dart';
    
  3. 单次获取定位

    MapPoiData? data = await TencentMap.getLocation();
    
  4. 添加地图选点

    TencentMapView(
      onPick: (data) {
        print("TencentMap onPick poi: ${data.toJson()}");
      },
    )
    

完整示例代码

import 'dart:io';
import 'package:byn_tencent_map/byn_tencent_map.dart';
import 'package:flutter/material.dart';
import 'dart:async';

void main() {
  if (Platform.isIOS) {
    TencentMap.initIOSSdk("K7LBZ-6OXKZ-YHIXM-7K5IR-LU4T7-UDFH4");
  }
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

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

  // 获取定位信息
  Future<void> fetchLocation() async {
    MapPoiData? location;
    try {
      location = await TencentMap.getLocation();
    } on PlatformException {
    }
    print("location ---- ${location?.toJson()}");
    if (!mounted) return;
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        resizeToAvoidBottomInset: false,
        appBar: AppBar(
          title: const Text('Plugin example app'),
          actions: [
            IconButton(
              onPressed: () {
                fetchLocation();
              },
              icon: const Icon(Icons.location_on_outlined),
            ),
          ],
        ),
        body: TencentMapView(
          onPick: (data) {
            print("demo onPick ---- ${data.toJson()}");
          },
        ),
      ),
    );
  }
}

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

1 回复

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


在Flutter中集成腾讯地图,可以使用第三方插件 byn_tencent_map。以下是使用 byn_tencent_map 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  byn_tencent_map: ^0.0.1  # 请检查最新版本

然后运行 flutter pub get 来获取依赖。

2. 配置 Android 和 iOS

Android 配置

  1. android/app/src/main/AndroidManifest.xml 文件中添加以下权限和腾讯地图的 AppKey:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <application
        android:label="YourApp"
        android:icon="@mipmap/ic_launcher">
        
        <meta-data
            android:name="com.tencent.map.sdk.appid"
            android:value="YOUR_TENCENT_MAP_APP_KEY" />
            
    </application>
</manifest>

iOS 配置

  1. ios/Runner/Info.plist 文件中添加以下权限和腾讯地图的 AppKey:
<key>NSLocationWhenInUseUsageDescription</key>
<string>需要使用您的位置来展示地图</string>

<key>TencentMapSDKAppID</key>
<string>YOUR_TENCENT_MAP_APP_KEY</string>

3. 使用插件

在你的 Flutter 代码中,你可以使用 TencentMap 小部件来展示地图。以下是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('腾讯地图示例'),
        ),
        body: TencentMap(
          initialCameraPosition: CameraPosition(
            target: LatLng(39.9042, 116.4074), // 北京
            zoom: 11.0,
          ),
          onMapCreated: (TencentMapController controller) {
            // 地图创建完成后的回调
          },
        ),
      ),
    );
  }
}

4. 其他功能

byn_tencent_map 插件还支持其他功能,例如添加标记、绘制线条、获取用户位置等。你可以查看插件的 文档 来了解更多详细信息。

5. 运行项目

完成上述步骤后,你可以运行你的 Flutter 项目,查看腾讯地图是否正常显示。

flutter run
回到顶部