1

目前我正在为 iPad 开发一个应用程序,它在某个时候应该显示一个城市列表,这些城市旁边是与用户当前位置的距离。

我正在使用一个循环,它使用我之前构建的数据库。这是代码:

NSString *address = [NSString stringWithFormat:@"%@, Nederland", [info2 objectForKey:@"stadsnaam"]];
    [self.geocoder geocodeAddressString:address completionHandler:^(NSArray *placemarks, NSError *error) {
        CLPlacemark *placemark = [placemarks objectAtIndex:0];
        CLLocation *location = placemark.location;
        CLLocationCoordinate2D firstLocation = location.coordinate;
        NSLog(@"%f,%f", firstLocation.latitude, firstLocation.longitude);
    }];

这段代码在 for 循环中。但是第一次运行时,它只返回 0.0000

第二次激活循环(我确信它运行不止一次)它只返回当前位置和第一个城市之间的距离。

该应用程序从这段代码中获取城市名称:[NSString stringWithFormat:@"%@, Nederland", [info2 objectForKey:@"stadsnaam"]]

我验证并有效。我想避免使用 Google API,因为我每天可能会发出超过最大请求 XD

任何帮助表示赞赏,如果有任何不完全清楚的地方请告诉我,并提前感谢!

4

1 回答 1

2

您需要阅读以下文档-geocodeAddressString:completionHandler:

发起正向地理编码请求后,不要尝试发起另一个正向或反向地理编码请求。

您可以使用 CLGeocoder 的geocoding属性来确定地理编码操作是否正在进行中。

于 2013-05-20T15:12:05.943 回答