从iPhone转发地理编码

鉴于mapkit目前没有提供前向地理编码function,任何人都可以提供帮助,我如何使用search栏从当前用户input的地址返回经纬度坐标。 如果有人可以提供很好的示例代码。

我为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来做到这一点,所以雅虎我觉得。 虽然两者都有商业用途的限制,所以阅读协议。