我为我的应用程序实现了Google Place API
自动完成功能,如下所示:https://developers.google.com/places/training/autocomplete-android
不,只是使用该地址生成Toast
。
如何从所选地址获取latitude
和longitude
?
答案 0 :(得分:1)
使用方法
来自Android Geocoder API的 public List<Address> getFromLocationName (String locationName, int maxResults)
,传递位置名称和您想要的最大结果数量,您应该好好去。
例如
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();
}
答案 1 :(得分:1)
如果它有帮助,我最近在Java中为Google Places API创建了一个库。
自动完成非常简单:
GooglePlaces client = new GooglePlace("apiKey");
List<Prediction> predictions = client.getPlacePredictions("Empire");
for (Prediction prediction : predictions) {
String description = prediction.getDescription();
// etc etc
}
从地址获取纬度 - 经度就像这样简单。
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();
}
}
答案 2 :(得分:0)
您只需使用google maps api即可获得lat和long
http://maps.google.com/maps/api/geocode/json?address=&sensor=false
在上面的链接中你必须在“address =”旁边添加地址,你可以用lat和long以及其他一些信息来获取json数据。
答案 3 :(得分:0)
尝试使用GeoDataClient。请参阅GeoDataClient和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.");
}
}
});