Flutter腾讯地图集成插件byn_tencent_map的使用
Flutter腾讯地图集成插件byn_tencent_map的使用
用于在iOS和Android应用程序中集成腾讯地图的Flutter插件。目前只集成了单次获取定位功能,地图选点功能。
开始使用
Android
-
申请一个key 请访问腾讯地图开发指南申请一个key。
-
在AndroidManifest.xml中配置key 在
AndroidManifest.xml
文件的<application>
标签内添加以下代码(将value
替换为申请到的key):<meta-data android:name="TencentMapSDK" android:value="*****-*****-*****-*****-*****-*****"/>
iOS
-
申请一个key 请访问腾讯地图开发指南申请一个key。
-
在info.plist中增加权限描述 在
Info.plist
文件中增加以下代码:<key>NSLocationWhenInUseUsageDescription</key> <string>要用定位</string>
-
在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()); }
如何使用
-
导入dart包 修改
pubspec.yaml
文件,增加依赖:dependencies: byn_tencent_map: ^0.1.3
-
在要用的地方导入
import 'package:byn_tencent_map/byn_tencent_map.dart';
-
单次获取定位
MapPoiData? data = await TencentMap.getLocation();
-
添加地图选点
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
更多关于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 配置
- 在
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 配置
- 在
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