我有一个需求,每当我拖动/浏览谷歌地图并在上面放置标记时,它应该在AutocompleteTextview中显示该地点的名称(标记所在位置)。我已经查看了Places API和Geocoder类,但是我很难理解。我需要像life360应用程序中的“地点”选项卡一样完成任务。我该如何实现它?
我有一个需求,每当我拖动/浏览谷歌地图并在上面放置标记时,它应该在AutocompleteTextview中显示该地点的名称(标记所在位置)。我已经查看了Places API和Geocoder类,但是我很难理解。我需要像life360应用程序中的“地点”选项卡一样完成任务。我该如何实现它?
尝试这个,它可能会对你有所帮助...
当您标记一个位置时,请尝试使用标记器捕获纬度和经度,并使用此代码获取位置名称。
public String getAddress(Context context, double lat, double lng) {
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
Address obj = addresses.get(0);
String add = obj.getAddressLine(0);
add = add + "\n" + obj.getCountryName();
add = add + "\n" + obj.getCountryCode();
add = add + "\n" + obj.getAdminArea();
add = add + "\n" + obj.getPostalCode();
add = add + "\n" + obj.getSubAdminArea();
add = add + "\n" + obj.getLocality();
add = add + "\n" + obj.getSubThoroughfare();
return add;
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
return null;
}
}
public void getLocation(double lat, double lng) {
Geocoder geocoder = new Geocoder(MapsActivity.this, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
Address obj = addresses.get(0);
String add = obj.getAddressLine(0);
Log.e("IGA", "Address" + add);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
}