Geocoder getFromLocationName is not returning anything if I’m searching for business places. Here are my finding so far:
- grocery places, commercial buildings -> no result
- schools -> finding results, but only returning Latitude and Longitude. I have to do reverse geocoding in order to get the address based on the coordinates, but the address wouldn’t be accurate.
- complete address -> same as school, only returning Latitude and Longitude
- hospital and pharmacy -> returning Latitude and Longitude
I’ve tested this on 1.6, 2.1 and 2.2 devices that has Google Maps.
I’m trying to find if there’s a limitation explained somewhere on the SDK, but there is none except:
The amount of detail in a reverse
geocoded location description may
vary, for example one might contain
the full street address of the closest
building, while another might contain
only a city name and postal code. The
Geocoder class requires a backend
service that is not included in the
core android framework. The Geocoder
query methods will return an empty
list if there no backend service in
the platform
(http://developer.android.com/reference/android/location/Geocoder.html)
[update]
So after nights of research, I can’t seems to make it work – Google simply wont give me the result. Some discussion on android-developers points a fact that getFromBusinessName was omitted when Google Navigation came out. So I’m starting to assume that Google is pulling back some of their geocoding service.
I can always create a webpage that use Google Geocoder API, but its limited to 2500 api call – and I dont think it will be legal (lol). So what are my alternatives here?
I’ve hit the same problem. I’m finding that the geocoding API often returns no results if I include the business/venue name, but by missing it off, the lat/long can be much less accurate.
I’ve implemented a pragmatic solution:
1. Call the API with a string including the business/venue name
2. If it fails, call it a second time without the business/venue name, just the address
I’ve yet to see a case where no location is returned, so it seems a decent compromise as it means I do at least get location data, if sometimes less accurate, and the cost of a second API call is mitigated with threaded calls.