我使用latitude
(不含互联网)找到当前longitude
和GPS
。
现在我想通过没有互联网的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);
}];
我搜索了这个,但找不到任何解决方案。
我该怎么做?
感谢。
答案 0 :(得分:0)
你不能没有互联网,因为这个方法(reverseGeocodeLocation: completionHandler:
)异步地将指定的位置数据提交给geocoding server
并返回。
阅读CLGeocoder Class Reference
的{{1}}。
如果你考虑一下,你需要有一个数据库才能获得一个地址,如果没有来自远程数据库,它应该在哪里收集这些信息。
答案 1 :(得分:0)
见这里:https://stackoverflow.com/a/4419113/2446155
那里提到的任何方法都有效。请记住,openstreetmap.org只允许您一次下载一小部分数据。 Cloudmate.com允许您一次下载大量数据,但它会使您的应用程序非常大。
您还可以考虑通过wifi下载并存储用户周围特定区域的所有CLGeocoder
数据,然后可以在没有互联网的情况下使用它,但我不确定这是否可行。