您好,登錄后才能下訂單哦!
MapView在8.0之后,用法有了一些新的用法(代理方法),在此之前需要導入
#import <MapKit/MapKit.h>
//創建位置服務對象
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
//設置定位代理
locationManager.delegate = self;
//如果實在iOS8.0之后,我們需要添加以下操作
//1.調用方法--requestWhenInUseAuthorization 或者 requestAlwaysAuthorization
//2.
if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {
[locationManager requestWhenInUseAuthorization];
}
//開始定位
[locationManager startUpdatingLocation];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark -CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"定位成功");
//停止定位
[locationManager stopUpdatingLocation];
CLLocationCoordinate2D coordinate = newLocation.coordinate;
NSLog(@"位置:緯度:%.2f----經度:%.2f", coordinate.latitude, coordinate.longitude);
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
{
NSLog(@"新方法定位成功");
//停止定位
[locationManager stopUpdatingLocation];
CLLocation *location = [locations lastObject];
CLLocationCoordinate2D coordinate = location.coordinate;
NSLog(@"位置:緯度:%.2f----經度:%.2f", coordinate.latitude, coordinate.longitude);
//在iOS5.0之前使用位置反編碼
MKReverseGeocoder *mkReverse = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate];
mkReverse.delegate = self;
//開始反編碼
[mkReverse start];
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location
completionHandler:^(NSArray *placemarks, NSError *error) {
NSLog(@"---------CLGeocoder---------------");
for (CLPlacemark *place in placemarks) {
NSLog(@"name,%@",place.name); // 位置名
NSLog(@"thoroughfare,%@",place.thoroughfare); // 街道
NSLog(@"subThoroughfare,%@",place.subThoroughfare); // 子街道
NSLog(@"locality,%@",place.locality); // 市
NSLog(@"subLocality,%@",place.subLocality); // 區
NSLog(@"country,%@",place.country); // 國家
}
}
]; // CLGeocoder反編碼
}
#pragma mark -MKReverseGeocoderDelegate
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)place
{
NSLog(@"-----------MKReverseGeocoderDelegate----------");
NSLog(@"name,%@",place.name); // 位置名
NSLog(@"thoroughfare,%@",place.thoroughfare); // 街道
NSLog(@"subThoroughfare,%@",place.subThoroughfare); // 子街道
NSLog(@"locality,%@",place.locality); // 市
NSLog(@"subLocality,%@",place.subLocality); // 區
NSLog(@"country,%@",place.country); // 國家
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
{
NSLog(@"error is %@", error);
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。