gpt4 book ai didi

objective-c - 查找纬度和经度返回 0,0

转载 作者:行者123 更新时间:2023-11-29 11:18:01 25 4
gpt4 key购买 nike

我正在使用 Google 获取地址以获取经纬度。我跑过大约 60-65 个地址。每次我都会随机得到 5 或 6 个返回 0,0 坐标对。

每次失败的索引都是不同的,所以我确定这不是地址问题。

这是我用来返回纬度和经度的代码

是否可能是我从 for 循环内部调用此方法?也许如此快速地一遍又一遍地调用它有时会导致它出现故障?

-(CLLocationCoordinate2D)addressLocation:(NSString*)_address city:(NSString*)_city state:(NSString*)_state {
NSString *temp = [NSString stringWithFormat:@"%@, %@, %@", _address, _city, _state];
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", [temp stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSError* error = nil;
NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString ] encoding:NSASCIIStringEncoding error:&error];

NSArray *listItems = [locationString componentsSeparatedByString:@","];
double latitude = 0.0;
double longitude = 0.0;

if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) {
latitude = [[listItems objectAtIndex:2] doubleValue];
longitude = [[listItems objectAtIndex:3] doubleValue];
}
else {
NSLog(@"Error: %@", [error description]);;
}

CLLocationCoordinate2D location;
location.latitude = latitude;
location.longitude = longitude;

return location;
}

编辑

如果其他人遇到此问题,我暂时找到了解决方法。

一旦找到每个地址的纬度和经度,我就会浏览我的列表。

如果 Google 查询返回错误,我将该地址添加到一个保存数组中。 意味着我通过了 Firoze 提到的速率限制。

完成初始遍历后,我遍历保存数组并找到每个地址的位置。

我确信有更清晰的实现方式,但对于无法获得营业执照的任何人来说,这是一种绕过黑客攻击的方式。

希望对你有帮助科里

最佳答案

您应该检查 locationString 是否为 nil。如果是这样,请查看错误。我的猜测是您的通话受到速率限制。

您可能应该查看 Google 针对此服务的服务条款。

关于objective-c - 查找纬度和经度返回 0,0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8571269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com