簡介:flutter使用 amap_location外掛(高德)。包括 高德 key 的申請,應用簽名sha1獲取(android端),ios端見 amap_location詳細文件,這邊主要講android端,因為ios端很簡單。
ios端:android端(重點)
第一步:flutter 應用簽名 sha1 的獲取
3)此時檢視android studio控制檯,如圖,記錄sha1
第二步:amap高德地圖的key申請
1)註冊登入,自己弄
2)進入控制檯,建立新應用
3)建立完應用後,應用列表的後面 + 新增key
第三步,flutter中使用 amap_location
1)pubspec.yaml 新增依賴:
amap_location: ^0.2.02)android/app.build.gradle 中的 defaultConfig 新增:
manifestPlaceholders = [ AMAP_KEY : "your key", /// 高德地圖key]3)android/app.build.gradle 中的 dependencies 新增:
/// 注意這裡需要在主專案增加一條依賴,否則可能發生編譯不通過的情況 implementation 'com.amap.api:location:latest.integration'4)使用
//先啟動一下await AMapLocationClient.startup(new AMapLocationOption( desiredAccuracy:CLLocationAccuracy.kCLLocationAccuracyHundredMeters ));//直接獲取定位: var loc = await AMapLocationClient.getLocation(true); print(loc.longitude); print(loc.latitude); print(loc.country);//監聽定位AMapLocationClient.onLocationUpate.listen((AMapLocation loc){ if(!mounted)return; setState(() { ... }); }); AMapLocationClient.startLocation();//不要忘了在app生命週期結束的時候關閉@override void dispose() { //注意這裡關閉 AMapLocationClient.shutdown(); super.dispose(); }為了優化體驗,需要先詢問授權,然後再進行位置獲取,程式碼如下
@override void initState() { print("SameCityTab"); super.initState(); _getPermission(); } Future _getPermission()async{ Map<PermissionGroup, PermissionStatus> permissions = await PermissionHandler().requestPermissions([PermissionGroup.location]); // 申請結果 PermissionStatus permission = await PermissionHandler().checkPermissionStatus(PermissionGroup.location); if(permission == PermissionStatus.granted){ initAMap(); }else{ //未授權 } } Future initAMap()async{ await AMapLocationClient.startup(new AMapLocationOption( desiredAccuracy:CLLocationAccuracy.kCLLocationAccuracyHundredMeters )); var loc = await AMapLocationClient.getLocation(true); print(loc.longitude); print(loc.latitude); print(loc.country); } @override void dispose() { //注意這裡關閉 AMapLocationClient.shutdown(); super.dispose(); }當然 AndroidManifest.xml 需要新增以下:
上面程式碼列印的三個資訊:(當然裡面還有很多位置資訊哦)
注意:出現以下錯誤的話請按照上面流程操作
具體api見文件。
這個做flutter開發的記得收藏,必須掌握哦。我後面的《flutter從放棄到入門》視訊課程裡面也會講到,大家喜歡的話可以關注下。
最新評論