Android内部是支持这个操作的,不需要借助任何的第三方工具

主要就是Geocoder这个类。

 

下面是工具类全部代码。

import android.content.Context;import android.location.Address;import android.location.Geocoder;import android.util.Log;import android.widget.Toast;import java.io.IOException;import java.util.List;public class GetAddressUtil {    Context context;    public GetAddressUtil(Context context) {        this.context = context;    }    public String getAddress(double lnt , double lat){        Geocoder geocoder = new Geocoder(context);        boolean falg = geocoder.isPresent();        Log.e("thistt", "the falg is " + falg);        StringBuilder stringBuilder = new StringBuilder();        try {            //根据经纬度获取地理位置信息---这里会获取最近的几组地址信息,具体几组由最后一个参数决定            List addresses = geocoder.getFromLocation(lat , lnt, 1);            if (addresses.size() > 0) {                Address address = addresses.get(0);                for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {                    //每一组地址里面还会有许多地址。这里我取的前2个地址。xxx街道-xxx位置                    if(i == 0) {                        stringBuilder.append(address.getAddressLine(i)).append("-");                    }                    if(i == 1){                        stringBuilder.append(address.getAddressLine(i));                        break;                    }                }//                stringBuilder.append(address.getCountryName()).append("_");//国家//                stringBuilder.append(address.getFeatureName()).append("_");//周边地址//                stringBuilder.append(address.getLocality()).append("_");//市//                stringBuilder.append(address.getPostalCode()).append("_");//                stringBuilder.append(address.getCountryCode()).append("_");//国家编码//                stringBuilder.append(address.getAdminArea()).append("_");//省份//                stringBuilder.append(address.getSubAdminArea()).append("_");//                stringBuilder.append(address.getThoroughfare()).append("_");//道路//                stringBuilder.append(address.getSubLocality()).append("_");//香洲区//                stringBuilder.append(address.getLatitude()).append("_");//经度//                stringBuilder.append(address.getLongitude());//维度                Log.d("thistt", "地址信息--->" + stringBuilder);            }        } catch (IOException e) {            // TODO Auto-generated catch block            Toast.makeText(context, "报错", Toast.LENGTH_LONG).show();            e.printStackTrace();        }        return stringBuilder.toString();    }}

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android(安卓)广播获取短信内容
  3. android中几种定位方式详解
  4. Android开发错误信息与解决方案汇总
  5. android 4.4以下loadIocn nullpointerException问题
  6. 31、android打开文件夹并列出里面的文件
  7. android 常用资料
  8. Android判断Wlan信号强弱及wlan管理信息
  9. android 网络请求方式 例子

随机推荐

  1. Android(安卓)选择联系人+返回对应手机号
  2. Android的内存,进程调度管理
  3. Android(安卓)屏蔽Power键 Home键
  4. 「「第一行代码(第二版)」」学习笔记 6 广
  5. Flutter修仙传——起源
  6. Android(安卓)实现自定义圆环
  7. Android(安卓)获取所有联系人(两种方法)
  8. Android中广告渠道SDK接入方法
  9. Android(安卓)Viewpage禁止滑动屏幕
  10. 使用adbWireless无线调试Android真机设备