diff --git a/SVGeocoder/SVGeocoder.h b/SVGeocoder/SVGeocoder.h index 74995a0..bd85df1 100644 --- a/SVGeocoder/SVGeocoder.h +++ b/SVGeocoder/SVGeocoder.h @@ -27,16 +27,18 @@ typedef void (^SVGeocoderCompletionHandler)(NSArray *placemarks, NSHTTPURLRespon @interface SVGeocoder : NSOperation + (SVGeocoder*)geocode:(NSString *)address completion:(SVGeocoderCompletionHandler)block; -+ (SVGeocoder*)geocode:(NSString *)address region:(CLRegion *)region completion:(SVGeocoderCompletionHandler)block; ++ (SVGeocoder*)geocode:(NSString *)address region:(CLCircularRegion *)region completion:(SVGeocoderCompletionHandler)block; + (SVGeocoder*)reverseGeocode:(CLLocationCoordinate2D)coordinate completion:(SVGeocoderCompletionHandler)block; - (SVGeocoder*)initWithAddress:(NSString *)address completion:(SVGeocoderCompletionHandler)block; -- (SVGeocoder*)initWithAddress:(NSString *)address region:(CLRegion *)region completion:(SVGeocoderCompletionHandler)block; +- (SVGeocoder*)initWithAddress:(NSString *)address region:(CLCircularRegion *)region completion:(SVGeocoderCompletionHandler)block; - (SVGeocoder*)initWithCoordinate:(CLLocationCoordinate2D)coordinate completion:(SVGeocoderCompletionHandler)block; - (void)start; - (void)cancel; ++ (void)setLanguage:(NSString *)language; + @end \ No newline at end of file diff --git a/SVGeocoder/SVGeocoder.m b/SVGeocoder/SVGeocoder.m index 63861ad..b2213fa 100644 --- a/SVGeocoder/SVGeocoder.m +++ b/SVGeocoder/SVGeocoder.m @@ -26,6 +26,7 @@ @interface NSString (URLEncoding) - (NSString*)encodedURLParameterString; @end +static NSString *customLanguage; @interface SVGeocoder () @@ -73,7 +74,7 @@ + (SVGeocoder *)geocode:(NSString *)address completion:(SVGeocoderCompletionHand return geocoder; } -+ (SVGeocoder *)geocode:(NSString *)address region:(CLRegion *)region completion:(SVGeocoderCompletionHandler)block { ++ (SVGeocoder *)geocode:(NSString *)address region:(CLCircularRegion *)region completion:(SVGeocoderCompletionHandler)block { SVGeocoder *geocoder = [[self alloc] initWithAddress:address region:region completion:block]; [geocoder start]; return geocoder; @@ -103,7 +104,7 @@ - (SVGeocoder*)initWithAddress:(NSString*)address completion:(SVGeocoderCompleti } -- (SVGeocoder*)initWithAddress:(NSString *)address region:(CLRegion *)region completion:(SVGeocoderCompletionHandler)block { +- (SVGeocoder*)initWithAddress:(NSString *)address region:(CLCircularRegion *)region completion:(SVGeocoderCompletionHandler)block { MKCoordinateRegion coordinateRegion = MKCoordinateRegionMakeWithDistance(region.center, region.radius, region.radius); NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithObjectsAndKeys: address, @"address", @@ -116,6 +117,13 @@ - (SVGeocoder*)initWithAddress:(NSString *)address region:(CLRegion *)region com return [self initWithParameters:parameters completion:block]; } +#pragma mark - Custom language + ++ (void)setLanguage:(NSString *)language; +{ + customLanguage = language; +} + #pragma mark - Private Utility Methods @@ -126,7 +134,11 @@ - (SVGeocoder*)initWithParameters:(NSMutableDictionary*)parameters completion:(S [self.operationRequest setTimeoutInterval:kSVGeocoderTimeoutInterval]; [parameters setValue:@"true" forKey:@"sensor"]; - [parameters setValue:[NSLocale preferredLanguages][0] forKey:@"language"]; + if (customLanguage == nil) { + [parameters setValue:[NSLocale preferredLanguages][0] forKey:@"language"]; + } else { + [parameters setValue:customLanguage forKey:@"language"]; + } [self addParametersToRequest:parameters]; self.state = SVGeocoderStateReady;