Перенос геокодирования с iPhone

Учитывая, что mapkit сегодня не предоставляет функции прямого геокодирования, может ли кто-нибудь помочь в том, как я могу использовать панель поиска, чтобы вернуть координату широты и долготы с введенного пользователем адреса сегодня. Если кто-то может предоставить образец кода, который был бы большим.

Ответ 3

Я создал SVGeocoder, простой передний и класс геокодирования для iOS. Он также использует API геокодирования Google и возвращает MKPlacemark.

Вот как вы геокодируете адресную строку:

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;

Ответ 4

Я проделал небольшую работу по прямому и обратному геокодированию с использованием CLGeocoder в iOS5 CoreLocation на github, надеюсь, он вам поможет. https://github.com/Mangesh20/geocoding

Ответ 5

Это известная проблема с текущей версией MapKit. Файл bugreport и dupe # 6628720, чтобы они фиксировали его приоритетом.

В то же время существуют API-интерфейсы Geocoding с Карты Google через Yahoo Placemaker, или Cloudmade.

Ответ 6

Здесь также существует структура: https://github.com/tylerhall/CoreGeoLocation

Комментарий от документов: Объективный GeoCoder и Reverse Geocoder, в первую очередь, обертывание услуг Yahoo Geocoding или Google Geo API.

Ответ 7

В MapKit такой функции нет. Лучшее, что вы можете сделать, это позвонить в сторонний веб-сервис. У Google есть некоторые API, чтобы сделать это, и, таким образом, Yahoo подумал. У обоих есть ограничения на коммерческое использование, поэтому прочтите соглашение.