首页 > 代码库 > iOS 根据经纬度反查 地名
iOS 根据经纬度反查 地名
在iOS中
定位自己的当前位置,知道经纬度很简单,然后有些时候要知道地名,apple 也有了现成的api直接调用就可以(以下方法是iOS5.0以上的,现在基本都忽略了 iOS5.0以下的设备)
#pragma mark -#pragma mark CLLocationManagerDelegate - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { CLGeocoder *geocoder=[[CLGeocoder alloc] init]; [geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { CLPlacemark *placemark=[placemarks objectAtIndex:0]; NSLog(@"name:%@\n country:%@\n postalCode:%@\n ISOcountryCode:%@\n ocean:%@\n inlandWater:%@\n locality:%@\n subLocality:%@ \n administrativeArea:%@\n subAdministrativeArea:%@\n thoroughfare:%@\n subThoroughfare:%@\n", placemark.name, placemark.country, placemark.postalCode, placemark.ISOcountryCode, placemark.ocean, placemark.inlandWater, placemark.administrativeArea, placemark.subAdministrativeArea, placemark.locality, placemark.subLocality, placemark.thoroughfare, placemark.subThoroughfare); }]; if (wasFound) return; wasFound = YES; CLLocationCoordinate2D loc = [newLocation coordinate]; strLatitude = [NSString stringWithFormat: @"%f", loc.latitude]; strLongitude = [NSString stringWithFormat: @"%f", loc.longitude]; NSLog(@"strLatitude==%@,strLongitude==%@",strLatitude,strLongitude); }
log 是:
name:市民广场 country:中国 postalCode:(null) ISOcountryCode:CN ocean:(null) inlandWater:(null) locality:广东省 subLocality:(null) administrativeArea:深圳市 subAdministrativeArea:福田区 thoroughfare:市民广场 subThoroughfare:(null)
第二种方法就是 我们已经知道了一个经纬度 然后反查地名:
自己写个方法:
-(void)change{ //22.540681,=114.061324 CLLocationCoordinate2D coordinate; coordinate.latitude = 22.540681; coordinate.longitude = 114.061324; CLLocation *newLocation=[[CLLocation alloc]initWithLatitude:coordinate.latitude longitude: coordinate.longitude]; CLGeocoder *geocoder=[[CLGeocoder alloc] init]; [geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { CLPlacemark *placemark=[placemarks objectAtIndex:0]; NSLog(@"我我的:%@\n country:%@\n postalCode:%@\n ISOcountryCode:%@\n ocean:%@\n inlandWater:%@\n locality:%@\n subLocality:%@ \n administrativeArea:%@\n subAdministrativeArea:%@\n thoroughfare:%@\n subThoroughfare:%@\n", placemark.name, placemark.country, placemark.postalCode, placemark.ISOcountryCode, placemark.ocean, placemark.inlandWater, placemark.administrativeArea, placemark.subAdministrativeArea, placemark.locality, placemark.subLocality, placemark.thoroughfare, placemark.subThoroughfare); }];}
nslog 的结果和上面的一样。
iOS 根据经纬度反查 地名
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。