Flutter集成高德定位和地圖功能

定位集成

配置高德定位依賴庫

新建 Flutter 項目陆蟆,使用 Android Studio 打開項目里的 android 工程叠殷,或者右鍵 android 目錄-> flutter -> open Android module in Android Studio林束。

1.png

在 Android 工程里壶冒,切換為 Android 視圖:

2.png

打開 build.gradle 文件,添加定位依賴包:

implementation('com.amap.api:location:5.2.0')
image.png

點擊 Sync Now 或者 工具欄上的??圖標(biāo)同步依賴包:

image.png

打開清單文件AndroidManifest.xml,配置權(quán)限和服務(wù):

    <!--訪問網(wǎng)絡(luò)-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--粗略定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!--精確定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!--申請調(diào)用A-GPS模塊-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <!--用于獲取運營商信息记罚,用于支持提供運營商信息相關(guān)的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--用于訪問wifi網(wǎng)絡(luò)信息桐智,wifi信息會用于進行網(wǎng)絡(luò)定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--用于獲取wifi的獲取權(quán)限荐吉,wifi信息會用來進行網(wǎng)絡(luò)定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!--用于讀取手機當(dāng)前的狀態(tài)-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--用于寫入緩存數(shù)據(jù)到擴展存儲卡-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <!-- 配置定位Service -->
       <service android:name="com.amap.api.location.APSService"/>
image.png

配置簽名文件

高德平臺需要簽名的 sha1 穿撮,所以需要配置簽名文件,debug 模式調(diào)試和正式包各需要一個攻礼,也可以使用同一個 keystore 。
工具欄 Build -> Generate Signed Bundle / APK -> 選擇 APK -> Next -> Create new 栗柒,打開 New Key Store 窗口:

image.png

image.png

key store path 選擇當(dāng)前項目根目錄或者你喜歡的任何目錄礁扮,命名為 debug.keystore 或者你喜歡的名字,兩個地方的 Password 可以一樣瞬沦,Alias 需要填寫太伊,下面的 Certificate 填寫一項即可:

image.png

點擊 ok -> 點擊 Next,選擇 debug 逛钻,當(dāng)然如果 debug 和 release 使用同一個簽名文件的話也可同時選擇 debug 和 release僚焦,并勾選 V2 簽名:

image.png

完成后可以看到項目里的 debug.keystore 文件:


image.png

重復(fù)上面方法,再創(chuàng)建一個 release.keystore 文件曙痘。點擊 Project Structure:


image.png

選擇 Modules -> app -> Signing Configs -> + -> 默認有 debug,再添加一個 release 罢洲,分別選擇對應(yīng)的 keystore:
image.png

點擊 ok 后再次打開 build.gradle 文件耸峭,可以看到簽名配置對應(yīng)剛才配置的簽名文件:

signingConfigs {
        debug {
            storeFile file('/Users/apple/AndroidStudioProjects/flutter/map_demo/android/debug.keystore')
            storePassword '123456'
            keyAlias 'amap'
            keyPassword '123456'
        }
        release {
            storeFile file('/Users/apple/AndroidStudioProjects/flutter/map_demo/android/release.keytore')
            storePassword '123456'
            keyAlias 'amap'
            keyPassword '123456'
        }
    }

高德平臺 Key 申請

打開高德開放平臺 | 高德地圖API (amap.com)本涕,注冊成為高德開放平臺用戶样漆,打開控制臺創(chuàng)建一個應(yīng)用,填入對應(yīng)的信息鞋喇,這里有個錯誤执桌,SHA1 其實是 MD5 ,不要填寫 SHA1错蝴。

image.png

獲取MD5:
在剛才的項目里官紫,打開 Terminal,輸入下面命令,路徑就是 debug.keystore 和 release.keystore的路徑:

keytool -list -v -keystore  ./debug.keystore

輸入秘鑰庫口令,就是設(shè)置的 Password ,復(fù)制 MD5 ,去高德開放平臺粘貼。

image.png

發(fā)布版和調(diào)試版都設(shè)置后,復(fù)制 key 。

在清單文件里睦优,配置apikey

    <!-- 配置定位Service -->
       <service android:name="com.amap.api.location.APSService"/>
       <meta-data
           android:name="com.amap.api.v2.apikey"
           android:value="f6c46787c43cb7df5510d9f4c530fd1e"/>

Flutter 文件配置

回到 Flutter 項目隐孽,添加高德定位庫和權(quán)限申請依賴,執(zhí)行pub get

  amap_flutter_location: ^2.0.0
  permission_handler:

在獲取定位的入口配置權(quán)限申請,注冊監(jiān)聽:

    /// 動態(tài)申請定位權(quán)限
    requestPermission();
    ///注冊定位結(jié)果監(jiān)聽
    _locationListener = _locationPlugin
        .onLocationChanged()
        .listen((Map<String, Object> result) {
      setState(() {
        _locationResult = result;
      });
    });

只要獲取到定位晴及,這里都會回調(diào),result包含了很全的定位信息。
如果運行報錯:INVALID_USER_KEY,說明你的 keystore 的 MD5 不正確,也許平臺會把 SHA1 改為真正的 SHA1 且改,所以不妨試試填入 SHA1效扫。

地圖集成

Android工程添加地圖依賴

回到 Android 工程,添加地圖依賴:

    implementation 'com.amap.api:3dmap:5.0.0'

回到 Flutter 工程,在pubspec.yaml里添加插件依賴:

  amap_flutter_map: ^2.0.1

在布局中使用 map :

  final AMapWidget map = AMapWidget(
      onMapCreated: onMapCreated,
      // 定位小藍點配置
      myLocationStyleOptions: MyLocationStyleOptions(true),
      // 是否指南針
      // compassEnabled: true,
    );

源碼傳送門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末峡碉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子戳玫,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件川队,死亡現(xiàn)場離奇詭異斗躏,居然都是意外死亡,警方通過查閱死者的電腦和手機隧饼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呛伴,“玉大人姐军,你說我怎么就攤上這事。” “怎么了油啤?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵幽告,是天一觀的道長。 經(jīng)常有香客問我,道長摔敛,這世上最難降的妖魔是什么行楞? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮田度,結(jié)果婚禮上镇饺,老公的妹妹穿的比我還像新娘揭保。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布垂涯。 她就那樣靜靜地躺著操骡,像睡著了一般震叙。 火紅的嫁衣襯著肌膚如雪痢缎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天世澜,我揣著相機與錄音独旷,去河邊找鬼。 笑死寥裂,一個胖子當(dāng)著我的面吹牛嵌洼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播封恰,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼麻养,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诺舔?” 一聲冷哼從身側(cè)響起鳖昌,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤备畦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后遗遵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萍恕,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年车要,在試婚紗的時候發(fā)現(xiàn)自己被綠了允粤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡翼岁,死狀恐怖类垫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琅坡,我是刑警寧澤悉患,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站榆俺,受9級特大地震影響售躁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茴晋,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一陪捷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诺擅,春花似錦市袖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撮执,卻和暖如春微峰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抒钱。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工县忌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人继效。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓症杏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瑞信。 傳聞我的和親對象是個殘疾皇子厉颤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容