转发地理编码不会给出正确的结果

在某些情况下,我没有得到正确地理编码的正确结果。 当我搜索某些地方或酒店时,它会显示其他地方或地区的结果。 我有以下代码。 我研究以下链接 。 我应该放置什么url才能获得正确的结果。

我们如何实现以下网站中给出的以下内容

https://developers.google.com/places/webservice/autocomplete

请求包含“Vict”的地址,其结果为法语:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=API_KEY对包含“Vict”的城市的请求,其结果为巴西葡萄牙语:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=API_KEY

我已经实现了以下但是没有给出我所预期的结果

- (CLLocationCoordinate2D)addressLocation{ NSError *error = nil; // NSString *lookUpString = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?address=%@&sensor=true", SearchtextField]; // NSString *API_KEY=@"AIzaSyB27SkGBzvEYKcxvZ5nmOVWvrA-6Xqf-7A"; NSString *API_KEY=@"AIzaSyCHcqJcqZbP1XpU-WB4VfRct5hpdgqisSY"; NSString *lookUpString = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/geocode/json?address=%@&region=np&key=%@", SearchtextField,API_KEY]; lookUpString = [lookUpString stringByReplacingOccurrencesOfString:@" " withString:@"+"]; NSData *jsonResponse = [NSData dataWithContentsOfURL:[NSURL URLWithString:lookUpString]]; NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonResponse options:kNilOptions error:&error]; NSArray *locationArray = [[[jsonDict valueForKey:@"results"] valueForKey:@"geometry"] valueForKey:@"location"]; NSString *statusString = [jsonDict valueForKey:@"status"]; if ([statusString isEqualToString:@"OK"]) { locationArray = [locationArray objectAtIndex:0]; Str_Latitude= [locationArray valueForKey:@"lat"]; Str_Longitude= [locationArray valueForKey:@"lng"]; NSLog(@"LatitudeString:%@ & LongitudeString:%@", Str_Latitude, Str_Longitude); /*Google place latitude Longitude*/ Arr_LatLong = @[Str_Latitude,Str_Longitude]; [[NSUserDefaults standardUserDefaults] setValue:Str_Latitude forKey:@"Str_Latitude"]; [[NSUserDefaults standardUserDefaults] setValue:Str_Longitude forKey:@"Str_Longitude"]; [[NSUserDefaults standardUserDefaults] synchronize]; GogLatitude = [Str_Latitude doubleValue]; Goglongitude = [Str_Longitude doubleValue]; if (Bool_SearchField) { [self getGoogleAddress]; Bool_SearchField=FALSE; }else{ } }else{ UIAlertView *alertview =[[UIAlertView alloc] initWithTitle:@"Address not found" message:@"make sure you enter a valid address" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alertview show]; NSLog(@"Something went wrong, couldn't find address"); [self.tableView reloadData]; } GogLocation.latitude = GogLatitude; GogLocation.longitude = Goglongitude; return GogLocation; } 

当我在maps.google.com搜索radission时,它显示如下

在此处输入图像描述

但是,当我在我的应用程序中搜索时,它会显示不同的位置,然后我搜索 在此处输入图像描述

您可以使用区域偏差 , 根据维基 ,它应该是NP 。 因此,在查询结束时添加&region=np

或者,您可以使用“ 视口偏差”来设置搜索范围。

我已经完成了你在我的一个应用程序中提出的问题,但url不同。

我发布每次在文本字段中输入内容时调用的函数。

 -(void) startAutocomplete{ NSString* baseUrl = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=%@&key=AIzaSyDz3HAmNY8NsgIhtA8gtbH-QA08Lg9tej4&types=all", self.locationTextfield.text]; NSURL *url = [NSURL URLWithString:[baseUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; NSLog(@"Url: %@", url); NSURLRequest *request = [NSURLRequest requestWithURL:url]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { if (connectionError!=nil) { [[[UIAlertView alloc] initWithTitle:nil message:connectionError.localizedDescription delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil] show ] ; }else{ NSError *error = nil; self.searchResult= [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; //NSLog(@"result:%@",self.searchResult); [self.tableView reloadData]; } }]; }