ios 高德地图 通过索引输出经纬度 根据经纬度 定位

本文介绍如何使用iOS高德地图API中的CLGeocoder进行经纬度与地址之间的相互转换。包括根据经纬度获取地址信息的方法及根据地址获取经纬度的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ios 高德地图 通过索引输出经纬度 根据经纬度 定位,有需要的朋友可以参考下。


ios 高德地图新出了几个方法,实现地理位置的编码用到了CLGeocoder,CLGeocoder里面一共就下面这几种方法:

//根据location即经纬度输出具体地址

- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler;

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{

CLLocation * location = [locations firstObject];
self.repairsMapView.latitude = location.coordinate.latitude;
self.repairsMapView.longitude = location.coordinate.longitude;

CLGeocoder * geocoder = [[CLGeocoder alloc]init];

[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
if (error == nil && [placemarks count] > 0) {

//这时的placemarks数组里面只有一个元素


CLPlacemark * placemark = [placemarks firstObject];
NSLog(@"%@",placemark.addressDictionary); //根据经纬度会输出该经纬度下的详细地址 国家 地区 街道 之类的



}
}];

[manager stopUpdatingLocation];

}

//根据具体地址输出经纬度

- (void)geocodeAddressDictionary:(NSDictionary *)addressDictionary completionHandler:(CLGeocodeCompletionHandler)completionHandler;
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
- (void)geocodeAddressString:(NSString *)addressString inRegion:(CLRegion *)region completionHandler:(CLGeocodeCompletionHandler)completionHandler;

我就以- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;来做下说明

在使用CLGeocoder之前 需要 导入#import <CoreLocation/CoreLocation.h> 即corelocation.framework

CLGeocoder * geocoder = [[CLGeocoder alloc]init];

[geocoder geocodeAddressString:@"北京市长城" completionHandler:^(NSArray *placemarks, NSError *error) {
NSLog(@"%@",placemarks);

}];

//输出结果如下:

(
"Beijing Fengtai Great Wall (New Century Clothing Mansion), Beijing Fengtai Great Wall (New Century Clothing Mansion), Fengtai, Beijing China @ <+39.85067600,+116.39916000> +/- 100.00m, region CLCircularRegion (identifier:'<+39.85067650,+116.39916000> radius 57.99', center:<+39.85067650,+116.39916000>, radius:57.99m)"
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值