Android get lat&long from google address

耗尽温柔 提交于 2019-12-11 16:39:19

问题


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?


回答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();
    }



回答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




回答3:


You can simply use google maps api to get the lat and long

http://maps.google.com/maps/api/geocode/json?address=&sensor=false

In the above link u have to add the address next to "address=" and u can get the json data with lat and long and some other infos.




回答4:


Try GeoDataClient. Refer GeoDataClient and Place IDs and details.

geoDataClient.getPlaceById(autoCompletePredictionItem.getPlaceId())
                        .addOnCompleteListener(new OnCompleteListener<PlaceBufferResponse>() {
                            @Override
                            public void onComplete(@NonNull Task<PlaceBufferResponse> task) {
                                if (task.isSuccessful()) {
                                    PlaceBufferResponse places = task.getResult();
                                    Place myPlace = places.get(0);
                                    Log.e(TAG, "Place found: " + myPlace.getLatLng().toString());
                                    places.release();
                                } else {
                                    Log.e(TAG, "Place not found.");
                                }
                            }
                        });


来源:https://stackoverflow.com/questions/21676391/android-get-latlong-from-google-address

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!