【问题标题】:CLGeocoder Only Returning One PlacemarkCLGeocoder 只返回一个地标
【发布时间】:2012-07-05 12:17:22
【问题描述】:

我在使用 CLGeocoder 时遇到问题,当我调用 geocodeAddressString:withCompletionHandler 时,我只能得到一个结果,尽管我知道输入的字符串应该返回多个值。类引用甚至指出:

在前向地理编码请求的情况下,如果提供的信息产生多个可能的位置,则可能会返回多个地标对象。

但是,我的 placemarks 数组中只有一项:

    [geocoderDestination geocodeAddressString:destination completionHandler:^(NSArray *placemarks, NSError *error){
NSLog(@"array count:%i", [placemarks count];}

感谢您的帮助。


我使用了诸如“Piccadilly, UK”、“Union Street, UK”之类的字符串,它们只返回了一个结果。现在我想起来了,把英国放在最后可能是促成因素。

【问题讨论】:

  • 您可以添加您的示例字符串,以便其他人可以自己测试
  • 完成了,但我想我现在已经意识到我的错误了哈哈哈。但问题是我需要英国特定的结果,并且使用 geocodeAddressString:inRegion: 不是很好,因为你必须指定一个半径,所以会包括一些爱尔兰。
  • 好吧,即使我使用 CLLocationDistance distance1 = 750; CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:CLLocationCoordinate2DMake(53.825564, -2.421976) radius:distance1 identifier:nil];使用 geocodeAddressString:inRegion: 然后它在澳大利亚为“皮卡迪利”提供了一些位置。

标签: iphone objective-c nsarray clgeocoder


【解决方案1】:

我不了解 CLGeocoder,但如果您的要求是位置搜索,另一种方法是使用 google 位置搜索 url http://maps.google.com/maps/geo?q=london,它返回一个包含匹配位置信息的 json。

【讨论】:

  • 谢谢,我将在此期间使用它,因为我仍然无法正常工作
【解决方案2】:

而不是UK 使用United Kingdom 它会给你一些相关的结果。
尝试在您的地址中添加更多信息。
还有一件事UK 不是有效的国家代码,它是GB,但似乎用GB 代替UK 并没有解决问题。
此外,CLGeocoder 现在还不如Google Maps API 聪明,因为苹果使用自己的服务器来解码地址,因此您可以使用 Google 服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多