I'm trying to get the street address and/or address's feature name of the user's current physical location. If the user is at home, it should return their street address, but if they're in a shopping mall I'd expect any of a number of shops or the mall as a whole depending on which specific locations the google maps database contains.
I'm just wondering if the reverse geocoding that is taking place in the android location API is somehow different (or uses slightly different address data sources) to that of Google Maps. I wonder this because I can reproduce the following scenario:
- I can find a house by browsing on this map: http://code.google.com/apis/maps/docume ... verse.html
and the popup message tells me the correct house number, street, suburb etc, as well as the latitude and longitude. An example is
- I then put the latitude and longitude into the GPS simulator in the Android DDMS and send it to the device.
- I make a call to locationManager.getLastKnownLocation("gps") and from the latitude and longitude I call geocoder.getFromLocation(latitude, longitude, 5) to get all the possible addresses, or at least the top 5, for that location.
The top 5 results always step back in terms of detail, e.g. first result gives street, suburb, postcode, state, country; second gives suburb, postcode, state and country; third just gives postcode, state and country; fourth gives state and country and fifth just gives country.
The problems I have with the results are
1. In no examples that I've tried can I get a house number returned. Most times it's the correct street, suburb etc.
2. Sometimes, if it's a house at the intersection of two streets, it'll give the wrong street, and none of the top 5 results are the correct one. Remember, google maps has given the correct address and coordinates.
3. If I search on google maps (or google earth) for a feature such as a shopping mall, it finds it and marks it on the map. So it has coordinates for the shopping mall. Again, if I use those coordinates in the android simulator, I get the suburb etc, but no feature name (via getFeatureName() or any street information).
If it wasn't for the fact that google maps clearly has this information, I think I'd be asking too much. Does anyone have any idea if the android location API is capable of what I need, or should I turn to the Google Maps API? Any help appreciated.