I'm implementing an application in J2ME were a user wanting to go from a starting location to an ending location specifies the starting and ending locations. For this I'm using Google maps and I found two main solutions. The first one is letting the user navigate through the map to the specified area then using a marker and moving it to the desired location. The main problem with this is that it could be hard for the user to get to the desired location. Also reverse geocoding does not return me the exact address with the building number in the street (although the street is returned). Is there any way to get the exact address? I know that reverse gecoding returns the closest.. but for some specific user I want i as exact as possible.

The second one is that i can also let the user input the address. I saw that Google tries to return results regardless of the spelling of the words but still the result maybe not correct. Also if the user typed the city and country correct for example, but typed else wrong, for instance: "eirewre, Cairo, Egypt" the returned location will be the same as if the input was "Cairo, Egypt". Is there a better way to check the validity or correctnes of user input? Using geocoding always returns one location as I have seen but when I have used maps.Google.com and searched for an address, if there is more than one result all of them are displayed. Is there anyway to request and return all search results from Google maps in J2me (with their location coordinates)? If you have any other solution please post it. Thank you.

p.s. its hard to check if the returned location is correct or not. Maybe by using reverse geocoding but the returned one can be different or there can also be difference in spelling. I also thought about displaying the list of cities then the list of street addresss and/or places and let the user search and select form the lists but this would be too much to be displayed in a mobile phone and nearly impossible to get. isnt it?