flutter集成高德地图
获取位置
flutter集成高德地图获取位置
准备工作
在创建安卓应用获取SHA1
获取当前位置
添加依赖文件配置
build.gradle文件配置AndroidManifest.xml配置
获取定位
准备工作
高德开放平台地址https://lbs.amap.com/tools/picker
在创建安卓应用
在控制台我的应用中创建应用
点击添加
由上图可以看出我们还需要获取安全码SHA1才能添加
添加方法高德官方也已经给出
https://lbs.amap.com/faq/android/map-sdk/create-project/43112
获取SHA1
这里我们采用的是使用 keytool(jdk自带工具)获取SHA1
在控制台输入cd .android定位到.android目录下继续在控制台输入命令:调试版本使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore 发布版本使用 apk 对应的 keystore,命令为:keytool -list -v -keystore apk的keystore按照要求输入密钥库口令,注意这里输入后是没有显示的
选择sha1复制即可(注意调试版安全码和发布版安全码我们可以都写成一样的)
准备工作完成后创建的应用如图
获取当前位置
添加依赖
高德定位Flutter插件地址https://pub.dev/packages/amap_flutter_location
添加依赖
dependencies:
amap_flutter_location: ^3.0.0
导包
import 'package:amap_flutter_location/amap_flutter_location.dart';
权限检测插件地址https://pub.dev/packages/permission_handler
添加依赖
dependencies:
permission_handler: ^8.3.0
导包
import 'package:permission_handler/permission_handler.dart';
文件配置
高德官方给出一定的指引https://developer.amap.com/api/flutter/gettingstarted
build.gradle文件配置
修改你的android/app/build.gradle文件配置签名文件以及配置 implementation
signingConfigs {
release {
//发布版本的签名配置
//还要先将我们使用的androidkeystore.jks'导入到flutter_apponeandroid下
storeFile file('androidkeystore.jks')
keyAlias "key0"
storePassword "20010101"
keyPassword "20010101"
}
debug {
//调试版本的签名配置
storeFile file('androidkeystore.jks')
keyAlias "key0"
storePassword "20010101"
keyPassword "20010101"
}
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
}
debug {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
使用高德SDK之前配置可以参考高德官方文档https://developer.amap.com/api/android-location-sdk/guide/create-project/android-studio-create-project
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "com.amap.api:location:latest.integration"
}
AndroidManifest.xml配置
android/app/src/main/AndroidManifest.xml下的配置
主要用于配置高德Key和申请权限:
在AndroidManifest.xml的application标签中配置Key:
application标签中配置Key
application标签中声明service组件
在AndroidManifest.xml中配置权限:
获取定位
import 'package:flutter/material.dart';
import 'dart:async';
// import 'dart:io';
import 'package:amap_flutter_location/amap_flutter_location.dart';
import 'package:amap_flutter_location/amap_location_option.dart';
import 'package:permission_handler/permission_handler.dart';
class LocationPage extends StatefulWidget {
LocationPage({Key? key}) : super(key: key);
_LocationPageState createState() => _LocationPageState();
}
class _LocationPageState extends State {
//获取数据
// Map _locationResult;
String _latitude = ""; //纬度
String _longitude = ""; //经度
//监听定位
late StreamSubscription
评论列表(0条)