Android get lat&long from google address

I have implemented Google Place API autocomplete functionality for my application like this: https://developers.google.com/places/training/autocomplete-android

No it just makes a Toast with that address.

How can I get the latitude and longitude from the selected address?


Solution 1:

Use the method

public List<Address> getFromLocationName (String locationName, int maxResults) from Android Geocoder API, pass in the location name and the maximum number of results you would like and you should be good to go.

Eg.

 Geocoder coder = new Geocoder(this);
    try {
        ArrayList<Address> adresses = (ArrayList<Address>) coder.getFromLocationName("Some Address", 10);
        for(Address add : adresses){
                double longitude = add.getLongitude();
                double latitude = add.getLatitude();
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch(IllegalArgumentException e){
        e.printStackTrace();
    }

Solution 2:

If it helps, I've recently created a library in Java for Google Places API.

Autocompletion is as simple as:

GooglePlaces client = new GooglePlace("apiKey");
List<Prediction> predictions = client.getPlacePredictions("Empire");
for (Prediction prediction : predictions) {
    String description = prediction.getDescription();
    // etc etc
}

And getting a latitude-longitude from an address is as simple as.

List<Place> places = client.getPlacesByQuery(address, GooglePlaces.MAXIMUM_RESULTS);
for (Place place : places) {
    if (place.getAddress().equals(address)) {
        double lat = place.getLatitude();
        double lng = place.getLongitude();
    }
}

https://github.com/windy1/google-places-api-java