美文网首页
Android高德通过经纬度获取地理位置

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

作者: Amy木婉清 | 来源:发表于2021-08-18 19:22 被阅读0次

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

      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高德通过经纬度获取地理位置

          本文链接:https://www.haomeiwen.com/subject/safnbltx.html