Android使用百度地图定位的一些注意事项

以下是本人在做一个考勤功能模块,使用百度地图定位遇到的一些需要注意的地方,希望对你有帮助(有更多的注意事项,也欢迎写在评论区):

1. 坐标类型要和后端统一好

option.setCoorType("bd09ll");
//可选,设置返回经纬度坐标类型,默认gcj02
//gcj02:国测局坐标;
//bd09ll:百度经纬度坐标;
//bd09:百度墨卡托坐标;
//海外地区定位,无需设置坐标类型,统一返回wgs84类型坐标

2. 设置好定位间隔

option.setScanSpan(10 * 1000);
//可选,设置发起定位请求的间隔,int类型,单位ms
//如果设置为0,则代表单次定位,即仅定位一次,默认为0
//如果设置非0,需设置1000ms以上才有效

要注意将这个选项关闭,否则你会一秒收到一次定位信息

option.setLocationNotify(false);
//可选,设置是否当GPS有效时按照1S/1次频率输出GPS结果,默认false

3. 页面onDestroy的时候一定要停止服务,否则通知栏会一直显示定位图标,后台耗电增加

mLocationClient.stop();

4. 检查权限时要先判断是否开启定位服务,例如(kotlin写法):

private fun checkPermission() {
        val locationManager = activity?.getSystemService(Context.LOCATION_SERVICE) as LocationManager
        if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) && !locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
            AlertDialog.Builder(activity!!)
                    .setTitle("开启定位权限")
                    .setMessage("请点击确定跳转到GPS权限设置页面手动开启定位权限")
                    .setPositiveButton("确定") { dialog, which ->
                        val intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
                        startActivityForResult(intent, REQUEST_CODE_GPS_SETTING)
                    }
                    .setNegativeButton("取消") { dialog, which ->

                    }
                    .create()
                    .show()
        } else {
            requestPerms()
        }
    }

你可能感兴趣的:(安卓开发,移动互联)