Flutter高德地图展示插件amap_view_muka的使用
Flutter高德地图展示插件amap_view_muka的使用
amap_view_muka
引入方式
在pubspec.yaml
文件中添加依赖:
dependencies:
amap_view_muka: ^0.1.0
支持的功能
显示地图
- ✅ 显示定位蓝点
- ✅ 显示室内地图
- ✅ 切换地图图层
- ✅ 使用离线地图(目前只支持官方UI)
- ✅ 显示英文地图
- ✅ 自定义地图(写了方法但不起作用,不知道啥问题)
与地图交互
- ✅ 控件交互
- ✅ 手势交互
- ✅ 调用方法交互
- ✅ 地图截屏功能
在地图上绘制
- ❌ 绘制点标记
- ❌ 绘制线
- ❌ 绘制面
- ❌ 绘制热力图
- ❌ 绘制3D模型
- ❌ 点平滑移动
- ❌ 绘制海量点图层
Android
在AndroidManifest.xml
文件中添加以下代码:
<meta-data android:name="com.amap.api.v2.apikey" android:value="你的key" />
iOS
在Info.plist
文件中添加以下代码:
<!-- 默认 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能访问位置</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>App需要您的同意,才能访问位置</string>
<key>amap_key</key>
<string>你的key</string>
<!-- 导航 [后台持续定位只需要location] -->
<key>UIBackgroundModes</key>
<array>
<string>location</string>
<string>audio</string>
</array>
完整示例代码
以下是一个完整的示例代码,展示了如何使用amap_view_muka
插件在Flutter中展示高德地图。
main.dart
import 'package:amap_location_muka/amap_location_muka.dart';
import 'package:flutter/material.dart';
import 'package:flutter_muka/flutter_muka.dart';
import 'package:permission_handler/permission_handler.dart';
import 'amap_search.dart';
import 'create_amap/amap.dart';
import 'create_amap/interactive.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化权限
await [Permission.locationAlways, Permission.storage].request();
// 设置高德地图API密钥
AMapLocation.updatePrivacyAgree(true);
AMapLocation.updatePrivacyShow(true, true);
AMapLocation.setApiKey("6e630e675873f2a548f55ba99ee8c571", "56250708b9588800db63161534716f8c");
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('高德地图示例'),
),
body: ListView(
children: [
Column(
children: [
// 创建地图
ListItem(
title: Text('创建地图'),
showArrow: true,
color: Colors.white,
showDivider: true,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Amap()),
);
},
),
// 与地图交互
ListItem(
title: Text('与地图交互'),
showArrow: true,
color: Colors.white,
showDivider: true,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Interactive()),
);
},
),
// 在地图上绘制
ListItem(
title: Text('在地图上绘制'),
showArrow: true,
color: Colors.white,
showDivider: true,
),
// 获取地图数据
ListItem(
title: Text('获取地图数据'),
showArrow: true,
color: Colors.white,
showDivider: true,
),
// 当前位置
ListItem(
title: Text('当前位置'),
showArrow: true,
color: Colors.white,
showDivider: true,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => AMapSearchLoc()),
);
},
),
],
),
],
),
),
);
}
}
// 自定义列表项组件
class ListItem extends StatelessWidget {
final String title;
final bool showArrow;
final Color color;
final bool showDivider;
final VoidCallback onTap;
const ListItem({
required this.title,
this.showArrow = false,
this.color = Colors.blue,
this.showDivider = false,
required this.onTap,
});
[@override](/user/override)
Widget build(BuildContext context) {
return ListTile(
title: Text(title, style: TextStyle(color: color)),
trailing: showArrow ? Icon(Icons.arrow_right) : null,
onTap: onTap,
tileColor: Colors.grey[200],
dense: true,
);
}
}
更多关于Flutter高德地图展示插件amap_view_muka的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter高德地图展示插件amap_view_muka的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
amap_view_muka
是一个用于在 Flutter 应用中集成高德地图的插件。它提供了丰富的功能,包括地图展示、标记、路线规划等。以下是如何使用 amap_view_muka
插件的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 amap_view_muka
插件的依赖:
dependencies:
flutter:
sdk: flutter
amap_view_muka: ^0.0.1 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 配置高德地图 SDK
在使用高德地图之前,你需要在高德开放平台注册并创建一个应用,获取 AppKey
。
Android 配置
在 android/app/src/main/AndroidManifest.xml
文件中添加以下配置:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yourapp">
<application
android:name=".MyApplication"
android:label="Your App"
android:icon="@mipmap/ic_launcher">
<!-- 高德地图 AppKey -->
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="YOUR_AMAP_APP_KEY" />
</application>
</manifest>
iOS 配置
在 ios/Runner/Info.plist
文件中添加以下配置:
<key>AMapApiKey</key>
<string>YOUR_AMAP_APP_KEY</string>
3. 初始化地图
在你的 Flutter 应用中初始化高德地图。通常可以在 main.dart
中进行初始化:
import 'package:amap_view_muka/amap_view_muka.dart';
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await AMapViewMuka.init('YOUR_AMAP_APP_KEY');
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MapScreen(),
);
}
}
4. 展示地图
在 MapScreen
中展示地图:
import 'package:amap_view_muka/amap_view_muka.dart';
import 'package:flutter/material.dart';
class MapScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('高德地图示例'),
),
body: AMapView(
onMapCreated: (controller) {
// 地图创建完成后的回调
},
),
);
}
}
5. 添加标记
你可以在地图上添加标记:
AMapView(
onMapCreated: (controller) {
controller.addMarker(MarkerOptions(
position: LatLng(39.90923, 116.397428), // 标记的位置
title: '北京天安门', // 标记的标题
snippet: '这是天安门广场', // 标记的副标题
));
},
)