android 百度地图定位开发之时时定位-位置获取

    xiaoxiao2021-04-18  46

    求大神绕过,这个仅限于初级开发者

    初始化定位 private void initLocation() { //定位客户端的设置 mLocationClient = new LocationClient(getActivity()); mLocationListener = new MyLocationListener(); mBaiduMap.setMyLocationConfigeration(new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL,true,null)); //注册监听 //配置定位 LocationClientOption option = new LocationClientOption(); option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//设置高精度定位定位模式 option.setCoorType(“bd09ll”);//坐标类型 option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要 option.setOpenGps(true);//打开Gps option.setScanSpan(1000);//1000毫秒定位一次 option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到 mLocationClient.setLocOption(option); mLocationClient.start();//启动定位 mLocationClient.registerLocationListener(mLocationListener); } //自定义的定位监听 private class MyLocationListener implements BDLocationListener { LatLng mLatLng = null;

    @Override public void onReceiveLocation(BDLocation location) { //将获取的location信息给百度map MyLocationData data = new MyLocationData.Builder() .accuracy(location.getRadius()) // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100) .latitude(location.getLatitude()) .longitude(location.getLongitude()) .build(); mBaiduMap.setMyLocationData(data); mLatLng = new LatLng(location.getLatitude(), location.getLongitude()); Log.e("1212", "4444444444" + mLatLng); if (isFirstLocation) { //获取经纬度 MapStatusUpdate status = MapStatusUpdateFactory.newLatLng(mLatLng); mBaiduMap.animateMapStatus(status);//动画的方式到中间 isFirstLocation = false; showInfo("位置:" + location.getAddrStr()); } } @Override public void onConnectHotSpotMessage(String s, int i) { } }

    ****重点这样的代码定位没问题,不过就是定位只能定位一次,那么怎么解决呢? 其实很简单的,只是大家可能现在忽略了这点。百度的官方现在也没有添加这样的说明

    只需要在清单文件中加上 即可实现时时定位

    转载请注明原文地址: https://ju.6miu.com/read-674661.html

    最新回复(0)