Google地图-位置不断在我的真实位置和0.6英里之外的位置(随机位置)之间切换

红_

我已经在我的应用程序上运行Google Maps v2,使用一项服务来获取用户位置。问题在于位置不断变化。它会稍微显示我的真实位置,然后跳转到一个我从未去过的随机位置。

我正在通过服务检查GPS /网络纬度/经度,并在我的地图课程中对其进行调用,然后在其中为相机设置动画以移动到我的位置。我真的不知道怎么了,或者从哪里开始。

有人知道这是什么问题吗?这让我感到困惑。

我真的不知道要发布什么代码。通过网络进行定位的精度为1121m,其中通过GPS进行定位的精度约为31。我使用,LocationListener并且在onLocationChangedis中表示使用的是我的网络位置,精度突然提高到29m,然后突然下降后退至1121m。这大约每分钟发生一次。非常奇怪的行为。启用GPS后,那不是首选吗?一旦得到修复,是否可以将其设置为我的首选?

我的服务得到这样的信息:

public Location getLocation() {
    Log.i("getLocation", "Get location called");
    try {
        locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);

        //Getting GPS status
        isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        //Getting network status
        isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

        if (!isGPSEnabled && !isNetworkEnabled) {
            // no network provider is enabled and GPS is off.
            Log.d("NOT ENABLED", "PASSIVE PROVIDER");
            locationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
            loc = locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
            if (loc != null) {
                latitude = loc.getLatitude();
                longitude = loc.getLongitude();
                Log.i("PASSIVE_LOCATION", "Location: "+loc.toString());
            }
        }
        else {
            this.canGetLocation = true;
            if (isNetworkEnabled) {
                Log.d("Network", "Network");
                locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); 
                loc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                if (loc != null) {
                    latitude = loc.getLatitude();
                    longitude = loc.getLongitude();
                    Log.i("NETWORK_LOCATION", "Location: "+loc.toString());
                }
            }
            if (isGPSEnabled) {
                locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                Log.d("GPS Enabled", "GPS Enabled");
                loc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                if (loc != null) {
                    latitude = loc.getLatitude();
                    longitude = loc.getLongitude();
                    Log.i("GPS_LOCATION", "Location: "+loc.toString());
                }
            }
        }
    }
    catch (Exception e) {
        e.printStackTrace();
    }

    //check provider & accuracy
    Log.d("PROVIDER", loc.getProvider());
    Log.d("ACCURACY", Float.toString(loc.getAccuracy()));
    return loc;

如果有人可以提供帮助,我将非常感激。先感谢您。

红_

我认为这解决了自己。只是因为准确性,它在位置之间跳跃。一旦GPS精度优于网络,它便开始通过GPS更新。

一旦精度低于30英寸onLocationChanged,我也将停止位置更新,因此我有更多控制权,并且不会浪费用户的电池。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Google地图上更改“我的位置”的位置

来自分类Dev

设置地图后,Google地图无法立即获得我的位置

来自分类Dev

从当前位置 Google 地图 API 保存用户输入和位置

来自分类Dev

折线是随机绘制的,并且在地图上的随机位置

来自分类Dev

我想使用Android在Google地图中设置我的位置

来自分类Dev

使用角度Google地图获取视口的地图位置

来自分类Dev

在Google地图上显示当前位置

来自分类Dev

通过javascript更新Google地图位置

来自分类Dev

Google地图-道路上的大概位置

来自分类Dev

如何指出Google地图中的位置?

来自分类Dev

在Android的Google地图中显示位置

来自分类Dev

顺利更新Google地图上的标记位置

来自分类Dev

更改Google标题在地图上的位置

来自分类Dev

与输入相比,Google地图显示的位置不同

来自分类Dev

在Google地图上追踪用户位置

来自分类Dev

通过javascript更新Google地图位置

来自分类Dev

Google在Angularjs中的地图位置

来自分类Dev

如何指出Google地图中的位置?

来自分类Dev

[Android] [Google地图]:获取触摸位置的地址

来自分类Dev

移动标记并更新Google地图中的位置

来自分类Dev

Google地图在特定位置显示吐司

来自分类Dev

标记妨碍了Google地图中的位置名称

来自分类Dev

无法获取我的位置以显示在iOS 8的Google地图中

来自分类Dev

如何在Google地图中添加我的位置按钮?

来自分类Dev

在Google地图中显示我的当前位置

来自分类Dev

如何替换或删除Google地图我的位置蓝点周围的圆圈

来自分类Dev

使用纬度和经度向Google地图发送位置

来自分类Dev

添加Google Play服务地图和位置依存关系

来自分类Dev

使用经度和纬度在Google地图中定位位置

Related 相关文章

热门标签

归档