#Android项目# ——day05高德地图定位

文章目录

  • 一、获取高德地图的Key
  • 二、在主工程的build.gradle文件配置dependencies
  • 三、App中调用

一、获取高德地图的Key

https://lbs.amap.com/api/android-location-sdk/guide/create-project/get-key

二、在主工程的build.gradle文件配置dependencies

根据项目需求添加SDK依赖。引入各个SDK功能最新版本, dependencies 配置方式如下:

SDK 引入代码
3D地图 implementation ‘com.amap.api:3dmap:latest.integration’
2D地图 implementation ‘com.amap.api:map2d:latest.integration’
导航 implementation ‘com.amap.api:navi-3dmap:latest.integration’
搜索 implementation ‘com.amap.api:search:latest.integration’
定位 implementation ‘com.amap.api:location:latest.integration’

我的项目中只需要定位功能:所以只在app的build.gradle中加入定位类

implementation 'com.amap.api:location:4.7.0'

三、App中调用

(一)编写一个高德地图定位的工具类

/**
  @author  Ben
 *@创建时间 2019/7/18 17:58
 *@描述  高德地图定位工具类
 */
public class get_where extends AppCompatActivity {
    //自选择城市
    private static String where;
    //GPS定位城市
    private static String GPS_where;

    public static String getGPS_where() {
        return GPS_where;
    }

    //声明AMapLocationClient类对象
    public AMapLocationClient mLocationClient = null;
    //声明AMapLocationClientOption对象
    public AMapLocationClientOption mLocationOption = null;

    public static String getWhere() {
        return where;
    }

    public static void setWhere(String where) {
        get_where.where = where;
    }

    public get_where() {
    }

    /**
     * 得到位置信息(高德地图)
     */
    public void getLocation(Activity activity) {
        //初始化定位
        mLocationClient = new AMapLocationClient(activity);
        //设置定位回调监听
        mLocationClient.setLocationListener(mAMapLocationListener);
        //初始化AMapLocationClientOption对象
        mLocationOption = new AMapLocationClientOption();
        //获取一次定位结果:
        mLocationOption.setOnceLocation(true);
        //给定位客户端对象设置定位参数
        mLocationClient.setLocationOption(mLocationOption);
        //启动定位
        mLocationClient.startLocation();
    }


    //声明定位回调监听器
    private AMapLocationListener mAMapLocationListener = new AMapLocationListener() {
        @Override
        public void onLocationChanged(AMapLocation amapLocation) {

            if (amapLocation != null) {
                if (amapLocation.getErrorCode() == 0) {
                    if (amapLocation.getCity() != null && !"".equals(amapLocation.getCity())) {
                        where = (amapLocation.getCity().replace("市", ""));
                        GPS_where = (amapLocation.getCity().replace("市", ""));

                    } else {
                        where = "北京";
                        GPS_where = "北京";

                    }
                    mLocationClient.stopLocation();//停止定位后,本地定位服务并不会被销毁
                } else {
                    where = "北京";
                    GPS_where = "北京";
                    //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
                    Log.e("高德地图", "location Error, ErrCode:"
                            + amapLocation.getErrorCode() + ", errInfo:"
                            + amapLocation.getErrorInfo());
                }
            }
        }
    };

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (mLocationClient != null) {
            //销毁定位客户端之后,若要重新开启定位请重新New一个AMapLocationClient对象。
            mLocationClient.onDestroy();//销毁定位客户端,同时销毁本地定位服务。
        }
    }
}

(二)在类中调用

 //获取定位
new get_where().getLocation(MainActivity.this);
//得到GPS定位的数据
System.out.println(get_where.getGPS_where());

你可能感兴趣的:(Android个人项目)