9

I have a problem with CLGeocoder where when I call geocodeAddressString:withCompletionHandler I only ever get one result back, despite knowing that the inputted string should return more than one value. The class reference even states:

In the case of forward-geocoding requests, multiple placemark objects may be returned if the provided information yielded multiple possible locations.

However, my placemarks array only ever has one item in it:

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

Thank you for any help.


I have used strings such as "Piccadilly, UK", "Union Street, UK" which have only returned one result. Now that I think about it, putting UK on the end might be the contributing factor.

prince
  • 506
  • 6
  • 18
  • you can add your sample string, so that others can test for themselves –  Jul 07 '12 at 12:39
  • Done, but I think I've realised my error now hahaha. But the problem is that I need the results to be UK specific, and using geocodeAddressString:inRegion: is not very good as you have to assign a radius, so some of Ireland would be included. – prince Jul 07 '12 at 12:55
  • 1
    Well this is taking the piss, even if I use CLLocationDistance distance1 = 750; CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:CLLocationCoordinate2DMake(53.825564, -2.421976) radius:distance1 identifier:nil]; with geocodeAddressString:inRegion: then it gives me some place in Australia for "Piccadilly". – prince Jul 07 '12 at 13:13

2 Answers2

4

I dont know about CLGeocoder but if your requirement is a location search another way is to use google location search url http://maps.google.com/maps/geo?q=london which returns a json containing the matched location information.

Ab'initio
  • 5,368
  • 4
  • 28
  • 40
1

Instead of UK use United Kingdom it will give you some related result.
Try to add some more info in your address.
One more thing UK is not a valid country code it's GB but it seems that putting GB instead of UK didn't solve the problem.
Moreover CLGeocoder is not as smart as Google Maps API right now because apple uses its own server to decode addresses so you can use Google services.

Inder Kumar Rathore
  • 39,458
  • 17
  • 135
  • 184