2012-07-05 26 views
9

Tôi gặp sự cố với CLGeocoder khi tôi gọi geocodeAddressString:withCompletionHandler Tôi chỉ nhận được một kết quả, mặc dù biết rằng chuỗi đầu vào sẽ trả về nhiều giá trị. Tham chiếu lớp thậm chí còn cho biết:CLGeocoder Chỉ trả lại một dấu vị trí

Trong trường hợp yêu cầu mã hóa địa lý chuyển tiếp, nhiều đối tượng dấu vị trí có thể được trả lại nếu thông tin được cung cấp mang lại nhiều vị trí có thể.

Tuy nhiên, mảng placemarks của tôi chỉ bao giờ có một mục trong nó:

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

Cảm ơn bạn đã giúp đỡ nào.


Tôi đã sử dụng các chuỗi như "Piccadilly, UK", "Union Street, Vương quốc Anh" chỉ trả lại một kết quả. Bây giờ tôi nghĩ về nó, đưa Anh vào cuối có thể là yếu tố góp phần.

+0

bạn có thể thêm chuỗi mẫu của mình để những người khác có thể tự kiểm tra cho mình –

+0

Xong, nhưng tôi nghĩ tôi đã nhận ra lỗi của mình bây giờ hahaha. Nhưng vấn đề là tôi cần kết quả để được cụ thể ở Anh, và sử dụng geocodeAddressString: inRegion: không phải là rất tốt như bạn phải gán một bán kính, do đó, một số Ireland sẽ được bao gồm. – prince

+0

À, đây là việc đi tiểu, ngay cả khi tôi sử dụng khoảng cách CLLocationDistance1 = 750; CLRegion * region = [[Phân bổ CLRegion] initCircularRegionWithCenter: CLLocationCoordinate2DMake (53.825564, -2.421976) bán kính: distance1 identifier: nil]; với geocodeAddressString: inRegion: sau đó nó mang lại cho tôi một số nơi ở Úc cho "Piccadilly". – prince

Trả lời

4

Tôi không biết về CLGeocoder nhưng nếu yêu cầu của bạn là một vị trí tìm kiếm một cách khác là sử dụng google tìm kiếm vị trí url http://maps.google.com/maps/geo?q=london mà trả về một json chứa thông tin vị trí phù hợp.

+0

Cảm ơn, tôi sẽ sử dụng nó trong khi chờ đợi vì tôi vẫn không thể làm việc này – prince

1

Thay vì UK sử dụng United Kingdom nó sẽ cung cấp cho bạn một số kết quả liên quan.
Hãy thử thêm một số thông tin khác vào địa chỉ của bạn.
Một điều nữa UK không phải là mã quốc gia hợp lệ là GB nhưng có vẻ như việc đặt GB thay vì UK không giải quyết được sự cố.
Hơn nữa, CLGeocoder không thông minh như Google Maps API ngay bây giờ vì táo sử dụng máy chủ riêng của mình để giải mã địa chỉ để bạn có thể sử dụng các dịch vụ của Google.

Các vấn đề liên quan