【问题标题】:Why there is difference between current location and location provided by FusedLocationClient.requestLocationUpdates为什么当前位置与 FusedLocationClient.requestLocationUpdates 提供的位置之间存在差异
【发布时间】:2017-07-11 09:34:44
【问题描述】:

我只想在从当前位置移动至少 3 米时获取当前位置更新,为此我使用了

FusedLocationClient.requestLocationUpdates

为此,我做了这样的 LocationRequest:

 private LocationRequest requestLocation(){

 LocationRequest mLocationRequest = new LocationRequest();                                                                                                              
 mLocationRequest.setSmallestDisplacement(3.81f);                                                                                                                                                 
 mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);            
 return mLocationRequest;                                                         
 }

并像这样实现:连接到播放服务后

@Override
public void onConnected(Bundle bundle) {                                                                  

mFusedLocationClient.requestLocationUpdates(requestLocation(), 
new LocationCallback() {               
    @Override                                                                                         
    public void onLocationResult(LocationResult locationResult) {                                     
        for (final Location location : locationResult.getLocations()) {                               

            tvLat.setText(Double.toString(location.getLatitude()));                                   
            tvLng.setText(Double.toString(location.getLongitude()));                                  

           //changing position of marker and camera                                                                                    
            changeCameraPosition(CameraUpdateFactory.newLatLngZoom(                                   
             new LatLng(location.getLatitude(), location.getLongitude()),                      
                    16), new GoogleMap.CancelableCallback() {                                         

      @Override                                                                             
      public void onFinish() {}                                                          


      @Override                                                                             
      public void onCancel() { }                                                             

            });                                                                                       

        }                                                                                             
    }                                                                                                 
    }, Looper.myLooper());                                                                                

但是即使我没有移动一点点,我也会从距离我当前位置至少 650m 的地方获得 latlng,这是我在清单中的权限:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="permission.READ_GSERVICES" />                                                                                                                                                                                      

【问题讨论】:

    标签: java android google-play-services google-maps-android-api-2 fusedlocationproviderapi


    【解决方案1】:

    也许你可以检查一下这个:Android map Update location to server when there is difference of x meters between current location and last location,看看你移动时的距离差异,这样你就会知道过度移动的根源在哪里。

    【讨论】:

    • 上次位置和当前位置有区别吗,因为通过fusedlocation.lastlocation我们可以知道当前位置
    猜你喜欢
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多