10分鐘讓你的flutter程序擁有定位功能--集成高德地圖定位指南

地圖定位這個功能目前基本上是商業應用app的標配。然而,在flutter中進行原生功能的開發,意味着必須的ios和android雙端都通,並且須要大量的調試時間。尤爲目前這個時間點,flutter的版本更新頻繁,原生編譯問題重重。不過不要緊,總有那麼一部分先驅奮不顧身的爲你們踩坑探路,best-flutter目前就在作這個工做。android

高德地圖定位組件是第一個在flutter中集成國內地圖定位功能的組件,地址在這裏: https://github.com/best-flutt...ios

下面咱們來看下如何方便的使用這個庫吧。git

準備工做

申請一個高德地圖的key先,地址在這裏:https://lbs.amap.com/api/andr...github

這裏筆者申請的時候api

android的包名稱爲com.jzoom.amaplocationexample,app

ios的包名稱爲com.jzoom.amapLocationExampleide

第一步

建立一個flutter程序,命令行運行程序:ui

flutter create amap_demo

編輯一下項目依賴:spa

amap_location: 0.1.0

跑一下flutter packages get命令行

第二步

集成android

applicationId須要與申請key的時候填寫的包名稱一致,新增配置

manifestPlaceholders = [
   AMAP_KEY : "你申請的key", /// 高德地圖key
]

第三步

集成ios

Bundle Identifier須要與申請的時候填寫的一致

ios項目目錄中的info.plist,須要新增節點

<key>NSLocationWhenInUseUsageDescription</key>
<string>定位用來幹什麼,須要描述清楚</string>

第三步

項目中使用

import 'package:amap_location/amap_location.dart';

設置一下key,修改一下原來的main方法

void main(){
  AMapLocationClient.setApiKey("你申請的key");
  
  runApp(new MyApp());
}

先啓動一下

await AMapLocationClient.startup(new AMapLocationOption( desiredAccuracy:CLLocationAccuracy.kCLLocationAccuracyHundredMeters  ));

直接獲取定位:

await AMapLocationClient.getLocation(true)

監聽定位

AMapLocationClient.onLocationUpate.listen((AMapLocation loc){
      if(!mounted)return;
      setState(() {
         ...
      });
    });

    AMapLocationClient.startLocation();

在flutter中使用高德地圖定位組件是否是很簡單呢。

相關文章
相關標籤/搜索