使用“–reverseGeocodeLocation:completionHandler:”方法对位置进行反向地理编码很方便。但是如何获取一个区域中的所有位置。
附言。如果一个地区有几个地方。如何使用区域信息找出所有地点?例如反向地理编码一个位置,给定一个坐标,返回一个位置。这里我想给一个区域,返回该区域的所有位置。
使用“–reverseGeocodeLocation:completionHandler:”方法对位置进行反向地理编码很方便。但是如何获取一个区域中的所有位置。
附言。如果一个地区有几个地方。如何使用区域信息找出所有地点?例如反向地理编码一个位置,给定一个坐标,返回一个位置。这里我想给一个区域,返回该区域的所有位置。
有一个返回 JSON 的 google Geocoder API,它只是一种使用 GET 方法的网络服务
这是 Google Gecoder API,这是该Web 服务的链接,在此链接中,我将区域名称指定为 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);