4

我在我的 iOS 项目中使用来自 Google Places API 的 GMSAutoCompleteViewController。

今天突然间我的 GMSAutoCompleteViewController 不断给我错误“无法加载搜索结果”。

我已经使用新的密钥重新生成了我的 API 密钥。我已经尝试了一切,但仍然有一些它不起作用。

我正在使用Objective-C。任何人都可以帮忙吗?

代码

GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init];
    acController.delegate = self;
[self.navigationController pushViewController:acController animated:YES];

委托方法

- (void)viewController:(GMSAutocompleteViewController *)viewController
                didAutocompleteWithPlace:(GMSPlace *)place {
    // Do something with the selected place.
    NSLog(@"Place name %@", place.name);
    NSLog(@"Place address %@", place.formattedAddress);
    NSLog(@"Place attributions %@", place.attributions.string);
    NSLog(@"Latitude = %.20f",place.coordinate.latitude);
    NSLog(@"Longitude = %.20f",place.coordinate.longitude);
    NSLog(@"Type = %@",place.types);
    NSLog(@"Place ID = %@",place.placeID);
    //[self dismissViewControllerAnimated:YES completion:nil];
    [self.navigationController popViewControllerAnimated:YES];

    /* Call and API in background to get the address according to the new LAT AND LONG as well
     Once get the address from there we can store the latitude and longitude in the cache
     if type of search is Postal code then we have to call another web service i.e. FIND ADDRESS to get the whole exact address */

    [self callWS_ConvertLatLongWithLatitude:[NSString stringWithFormat:@"%.20f",place.coordinate.latitude]
                               andLongitude:[NSString stringWithFormat:@"%.20f",place.coordinate.longitude]
                               inBackground:NO];

}

- (void)viewController:(GMSAutocompleteViewController *)viewController
didFailAutocompleteWithError:(NSError *)error {

    NSLog(@"error: %ld", [error code]);

    [self.navigationController popViewControllerAnimated:YES];

}

// User canceled the operation.
- (void)wasCancelled:(GMSAutocompleteViewController *)viewController {
    NSLog(@"Autocomplete was cancelled.");

    [self.navigationController popViewControllerAnimated:YES];
}

// Turn the network activity indicator on and off again.
- (void)didRequestAutocompletePredictions:(GMSAutocompleteViewController *)viewController {
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}

- (void)didUpdateAutocompletePredictions:(GMSAutocompleteViewController *)viewController {
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
4

4 回答 4

6

确保已启用适用于 IOS 的 Google Places API。

  1. 转到您的https://console.developers.google.com/apis/
  2. 选择“图书馆”-“Google Places API for iOS”
  3. 启用(蓝色按钮)

API Key 与 Google Maps APIKey 相同在此处输入图像描述

于 2017-11-28T14:17:04.313 回答
6

2018 年 6 月 18 日之后,谷歌限制了限额并更改了政策,您需要启用计费才能工作。

我已经启用了 google places api 和 google map api 但它仍然显示错误。

启用计费后,其已解决

于 2019-02-19T09:38:33.597 回答
0

-> 确保更新到最新版本的 Google Places Pod(GooglePlacepicker 已弃用)

-> 启用 Google Places API

-> 还要检查 APIKey 是否正确

于 2019-10-22T06:19:51.913 回答
0

我遇到了同样的问题。当我返回并再次检查计费帐户页面时,我注意到它没有列出我当前的工作项目名称。一旦我添加了我当前的项目,它就起作用了。

确保您当前的项目列在计费页面中

于 2019-06-06T21:58:33.127 回答