2016-03-04 82 views
0

我使用Google Map SDK在Xcode中製作單一視圖應用程序。我在網上遵照指示,我的應用程序可以成功加載谷歌地圖視圖。我還啓用了myLocation,以便myLocation按鈕在地圖視圖中顯示。我明白,單擊myLocation按鈕會自動更改攝像機位置,但我想知道如何使用myLocation的數據(比如添加標記或添加路徑節點)?如何使用Google Map SDK for iOS使用myLocation?

我試過直接訪問mapView.myLocation,例如

let lat = mapView.myLocation?.coordinate.latitude 
let long = mapView.myLocation?.coordinate.longitude 
path.addCoordinate(CLLocationCoordinate2D(latitude: lat!, longitude: long!)) 

但這會崩潰的一個應用,並拋出「致命錯誤:意外發現零而展開的可選值」。 這個錯誤信息告訴我什麼?我該如何解決這個問題?

+0

您是否有權獲取用戶位置?請在「我的位置」部分試用此代碼https://developers.google.com/maps/documentation/ios-sdk/map#accessibility – UlyssesR

+0

@UlyssesR感謝您的評論!我試過這段代碼,結果是「用戶位置未知」。但是我對此感到困惑,因爲應用程序使用藍點顯示我的當前位置,並且myLocation按鈕正常工作。 – CatSensei

回答

0

錯誤提示mapView的myLocation屬性爲零。在訪問它之前,您應該檢查是否有值。

if let myLocation = mapView.myLocation { 
    let lat = myLocation.coordinate.latitude 
    let long = myLocation.coordinate.longitude 
    path.addCoordinate(CLLocationCoordinate2D(latitude: lat, longitude: long)) 
} 

另外驗證爲什麼myLocation爲零。可能是用戶不允許定位服務。

+0

謝謝你的回答!我相信我已打開位置服務,因爲應用程序使用藍點顯示我的當前位置,並且myLocation按鈕正常工作。爲什麼myLocation變量在這種情況下是零? – CatSensei

+0

@CatSensei編輯你的問題,並顯示你的myLocation按鈕的代碼。這可能有助於清除一些問題,並且在引用時總是嘗試包含其他代碼。 – MwcsMac

相關問題