Форвард геокодирование с iPhone - PullRequest
14 голосов
/ 17 июля 2009

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

Ответы [ 7 ]

32 голосов
/ 29 октября 2011

iOS 5 теперь позволяет пересылать геокодирование:

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/UsingGeocoders/UsingGeocoders.html#//apple_ref/doc/uid/TP40009497-CH4-SW5

Надеюсь, это поможет!

26 голосов
/ 15 марта 2010

Я создал API прямого геокодирования для сервера геокодирования Google. Проверьте мой блог: http://blog.sallarp.com/ipad-iphone-forward-geocoding-api-google/

15 голосов
/ 12 февраля 2011

Я создал SVGeocoder , простой класс обратного геокодера и для iOS. Он также использует Google Geocoding API и возвращает 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 предлагает следующие 2 метода:

- (void)geocoder:(SVGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark;
- (void)geocoder:(SVGeocoder *)geocoder didFailWithError:(NSError *)error;
3 голосов
/ 08 августа 2012

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

2 голосов
/ 08 февраля 2011

Здесь также есть рамки: https://github.com/tylerhall/CoreGeoLocation

Комментарий из документации: Объективный геокодер и обратный геокодер, охватывающие в основном службы геокодирования Yahoo или Google Geo API.

2 голосов
/ 17 июля 2009

Это известная проблема с текущей версией MapKit. Отправьте отчет об ошибке и введите # 6628720, чтобы сделать его приоритетным.

Между тем, существуют прямые API геокодирования от Google Maps , через Yahoo Placemaker или Cloudmade .

1 голос
/ 17 июля 2009

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

...