Android高德通过经纬度获取地理位置

首先导入依赖:
首次导入依赖的过程可能有点慢

  implementation 'com.amap.api:search:latest.integration'//搜索

然后在需要用到逆地理编码的类或弹窗或其他地方中实现GeocodeSearch.OnGeocodeSearchListener
监听
例子:

implements  GeocodeSearch.OnGeocodeSearchListener

并实现其两个方法:

    @Override
    public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
        if (tvLocation != null && regeocodeResult != null) {
           //常规写法:   regeocodeResult.getRegeocodeAddress().getFormatAddress()
            tvLocation.setText("位置:" + regeocodeResult.getRegeocodeAddress().getFormatAddress());
         
        }
    }

    @Override
    public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
        geocodeResult.getGeocodeAddressList().get(0).getLatLonPoint();
    }

通过经纬度逆地理编码得到位置核心编码

//通过经纬度逆地理编码得到位置
        GeocodeSearch geocodeSearch = new GeocodeSearch(mContext);
        geocodeSearch.setOnGeocodeSearchListener(this);
        LatLonPoint latLng = new LatLonPoint(listBean.getLatitude(), listBean.getLongitude());
//第一个参数表示一个Latlng,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系
        RegeocodeQuery query = new RegeocodeQuery(latLng, 200, GeocodeSearch.AMAP);
        geocodeSearch.getFromLocationAsyn(query);

这样我们就可以实现通过经纬度得到一个位置信息了

福利赠送~~~

地理编码(位置转坐标)

1、继承 OnGeocodeSearchListener 监听。
2、构造 GeocodeSearch 对象,并设置监听。

geocoderSearch = new GeocodeSearch(this);
geocoderSearch.setOnGeocodeSearchListener(this);

3、通过 GeocodeQuery(java.lang.String locationName, java.lang.String city) 设置查询参数,调用 GeocodeSearch 的 getFromLocationNameAsyn(GeocodeQuery geocodeQuery) 方法发起请求。

// name表示地址,第二个参数表示查询城市,中文或者中文全拼,citycode、adcode  
GeocodeQuery query = new GeocodeQuery(name, "010");  

geocoderSearch.getFromLocationNameAsyn(query);  

4、通过回调接口 onGeocodeSearched 解析返回的结果。

说明:

1)可以在回调中解析result,获取坐标信息。

2)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)

@Override
public void onGeocodeSearched(GeocodeResult result, int rCode) {
    //解析result获取坐标信息
} 

你可能感兴趣的:(Android高德通过经纬度获取地理位置)