百度定位集成

系统的梳理一下自己之前做过的东西,同时也是为以后做准备吧
集成步骤(省略了在百度的个人中心创建)
在Application中添加

  //在使用SDK各组件之前初始化context信息,传入ApplicationContext
        SDKInitializer.initialize(this);
        //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);

然后就是代码
在onCreate的方法中调用getLocationClientOption()即可

  private LocationClientOption mOption;//定位属性
    private LocationClient client;//定位监听
    /***
     * 定位选项设置
     * @return
     */
    public void getLocationClientOption() {
        mOption = new LocationClientOption();
        mOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
        mOption.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll;
        mOption.setScanSpan(2000);//可选,默认0,即仅定位一次,设置发起连续定位请求的间隔需要大于等于1000ms才是有效的
        mOption.setIsNeedAddress(true);//可选,,默认不需要
        mOption.setIsNeedLocationDescribe(true);//可选,设设置是否需要地址信息置是否需要地址描述
        mOption.setNeedDeviceDirect(true);//可选,设置是否需要设备方向结果
        mOption.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
        mOption.setIgnoreKillProcess(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
        mOption.setIsNeedLocationDescribe(false);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
        mOption.setIsNeedLocationPoiList(false);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
        mOption.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集
        mOption.setOpenGps(true);//可选,默认false,设置是否开启Gps定位
        mOption.setIsNeedAltitude(false);//可选,默认false,设置定位时是否需要海拔信息,默认不需要,除基础定位版本都可用
        client = new LocationClient(this);
        client.setLocOption(mOption);
        client.registerLocationListener(BDAblistener);
        client.start();
    }

    /***
     * 接收定位结果消息,并显示在地图上
     */
    private BDAbstractLocationListener BDAblistener = new BDAbstractLocationListener() {
        @Override
        public void onReceiveLocation(BDLocation location) {
            //定位方向
            mCurrentLat = location.getLatitude();
            mCurrentLon = location.getLongitude();
            int locType = location.getLocType();
            Log.e("------------", "onReceiveLocation: 错误码       " + locType);
            Log.e("---------", "onReceiveLocation: 个人定位    " + mCurrentLat + "          " + mCurrentLon);
        }

    };

注意在百度地图开发平台里面有个坑
控制台中会让你填写两个SHA1,分别是开发版和发布版
两个都要填写,开发版:
如果是开发版的sha1值我们直接默认用安卓自带的签名,具体操作:
输入cd .android,定位到.android文件夹下

输入keytool -list -v -keystore debug.keystore,

输入密钥口令:密钥口令是android
百度定位集成_第1张图片

会得到三种指纹证书,选取SHA1类型的证书
图中的SHA1值,就是我们需要获取的开发版的SHA1值。
以上我们完成了开发版SHA1值的获取。

接着来看发布版sha1值的获取。
发布版我是直接看的日志填写的
当我们运行的时候会在日志中告诉我们
如图
百度定位集成_第2张图片

你可能感兴趣的:(Android,java)