1. 程式人生 > >iOS8 高德地圖SDK MAMapView無法定位的問題

iOS8 高德地圖SDK MAMapView無法定位的問題

在iOS8的裝置上,使用高德地圖SDK你會發現MAMapView裡的回撥位置是空的。

  1. -(void)mapView:(MAMapView*)mapView didUpdateUserLocation:(MAUserLocation*)userLocation updatingLocation:(BOOL)updatingLocation  
  2. {  
  3.     CLLocation *currentLocation = userLocation.location;  
  4.     if (currentLocation) {  
  5.     }  
  6. }  

在iOS8上currentLocation是空的,導致定位失敗了。我們知道蘋果在iOS8上對定位進行了大幅度優化,可以支援室內定位,常去地點統計,樓層等。

高德失敗的原因可能是未對iOS8做適配。

解決方法是:

1.工程的info.plist新增NSLocationWhenInUseDescription,NSLocationAlwaysUsageDescription欄位,不同的欄位對應的方法不同

2.在AppDelegate.m中宣告個CLLocationManager私有變數,程式碼如下:

  1. @interface AppDelegate()<CLLocationManagerDelegate>  
  2. {  
  3.     UINavigationController *_navController;  點選開啟連結
  4.     CLLocationManager      *_locationmanager;  
  5. }  
  6. @end
  7. @implementation AppDelegate  
  8. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  9. {  
  10.     [UIApplication sharedApplication].idleTimerDisabled = TRUE;  
  11.     _locationmanager = [[CLLocationManager alloc] init];  
  12.     [_locationmanager requestAlwaysAuthorization
    ];        //NSLocationAlwaysUsageDescription
  13.     [_locationmanager requestWhenInUseAuthorization];     //NSLocationWhenInUseDescription
  14.     _locationmanager.delegate = self;  
  15. }  

這樣在MAMapView的回撥
  1. -(void)mapView:(MAMapView*)mapView didUpdateUserLocation:(MAUserLocation*)userLocation updatingLocation:(BOOL)updatingLocation  

就可以正常獲取使用者當前位置了,此時userLocation.location是有值的。

相關推薦

iOS8 地圖SDK MAMapView無法定位的問題

在iOS8的裝置上,使用高德地圖SDK你會發現MAMapView裡的回撥位置是空的。 -(void)mapView:(MAMapView*)mapView didUpdateUserLocation:(MAUserLocation*)userLocation updat

整合地圖SDK實現實時定位

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <uses-permission android:name="android.

Android 地圖SDK定位

1,高德控制檯申請key網址http://lbs.amap.com/dev/#/ 參考http://blog.csdn.net/mwh613245/article/details/52456300 1)SHA1是Android簽名檔案keystore獲取的,

地圖 SDK整合 定位 地理編碼 搜尋 經緯度獲取 功能工具類

最近專案要整合高德地圖,然後可以根據語音輸入指令,進行定位和地理編碼搜尋功能,從而實現獲取當前位置經緯度和根據地址獲取經緯度的功能 下載檔案之只放了libs和主要程式碼檔案 第一步 首先,得整合高德地圖:(可看木子的高德地圖整合) 第二步

地圖SDK整合---定位

高德的API文件寫得很詳細,閱讀起來很流暢,在整合的時候大部分問題在文件中都已經有解決方案了,今天寫此文章的目的是為了記錄一下完整的整合方案,以便於自己下次能跟快速的在進行整合。 1.註冊成為開發者(略) 2.獲取Key 開啟應用管理 建立新應用 在應

Android開發知識(十)快速接入地圖SDK地圖+定位+標記+路線規劃+搜尋)

目錄 申請接入流程 高德地圖的申請接入流程 1、首先到 [ 高德地圖API官網] 申請註冊帳號 2、進入控制檯,點選應用管理,我們建立一個新的應用: 3、為剛才建立的應用新增key: 隨便輸入一個key的名稱,這裡我們只討論Androi

Cocoapods安裝與使用 並且整合地圖SDk

環境:macOS Sierra 版本10.12.2 為什麼使用CocoaPods?因為在iOS開發中我們經常會用到很多的第三方庫,為了方便管理所以使用Cocoapods。 如何安裝CocoaPods? 1,現在檢查Ruby環境:(mac是自帶了Ruby環境的,為了安全起見我們還

地圖api之location定位

關於定位,分為GPS定位和網路定位。本文將詳細描述的瀏覽器定位,屬於網路定位。這是一種通過使用高德JS-API來實現位置定位、城市定位的方法,包含了IP定位,檢索等多種網路定位方式。如果您的手機支援GPS功能,能夠自動獲取GPS資訊,定位將更加準確。 瀏覽器定位 瀏覽器定位外掛,

地圖PlaceSearch.clear()無法呼叫問題

高德地圖JS-API,使用PlaceSearch搜尋地址,在地圖上產生Marker,但是在呼叫PlaceSearch.clear()之後,Marker並沒有被清除。這個問題困擾了我好幾天了。高德官方參考手冊相當簡單: https://lbs.amap.com/api/javascript

專案整合地圖SDK後出現的錯誤

專案整合高德地圖SDK後出現下面錯誤: Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > More than one file was found with OS ind

使用地圖如何在實時定位中重新整理圖示位置

近期在專案中遇到實時定位車輛位置時,給車新增圖示,問題就是每一次定位車輛位置時圖示重合,並沒有被想象的前面那個位置圖示消失,重寫建立一個圖示。解決辦法: 將地圖的marker變數設定為全域性變數。每次

地圖精確查詢與定位RegeocodeQuery與GeocodeQuery

根據輸入的字串精確查詢位置,用GeocodeQuery查詢座標,然後根據獲取到的座標,用RegeocodeQuery查詢地址。例子中用了兩個頁面,一個是顯示地址資訊及定位的頁面,另一個是搜尋頁面,點選搜尋結果返回顯示頁面,顯示資訊並定位: 顯示並定位的頁面: publi

地圖中實現實時定位、駕車路線規劃,點間距

 /**  * 實現地圖的載入  * @author 木蘭綴露  *對於標記點過多的顯示問題,將定位點的經緯度傳至伺服器的方法內增加減少經緯度,然後好資料庫標記點進行經緯度比對,如果有則載入到前臺,如果沒則擴大載入範圍  */ public class MapActi

地圖Marker與InfoWindow定位居中衝突問題

最近的專案裡有功能模組需要實現地圖顯示,用的是高德地圖.前不久發現個小問題,專案需要實現點選某個Marker時將地圖放大到合適的級別,中心點設定為當前Marker的座標,並顯示一個InfoWindow;問題所在就是當點選該Marker的時候,經常無法將地圖中心設

基於地圖SDK進行搜尋

高德地圖SDK使用地址http://lbs.amap.com/ 地圖設定 #define GDMAPKEY @"key" #import "ViewController.h" #import <MapKit/MapKit.h> #import <AM

iOS程式設計師之地圖SDK

高德SDK 最近專案中需要定位客戶位置,要滿足地址搜尋,長按地圖新增,同時大頭針還要能移動的需求,這裡整理下,希望幫助有需要的人 1.新增地圖 // 地圖 _mapView = [[MAMapView alloc] initWithFrame:CGRect

Android 接入地圖SDK模組的優化點點滴滴

起因: 由於在最近接手了一個關於導航的App,發現地圖頁面跳來跳去實在是卡頓地不行(執行在車載裝置上的APP,機器效能實在是有限)。 初步判斷: 應該是是關於地圖等控制元件的反覆建立和銷燬,給記憶體GC帶來了很大的壓力。 簡單調查: 通過 命令 adb shell

H5開發:呼叫地圖api實現H5定位功能

關於定位,分為GPS定位和網路定位。本文將詳細描述的瀏覽器定位,屬於網路定位。這是一種通過使用高德JS-API來實現位置定位、城市定位的方法,包含了IP定位,檢索等多種網路定位方式。如果您的手機支援GPS功能,能夠自動獲取GPS資訊,定位將更加準確。 瀏覽器定位 瀏覽

IOS8 IOS9 地圖彈出是否允許定位框功能程式碼

第一步:在info.plist檔案新增兩個欄位 NSLocationAlwaysUsageDescription           - >    YES NSLocationWhenInUseUsageDescription            - >

使用地圖API無法定位

問題情境:第一次匯入專案,執行後發現無法定位。 原因:申請API時使用的SHA1值與本機的SHA1值不同 因為Android系統要求所有程式都需要經過數字簽名才可以安裝,假如沒有可用的數字簽名則不可以安裝執行此程式。為了方便程式設計師除錯,IDE會預