高德定位

public void initGD() {
    //声明定位回调监听器
    AMapLocationListener mLocationListener = new AMapLocationListener() {
        @Override
        public void onLocationChanged(AMapLocation amapLocation) {
            if (amapLocation != null) {
                int errorCode = amapLocation.getErrorCode();
                Log.e("AAA","AA"+errorCode);
                if ( errorCode == 0) {
                    //可在其中解析amapLocation获取相应内容。
                    String province = amapLocation.getProvince();//省信息
                    String city = amapLocation.getCity();//城市信息
                    String district = amapLocation.getDistrict();//城区信息
                    String street = amapLocation.getStreet();//街道信息
                    String streetNum = amapLocation.getStreetNum();//街道门牌号信息

                    final String userAddr = city+","+district+","+street;

                    Log.e("province", province+"信息");
                } else {
                    //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
                    Log.e("AmapError", "location Error, ErrCode:"
                            + amapLocation.getErrorCode() + ", errInfo:"
                            + amapLocation.getErrorInfo());
                }
            }
        }

    };

    //初始化定位
    //声明AMapLocationClient类对象
    AMapLocationClient mLocationClient = new AMapLocationClient(this);
    //设置定位回调监听
    mLocationClient.setLocationListener(mLocationListener);

    //初始化AMapLocationClientOption对象
    //声明AMapLocationClientOption对象
    AMapLocationClientOption mLocationOption  = new AMapLocationClientOption();

    //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);

    //获取一次定位结果:
    //该方法默认为false。
    mLocationOption.setOnceLocation(true);

    //获取最近3s内精度最高的一次定位结果:
    //设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
    mLocationOption.setOnceLocationLatest(true);

    //设置是否返回地址信息(默认返回地址信息)
    mLocationOption.setNeedAddress(true);

    //设置是否允许模拟位置,默认为true,允许模拟位置
    mLocationOption.setMockEnable(true);

    //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。
    mLocationOption.setHttpTimeOut(20000);

    //关闭缓存机制
    mLocationOption.setLocationCacheEnable(false);

    //给定位客户端对象设置定位参数
    mLocationClient.setLocationOption(mLocationOption);
    //启动定位
    mLocationClient.startLocation();

    //可以通过类implement方式实现AMapLocationListener接口,也可以通过创造接口类对象的方法实现
    //以下为后者的举例:

}


android:name="android.permission.ACCESS_COARSE_LOCATION"/>

android:name="android.permission.ACCESS_FINE_LOCATION"/>

android:name="android.permission.ACCESS_NETWORK_STATE"/>

android:name="android.permission.ACCESS_WIFI_STATE"/>

android:name="android.permission.CHANGE_WIFI_STATE"/>

android:name="android.permission.INTERNET"/>

android:name="android.permission.READ_PHONE_STATE"/>

android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

android:name="android.permission.BLUETOOTH"/>
android:name="android.permission.BLUETOOTH_ADMIN"/>


    android:name="com.amap.api.v2.apikey"
    android:value="b96bb3f63f01ea11da8aff9bbedc893b"/>

android:name="com.amap.api.location.APSService">

// 2d
compile 'com.amap.api:map2d:latest.integration'
// 导航
compile 'com.amap.api:navi-3dmap:latest.integration'
// 搜索
compile 'com.amap.api:search:latest.integration'
// 定位
compile 'com.amap.api:location:latest.integration'


// recycle
compile 'com.android.support:support-v4:27.0.0'
compile 'com.android.support:appcompat-v7:27.0.0'
compile 'com.android.support:recyclerview-v7:27.0.0'
compile 'com.android.support:design:27.0.0'


你可能感兴趣的:(学习笔记)