从邮编或城市/州获取坐标

3

我现在正在使用Map Kit和Core Location,需要从邮编或城市/州获取位置信息。 有方法可以实现吗?


可以使用Google API吗?点击这里查看 - undefined
3个回答

10
您可以使用支持地址转换为坐标和反向操作的CLGeocoder类进行操作。例如:
[geocoder geocodeAddressString:@"<postcode here>"
             completionHandler:^(NSArray* placemarks, NSError* error){
                 for (CLPlacemark* aPlacemark in placemarks)
                 {
                     // Process the placemark.
                 }
}];

你可能想使用许多不同的方法。例如,你可以将搜索限制在特定区域内。


啊,不知道它可以这样使用。非常感谢你。 - undefined

0

-1
使用这个
-(CLLocationCoordinate2D) getLocationFromAddressString:(NSString*) addressStr {

double latitude = 0, longitude = 0;
NSString *esc_addr =  [addressStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *req = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
NSString *result = [NSString stringWithContentsOfURL:[NSURL URLWithString:req] encoding:NSUTF8StringEncoding error:NULL];
if (result) {
    NSScanner *scanner = [NSScanner scannerWithString:result];
    if ([scanner scanUpToString:@"\"lat\" :" intoString:nil] && [scanner scanString:@"\"lat\" :" intoString:nil]) {
        [scanner scanDouble:&latitude];
        if ([scanner scanUpToString:@"\"lng\" :" intoString:nil] && [scanner scanString:@"\"lng\" :" intoString:nil]) {
            [scanner scanDouble:&longitude];
        }
    }
}
CLLocationCoordinate2D center;
center.latitude = latitude;
center.longitude = longitude;
return center;

}

此方法在您将地址作为参数传递给它时,使用Google API返回坐标

1
这个解决方案每天有2500个请求的限制,而且结果必须显示在谷歌地图上,因此对于iOS6无效。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接