3.12 获取地址定位

package com.example.mywork;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;

public class MainActivity extends AppCompatActivity {
    private MapView mMapView = null;
    private BaiduMap bdMap;
    private Button mBtnLogin;
    private MyLocationListener   myListener=new MyLocationListener();
    private LocationClient  mLocationClient=null;
    private EditText  text_main_address;
    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        //init();

        mBtnLogin = findViewById(R.id.btn_login);
        mBtnLogin.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v){
                Toast.makeText(MainActivity.this,"录入成功!",Toast.LENGTH_SHORT).show();
            }
        });
    }

    public class MyLocationListener extends BDAbstractLocationListener {

        @Override
        public void onReceiveLocation(BDLocation location){

            double latitude = location.getLatitude();    //获取纬度信息
            double longitude = location.getLongitude();    //获取经度信息
            float radius = location.getRadius();    //获取定位精度,默认值为0.0f
            String coorType = location.getCoorType();
            //获取经纬度坐标类型,以LocationClientOption中设置过的坐标类型为准
            int errorCode = location.getLocType();
            //获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明
            String addr = location.getAddrStr();    //获取详细地址信息
            String country = location.getCountry();    //获取国家
            String province = location.getProvince();    //获取省份
            String city = location.getCity();    //获取城市
            String district = location.getDistrict();    //获取区县
            String street = location.getStreet();    //获取街道信息
            String adcode = location.getAdCode();    //获取adcode
            String town = location.getTown();    //获取乡镇信息
            mLocationClient.start();
            text_main_address=findViewById(R.id.main_address);
            text_main_address.setText(addr+country+province+city+district+street);
        }
    }

    public void autoAddress(View view)
    {
        //LocationClient = new LocationClient(this);
        //LocationClientOption option = locationClient.getLocOption();
        mLocationClient = new LocationClient(getApplicationContext());
        //声明LocationClient类
        mLocationClient.registerLocationListener(myListener);
        LocationClientOption option = new LocationClientOption();
        option.setIsNeedAddress(true);
        option.setNeedNewVersionRgc(true);
        option.setAddrType("all"); //加上这个配置后才可以取到详细地址信息
        mLocationClient.setLocOption(option);
        //注册监听函数
        mLocationClient.start();
    }

    /**
     * 初始化方法
     */
    //private void init() {

        //mMapView = findViewById(R.id.bmapview);
       // bdMap = mMapView.getMap();
//普通地图
        //bdMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
    //}
    //@Override
    //protected void onResume() {
    //    super.onResume();
    //    mMapView.onResume();
    //}
    //@Override
    //protected void onPause() {
    //    super.onPause();
    //   mMapView.onPause();
    //}
    //@Override
    //protected void onDestroy() {
    //   mMapView.onDestroy();
    //   mMapView = null;
    //   super.onDestroy();
    // }
}
原文地址:https://www.cnblogs.com/dty602511/p/14913689.html