从iPhone转发地理编码
鉴于mapkit目前没有提供前向地理编码function,任何人都可以提供帮助,我如何使用search栏从当前用户input的地址返回经纬度坐标。 如果有人可以提供很好的示例代码。
iOS 5现在允许转发地理编码:
我希望这有帮助!
我为Google的地理编码服务器创build了一个前向地理编码API。 看看我的blogpost: http : //blog.sallarp.com/ipad-iphone-forward-geocoding-api-google/
我已经创build了SVGeocoder ,一个简单的正向和反向地理编码器类的iOS。 它也使用Google地理编码API,并返回一个MKPlacemark 。
这是您如何对地址string进行地理编码:
NSString *addressString = @"3245 St-Denis, Montreal" SVGeocoder *geocodeRequest = [[SVGeocoder alloc] initWithAddress:addressString]; [geocodeRequest setDelegate:self]; [geocodeRequest startAsynchronous];
并且您将地理编码反转为CLLocationCoordinate2D对象,如下所示:
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(45.54181, -73.62928); SVGeocoder *rGeocoderRequest = [[SVGeocoder alloc] initWithCoordinate:coordinate]; [rGeocoderRequest setDelegate:self]; [rGeocoderRequest startAsynchronous];
SVGeocoderDelegate提供了这两种方法:
- (void)geocoder:(SVGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark; - (void)geocoder:(SVGeocoder *)geocoder didFailWithError:(NSError *)error;
我已经做了一些小的工作,正向和反向地理编码使用iOS 5的CoreLocation框架在github的CLGeocoder希望它可以帮助你。 https://github.com/Mangesh20/geocoding
这是目前版本的MapKit已知的问题。 文件bugreport和延迟#6628720所以他们使修复它的优先事项。
与此同时, 谷歌地图还有通过Yahoo Placemaker或Cloudmade推出的地理编码API。
这里也有一个框架: https : //github.com/tylerhall/CoreGeoLocation
来自文档的评论: 一个客观的地理编码器和反向地理编码器,主要是围绕着雅虎的地理编码服务或Google的地理API。
MapKit中没有这样的function。 你可以做的最好的是打电话给第三方的networking服务。 谷歌有一些API来做到这一点,所以雅虎我觉得。 虽然两者都有商业用途的限制,所以阅读协议。