通过 CLGeocoder 的方法查找一个区域中的所有位置

Posted

技术标签:

【中文标题】通过 CLGeocoder 的方法查找一个区域中的所有位置【英文标题】:Find all locations in a region through methods of CLGeocoder 【发布时间】:2012-05-20 13:41:39 【问题描述】:

使用“--reverseGeocodeLocation:completionHandler:”方法对一个Location进行Reverse Geocoding很方便。但是如何获取一个区域内的所有位置。

ps。如果一个地区有几个地方。如何使用区域信息找出所有地点?例如反向地理编码一个位置,给定一个坐标,返回一个位置。这里我要给一个区域,返回该区域的所有位置。

【问题讨论】:

你能说得清楚一点吗? 【参考方案1】:

有一个返回 JSON 的 google Geocoder API,它只是一种使用 GET 方法的网络服务

This 是 Google Gecoder API,This 是该网络服务的链接,在此链接中,我将区域名称指定为 london。

注意:您需要在代码中包含 SBJson 库。

在该链接的末尾我附加了地址,如果您附加地址 - 您需要提供区域名称(或)如果您附加纬度和经度,您需要提供坐标,它将相应地返回结果。

而调用google api的代码会是这样的

                //Call the Google API
                NSString *req = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
                NSLog(@"The get address is %@", req);
                //Pass the string to the NSURL
                NSString *result = [NSString stringWithContentsOfURL:[NSURL URLWithString:req] encoding:NSUTF8StringEncoding error:NULL];
                NSLog(@"The result is %@", result);
                //Initialize the SBJSON Class
                SBJSON *parser = [[SBJSON alloc] init];
                NSError *error = nil;
                //Get the resullts and stored in the address array
                addressArray = [parser objectWithString:result error:&error];
                //Get the latitude values for the given address
                NSDictionary *dict = [[[addressArray valueForKey:@"results"] valueForKey:@"geometry"] valueForKey:@"location"];
                self.latitudeValue = [[dict valueForKey:@"lat"] objectAtIndex:0];
                self.longitudeValue = [[dict valueForKey:@"lng"] objectAtIndex:0];
                NSLog(@"LAT : %@",self.latitudeValue);
                NSLog(@"LONG : %@",self.longitudeValue);

【讨论】:

以上是关于通过 CLGeocoder 的方法查找一个区域中的所有位置的主要内容,如果未能解决你的问题,请参考以下文章

使用 CLGeocoder 反向地理编码查找当前位置

从 CLGeocoder 获取当前城市和国家?

将 MKMapView 更新为从 CLGeocoder 返回的 CLPlacemark

CLGeocoder 在 iOS8 上强制使用特定语言

CLGeoCoder 未按正确顺序附加地标

基于CLGeocoder - 地理编码