0

We are building a series of applications for the IPhone (IOS5), where we use reverse geocoding. Most of the time, CLGeocoder returns a range for the address number (eg. "someaddress 2-5"). We want to retrieve the exact street number for every reverse geocoding request.

As I have come to understand, this is not controlled by me as a developer but rather by Apple, which makes a call to Google and returns the results (the range of street numbers). Has anybody else encountered the same problem and found a solution?

One solution I was advised to do is purchase the google maps API for business. In its documentation it states that it offers "advanced geocoding", but no details are given for reverse geocoding and street numbers. Has anybody had any experience with this API?

Another thing that comes in mind is to use some third-party service that does reverse geocoding. But the thing I am not sure is if Apple will accept it. Does anybody has to suggest a third-party service that does reverse geocoding and returns the exact street number for a given position on the map?

Thank you in advance

1 Answers1

0

It looks like GeoNames would fit your needs well.

From the Wikipedia page:

GeoNames is a geographical database available and accessible through various Web services, under a Creative Commons attribution license.

I myself have been using CLGeocoder, and haven't experienced any issues with it returning a range of street numbers.

Imirak
  • 1,323
  • 11
  • 21
  • I did not post the details right. As soon as the app launches, I track the user's location through CLGeocoder and show it on a mapView with a merker. After that, the user can reposition the marker on the mapView and the address is shown to the user (every time he changes the marker the new address must be shown). So it is not a CLGeocoder issue but rather a mapView issue. – Thanassis Bantios Jul 27 '12 at 07:23
  • Another thing that may affect performance is the country. I am primary concerned about Greece, maybe other countries give better results. I will check GeoNames thanks – Thanassis Bantios Jul 27 '12 at 07:31
  • Hmmm... well it could still be a CLGeocoder problem. Because when the user drags the pin around, you get the coordinates of the pin and then reverse geocode it for the address don't you? Also, the CLGeocoder class reference: (http://developer.apple.com/library/ios/#technotes/tn2289/_index.html) shows that it is supported in Greece. – Imirak Jul 28 '12 at 16:50
  • Hi Imirak. Yes you are right, this is exactly what I do. But what I said is I think i do not have any power over the results I receive. I call the method reverseGeocodeLocation:completionHandler: and I pass as the location parameter the lat/long I take from the maps' region center. The lat/long i take from the map is very accurate (6 digits), but still the results I get are not accurate (I receive a range of street numbers most of the time). Do you know any way I can get CLGeocoder to be more precise?? – Thanassis Bantios Jul 30 '12 at 07:53
  • That is very weird. I suppose it may have something to do with your location. Do you have good connection? And have you tried testing it anywhere else? – Imirak Jul 30 '12 at 13:54