在Android中的谷歌地图中获取地名

时间:2014-02-28 13:06:12

标签: android google-maps google-places-api

我要求每当我拖动/浏览Google地图并在其上放置标记时,它都应在AutocompleteTextview中显示地点的名称(放置标记的位置)。我已经查看了Places API和Geocoder类,但我最不了解它。我需要执行与life360应用程序中“位置”选项卡相同的任务。我怎样才能实现它?

2 个答案:

答案 0 :(得分:6)

试试这可能对你有帮助......

当你标记一个地方时,试着捕捉纬度和经度与标记和&使用此代码获取位置名称

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;
    }
}

答案 1 :(得分:0)

试试这个我希望它的工作。

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

}