首頁>技術>

簡介: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.0

2)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從放棄到入門》視訊課程裡面也會講到,大家喜歡的話可以關注下。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Oracle 12c 的安裝