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

时间:2015-06-15 09:47:37

标签: ios objective-c google-maps geocoding

在某些情况下,我没有获得正确的转发地理编码结果。当我搜索某些地方或酒店时,它会显示其他地方或地区的结果。我有以下代码。我研究了以下link。我应该放置什么网址来获得正确的结果。

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

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中搜索辐射时,它显示如下

enter image description here

  

但是当我在我的应用程序中搜索时,它会显示不同的位置,然后搜索我的内容    enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用Region Biasingaccording to wiki应该NP。因此,请在查询末尾添加&region=np

或者您可以使用Viewport Biasing来设置搜索范围。

答案 1 :(得分:1)

我已经完成了您在我的某个应用中提出的问题,但网址不同。

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

ActiveSheet.Close SaveChanges:=True