原文摘自:Cocoa And Dotnet
一行代碼顯示你的位置
iOS中的MapKit整合了定位的功能,使用一行代碼就可以在google地圖上展示出自己當前的位置,代碼如下:
-(IBAction) showLocation:(id) sender { if ([[btnShowLocation titleForState:UIControlStateNormal] isEqualToString:@"Show My Location"]) { [btnShowLocation setTitle:@"Hide My Location" forState:UIControlStateNormal]; mapView.showsUserLocation = YES; } else { [btnShowLocation setTitle:@"Show My Location" forState:UIControlStateNormal]; mapView.showsUserLocation = NO; } }
關鍵的代碼就是:mapView.showUserLocation=YES.
使用CLLocationManager和MKMapView還有就是通過CoreLocation架構寫代碼去請求當前的位置,一樣也非常簡單:第一步:建立一個CLLocationManager執行個體
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
第二步:設定CLLocationManager執行個體委託和精度
locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyBest;
第三步:設定距離篩選器distanceFilter,下面表示裝置至少移動1000米,才通知委託更新
locationManager.distanceFilter = 1000.0f;
或者沒有篩選器的預設設定:
locationManager.distanceFilter = kCLDistanceFilterNone;
第四步:啟動請求
[locationManager startUpdatingLocation];
使用下面代碼停止請求:
[locationManager stopUpdatingLocation];
CLLocationManagerDelegate委託這個委託中有:locationManager:didUpdateToLocation: fromLocation方法,用於擷取經緯度。可以使用下面代碼從CLLocation 執行個體中擷取經緯度
CLLocationDegrees latitude = theLocation.coordinate.latitude; CLLocationDegrees longitude = theLocation.coordinate.longitude;
使用下面代碼擷取你的海拔:
CLLocationDistance altitude = theLocation.altitude;
使用下面代碼擷取你的位移:CLLocationDistance distance = [fromLocation distanceFromLocation:toLocation];
總結:本文主要是講解了如何在iOS裝置google地圖上展示自己的當前位置。