iOS 在google地图上显示自己的位置

时间:2020-12-11 10:31:43

一行代码显示你的位置

iOS中的MapKit集成了定位的功能,使用一行代码就可以在google地图上展示出自己当前的位置,代码如下:

[objc] view plaincopy
  1. -(IBAction) showLocation:(id) sender {  
  2.       
  3.     if ([[btnShowLocation titleForState:UIControlStateNormal]   
  4.          isEqualToString:@"Show My Location"]) {  
  5.         [btnShowLocation setTitle:@"Hide My Location"   
  6.                          forState:UIControlStateNormal];  
  7.         mapView.showsUserLocation = YES;          
  8.     } else {  
  9.         [btnShowLocation setTitle:@"Show My Location"   
  10.                          forState:UIControlStateNormal];  
  11.         mapView.showsUserLocation = NO;  
  12.     }      
  13. }  

关键的代码就是:mapView.showUserLocation=YES.

使用CLLocationManager和MKMapView 还有就是通过CoreLocation框架写代码去请求当前的位置,一样也非常简单: 第一步:创建一个CLLocationManager实例 [objc] view plaincopy
  1. CLLocationManager *locationManager = [[CLLocationManager alloc] init];  
第二步:设置CLLocationManager实例委托和精度 [objc] view plaincopy
  1. locationManager.delegate = self;   
  2. locationManager.desiredAccuracy = kCLLocationAccuracyBest;   
第三步:设置距离筛选器distanceFilter,下面表示设备至少移动1000米,才通知委托更新 [objc] view plaincopy
  1. locationManager.distanceFilter = 1000.0f;  
或者没有筛选器的默认设置: [objc] view plaincopy
  1. locationManager.distanceFilter = kCLDistanceFilterNone;   
第四步:启动请求 [objc] view plaincopy
  1. [locationManager startUpdatingLocation];   
使用下面代码停止请求: [objc] view plaincopy
  1. [locationManager stopUpdatingLocation];  
CLLocationManagerDelegate委托 这个委托中有:locationManager:didUpdateToLocation: fromLocation方法,用于获取经纬度。 可以使用下面代码从CLLocation 实例中获取经纬度 [objc] view plaincopy
  1. CLLocationDegrees latitude = theLocation.coordinate.latitude;   
  2. CLLocationDegrees longitude = theLocation.coordinate.longitude;   
使用下面代码获取你的海拔: [objc] view plaincopy
  1. CLLocationDistance altitude = theLocation.altitude;   
使用下面代码获取你的位移: CLLocationDistance distance = [fromLocation distanceFromLocation:toLocation];