获得" null"在iOS中使用GMSMap的reverseGeocodeCoordinate方法?

时间:2017-02-01 07:11:36

标签: ios objective-c google-maps location geocode

我使用以下代码从lat和long获取地址:

NSLog(@">>>>%f,%f",location.latitude,location.longitude);

[[GMSGeocoder geocoder] reverseGeocodeCoordinate:location completionHandler:^(GMSReverseGeocodeResponse *resp, NSError *error)
 {
     NSLog(@"response%@",resp);
 }];

当我尝试使用正确的lat和long进行地理编码时,对于特定位置,我得到null作为响应,错误就是这个。我的Android设备没有发生这种情况。

我可以看到响应为nil,错误是:

Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSErrorFailingURLStringKey=https://clients4.google.com/glm/mmap, _kCFStreamErrorCodeKey=-2102, NSErrorFailingURLKey=https://clients4.google.com/glm/mmap, NSLocalizedDescription=The request timed out., _kCFStreamErrorDomainKey=4, NSUnderlyingError=0x1659ae80 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSErrorFailingURLStringKey=https://clients4.google.com/glm/mmap, NSErrorFailingURLKey=https://clients4.google.com/glm/mmap, NSLocalizedDescription=The request timed out., _kCFStreamErrorDomainKey=4}}}

2 个答案:

答案 0 :(得分:0)

出现此问题是因为您的API密钥已过期,如果您在Google控制台中重新生成API密钥,它将可以正常工作并获得响应

API密钥示例:AIzaSyDleduRwellp3OwLMAOzLt4MZWsJMWqMvM

答案 1 :(得分:0)

如果您使用的是模拟器,还请检查您的模拟器位置设置是否设置为none。您可以通过选择模拟器进行检查,然后转到:

  

Debug> Location> none

希望有帮助。