使用GPS反向地理编码

时间:2013-07-10 11:52:07

标签: iphone ios objective-c gps

我使用latitude (不含互联网)找到当前longitudeGPS

现在我想通过没有互联网的GPS使用纬度和经度来实现reverse geocoding

我已成功实施了互联网连接的反向地理编码。

这是我实施的代码: -

CLGeocoder * geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {

    NSString * location = ([placemarks count] > 0) ? [[placemarks objectAtIndex:0] locality] : @"Not Found";

    CLPlacemark *placemark = [placemarks objectAtIndex:0];

    NSString *MyAddress = @"";
    MyAddress = [[placemark.addressDictionary objectForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
    NSLog(@"address is %@", MyAddress);
}];

我搜索了这个,但找不到任何解决方案。

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:0)

你不能没有互联网,因为这个方法(reverseGeocodeLocation: completionHandler:)异步地将指定的位置数据提交给geocoding server并返回。

阅读CLGeocoder Class Reference的{​​{1}}。

如果你考虑一下,你需要有一个数据库才能获得一个地址,如果没有来自远程数据库,它应该在哪里收集这些信息。

答案 1 :(得分:0)

见这里:https://stackoverflow.com/a/4419113/2446155

那里提到的任何方法都有效。请记住,openstreetmap.org只允许您一次下载一小部分数据。 Cloudmate.com允许您一次下载大量数据,但它会使您的应用程序非常大。

您还可以考虑通过wifi下载并存储用户周围特定区域的所有CLGeocoder数据,然后可以在没有互联网的情况下使用它,但我不确定这是否可行。