2012-07-05 68 views
9

我有一個CLGeocoder的問題,當我打電話給geocodeAddressString:withCompletionHandler時,我只能得到一個結果,儘管知道輸入的字符串應該返回多個值。該類參考甚至規定:CLGeocoder只返回一個地標

在前向地理編碼請求的情況下,如果提供的信息產生多個可能的位置,則可能會返回多個地標對象。

然而,我的地標陣列永遠只能有這一個項目:

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

感謝您的任何幫助。


我用字符串,如「皮卡迪利大街,英國」,「聯盟街,英國」已經只返回了一個結果。現在我想到了,把英國放在最後可能是促成因素。

+0

您可以添加您的示例字符串,以便其他人可以自行測試 – 2012-07-07 12:39:18

+0

完成,但我認爲我已經意識到我的錯誤,現在哈哈哈。但問題是我需要的結果是英國特定的,並且使用geocodeAddressString:inRegion:不是很好,因爲您必須指定半徑,因此將包含一些愛爾蘭。 – prince 2012-07-07 12:55:25

+0

好吧,這是採取小便,即使我使用CLLocationDistance distance1 = 750; CLRegion * region = [[CLRegion alloc] initCircularRegionWithCenter:CLLocationCoordinate2DMake(53.825564,-2.421976)radius:distance1 identifier:nil];與geocodeAddressString:inRegion:然後它給了我一些地方在澳大利亞的「皮卡迪利」。 – prince 2012-07-07 13:13:37

回答

4

我不知道CLGeocoder,但如果您的要求是位置搜索另一種方式是使用谷歌位置搜索網址http://maps.google.com/maps/geo?q=london,它返回一個JSON包含匹配的位置信息。

+0

謝謝,我會在此期間使用它,因爲我仍然無法實現此功能 – prince 2012-07-06 09:28:02

1

而不是UK使用United Kingdom它會給你一些相關的結果。
嘗試在您的地址中添加更多信息。
還有一件事UK是不是一個有效的國家代碼它是GB但似乎把GB而不是UK沒有解決問題。
此外CLGeocoder現在不像Google Maps API那麼聰明,因爲蘋果使用自己的服務器來解碼地址,因此您可以使用Google服務。