2012-01-10 3 views
21

Moja aplikacja na iPhone ma rozwiązać adres na podstawie szerokości i długości geograficznej użytkownika. reverseGeocodeLocation działa dobrze, ale wyniki są w języku angielskim.jak zlokalizować wynik adresu z reverseGeocodeLocation?

Czy istnieje sposób na zlokalizowanie wyników w innych językach?

Nie mogłem znaleźć żadnych informacji na ten temat na Apple lub gdziekolwiek indziej.

Kod używam jest:

CLGeocoder *geocoder = [[[CLGeocoder alloc] init] autorelease]; 
CLLocation *location = [[[CLLocation alloc] 
     initWithLatitude:coord.latitude longitude:coord.longitude] autorelease]; 

[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { 
    NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!"); 

    if (error){ 
     NSLog(@"Geocode failed with error: %@", error); 
     [self displayError:error]; 
     return; 
    } 
    if(placemarks && placemarks.count > 0) 
    { 
     //do something 
     CLPlacemark *topResult = [placemarks objectAtIndex:0]; 

     NSString *addressTxt = [NSString stringWithFormat:@"%@ %@,%@ %@", 
      [topResult subThoroughfare],[topResult thoroughfare], 
      [topResult locality], [topResult administrativeArea]]; 
    } 
} 
+2

CLGeocoder bazuje na geokodera google, co może powodować miejscowe wyników jeśli opcja językowa jest ustawiona w parametrach adresu URL. Korzystam z google api i otrzymuję wyniki, które wydają się być zlokalizowane w innych językach. Może to być oczywiste, ale czy ustawiasz język urządzenia na coś innego niż angielski? Co jeszcze próbowałeś? – Jim

+0

tak! zadziałało, zmieniając język, ale pytanie pozostaje nadal, czy możliwe jest wymuszenie wyników na konkretnym języku? – user513790

+0

Z dokumentacji nie sądzę. Jeśli w ciągu kilku godzin nie otrzymasz pełniejszej odpowiedzi, pokażę ci kod, który może ci pomóc. Nie mam tego jednak przed sobą. – Jim

Odpowiedz

1

Mattt Thompson ma wielką writeup na stosując metodę z AddressBookUI.framework do lokalizowania adresów na swojej stronie NSHipster. Ma także formatting library na github, który zawiera klasę do tego typu lokalizacji, która wykorzystuje podejście AddressBookUI.framework, które opisał.

9

znalazłem jak zlokalizować nazwę kraju, może to pomoże:

CLPlacemark *placemark; 

NSString *identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary dictionaryWithObject: placemark.ISOcountryCode forKey: NSLocaleCountryCode]]; 
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
NSString *country = [usLocale displayNameForKey: NSLocaleIdentifier value: identifier]; 

wstawić dowolny identyfikator kraju zamiast @ „pl”

+0

szukasz tej odpowiedzi od godzin, thx :) –

+8

Czy wiesz, jak mogę zrobić to samo dla miejsca oznaczenia miejsca.locality? np. "Roma" -> "Rzym" – Dodgson86

Powiązane problemy