как получить координаты от общего адреса контента? - PullRequest
0 голосов
/ 29 марта 2012

Я получаю полный адрес и координаты адреса местоположения, но мне нужны только координаты, чтобы показать на карте Google.Как это возможно в iPhone?

- (void)geocode {
    [SVGeocoder geocode:addressField.text
             completion:^(NSArray *placemarks, NSError *error) {
                 UIAlertView *alertView;

                 if(!error && placemarks) {
                     SVPlacemark *placemark = [placemarks objectAtIndex:0];

                     NSLog(@"%@",placemarks);
                     alertView = [[UIAlertView alloc] initWithTitle:@"Placemark Found!" message:[placemark description] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
                 } else {
                     alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:[error description] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
                 }

                 [alertView show];
                 [alertView release];
             }];

ответ геокодированного

"{\ n address = {\ n Город = Налгонда; \ n Страна = Индия; \n CountryCode = IN; \ n State = \ "Андхра-Прадеш \"; \ n}; \ n координата = {\ n широта = \ "17.05239 \"; \ n долгота = \ "79.26718 \"; \ n}; \n
formattedAddress = \ "Налгонда, Андхра-Прадеш, Индия \"; \ n} "

1 Ответ

3 голосов
/ 29 марта 2012

Попробуйте это

- (CLLocationCoordinate2D) geoCodeUsingAddress:(NSString *)address
{
   double latitude = 0, longitude = 0;
   NSString *esc_addr =  [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
   NSString *req = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
   NSString *result = [NSString stringWithContentsOfURL:[NSURL URLWithString:req] encoding:NSUTF8StringEncoding error:NULL];
   if (result) {
        NSScanner *scanner = [NSScanner scannerWithString:result];
        if ([scanner scanUpToString:@"\"lat\":" intoString:nil] && [scanner scanString:@"\"lat\":" intoString:nil]) {
          [scanner scanDouble:&latitude];
          if ([scanner scanUpToString:@"\"lng\":" intoString:nil] && [scanner scanString:@"\"lng\":" intoString:nil]) {
              [scanner scanDouble:&longitude];
          }
        }
    }
   CLLocationCoordinate2D center;
   center.latitude = latitude;
   center.longitude = longitude;
   return center;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...