gpt4 book ai didi

ios - 从谷歌地图获取经过解析且格式正确的地址

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:21:51 24 4
gpt4 key购买 nike

我正在尝试在我的 iOS 应用程序中使用 Google 的 Maps API 服务,将包含地址的字符串转换为正确解析的合法地址。我了解 Google 的 API 不会验证地址是否有效;我只需要它将字符串解析为完整的逻辑地址。

在 API 的网站上仔细研究之后,我发现唯一的方法是使用地理编码功能将输入字符串转换为坐标,然后使用反向地理编码进行转换它回到我可以解析的东西。有没有办法以更少的开销来做到这一点?这样做似乎有点倒退。

示例:347 N Canon Dr Beverly Hills, CA 90210。Google map 似乎是直观区分地址不同部分的最佳选择。否则,我冒着处理诸如 1040 8th street 变成 104 08th street 之类的问题的风险。我希望能够输入一个大部分格式正确的地址,并让谷歌使用 API 来更正它并返回一些我可以传递到网络服务的东西。

最佳答案

我想你想要NSDataDetector ,内置于 Cocoa Touch 中。

它有一个子类型,NSTextCheckingTypeAddress,它将尝试为您解析地址。

在您的示例字符串上使用一个:

NSString * address = @"347 N Canon Dr Beverly Hills, CA 90210";
NSError * err;
NSDataDetector * addrParser = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeAddress
error:&err];
__block NSDictionary * addressParts;
if( addrParser ){
[addrParser enumerateMatchesInString:address
options:0
range:(NSRange){0, [address length]}
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
addressParts = [result addressComponents];
}];
}

NSLog(@"%@", addressParts);

生成这个字典:

2014-09-25 20:26:57.747 ParseAddress[56154:60b] {
City = "Beverly Hills";
State = CA;
Street = "347 N Canon Dr";
ZIP = 90210;
}

列出了可能的键 in the docs .

关于ios - 从谷歌地图获取经过解析且格式正确的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26046789/

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