iOS專案開發實戰——使用CoreLocation獲取當前位置資訊
隨著基於位置服務LBS和移動網際網路的興起,你的位置是越來越重要的一個資訊,位置服務已經是當前的熱門應用如微信,陌陌等社交應用的殺手鐗。而在iOS開發中,蘋果已經給我們提供了一個位置介面,CoreLocation,我們可以使用該介面方便的獲得當前位置的經緯度資訊。具體實現如下:
(1)新建基於Swift的iOS專案,在ViewController中匯入CoreLocation介面:
import CoreLocation
(2)在ViewController類中實現如下:
import UIKit
import CoreLocation
class ViewController: UIViewController,CLLocationManagerDelegate {
let locationManager:CLLocationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
if ios8(){
locationManager.requestAlwaysAuthorization()
}
locationManager.startUpdatingLocation()
}
func ios8()->Bool{
return UIDevice.currentDevice().systemVersion == "8.0"
}
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){
var location:CLLocation = locations[locations.count-1] as! CLLocation
if(location.horizontalAccuracy > 0){
println("緯度=\(location.coordinate.latitude) ;經度=\(location.coordinate.longitude)")
locationManager.stopUpdatingLocation()
}
}
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!){
println(error)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
(3)由於位置資訊是比較隱私的資訊,訪問使用者位置資訊前要徵求使用者的同意,所以需要在執行前進行提示:在Info.plist中配置內容:
key-value : NSLocationUsageDescription "程式要訪問您的位置資訊"
key-value : NSLocationAlwaysUsageDescription "程式要訪問您的位置資訊"
(4)執行程式,檢視結果:
。
。
總結一下,對於程式輸出結果,和我當前所處城市的位置資訊進行比較,發現存在較大誤差,我也不清楚這個由於什麼原因,目前我在南方某城,經緯度資訊卻是在北方,可能是蘋果的位置服務有bug吧。目前國內基於百度地圖API,高德地圖等開發的應用也是比較多的,之前我也用百度地圖Android SDK開發過應用,介面也是非常方便,定位等服務也是比較全面的,非常適合開發,個人認為如果要進行位置服務,還是不要用蘋果自帶的吧。。。
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- iOS專案開發實戰——獲取系統當前時間iOS
- iOS專案開發實戰——使用CoreLocation實現定位iOS
- iOS專案開發實戰——獲取當前的UUID(通用唯一識別碼)iOSUI
- Android中獲取當前位置資訊Android
- IOS獲取當前地理位置文字iOS
- iOS專案開發實戰——獲取本機IP地址iOS
- iOS專案開發實戰——使用程式碼獲取螢幕寬高iOS
- iOS專案開發實戰——CoreLocation地理編碼和反地理編碼iOS
- 谷歌 Web 開發最佳實踐手冊(5.1.1):獲取使用者當前位置谷歌Web
- iOS 獲取當前已連線 WiFi 資訊iOSWiFi
- iOS專案開發實戰——使用同步請求獲取網頁原始碼iOS網頁原始碼
- 通過spring,在專案的任意位置獲取當前RequestSpring
- 微信小程式獲取當前位置微信小程式
- iOS專案開發實戰——使用非同步請求獲取網頁HTML原始碼iOS非同步網頁HTML原始碼
- 使用JS獲取當前地理位置方法彙總JS
- 點選按鈕獲取當前位置
- Flutter 小知識,Key的使用(獲取當前點選Widget位置/獲取當前Widget大小)Flutter
- JavaScript獲取當前li元素的索引位置JavaScript索引
- iOS獲取當前裝置的資訊-網路相關iOS
- iOS專案開發實戰——iOS網路程式設計獲取網頁Html原始碼iOS程式設計網頁HTML原始碼
- 直播app原始碼,uniapp獲取當前位置APP原始碼
- 獲取當前會話資訊的方法會話
- iOS專案開發實戰——使用UICollectionView實現瀑布流iOSUIView
- iOS 獲取當前連結WiFi名iOSWiFi
- javascript獲取當前li元素在集合中的位置JavaScript
- Android Service獲取當前位置(GPS+基站)Android
- 百度地圖JavaScript API獲取使用者當前經緯度並獲取使用者當前詳細地理位置地圖JavaScriptAPI
- iOS專案開發實戰——獲取網頁原始碼的二進位制資料iOS網頁原始碼
- 獲取當前會話資訊的方法(二)會話
- iOS專案開發實戰——使用使用者首選項資料API儲存資訊iOSAPI
- iOS獲取當前 年月日和星期iOS
- JavaScript中獲取當前專案的絕對路徑JavaScript
- WPF 前臺觸發器實時獲取當前時間觸發器
- 小程式獲取當前元素在螢幕中的位置
- C語言ftell()函式:獲取檔案讀寫指標的當前位置C語言函式指標
- iOS專案開發實戰——UILabel與取色器的使用iOSUI
- iOS獲取當前顯示的UIViewControlleriOSUIViewController
- iOS專案開發實戰——理解frame,bounds,centeriOS