0

我在android中开发了一个应用程序。它是一个车辆跟踪系统,它使用GPS. 该应用程序发送存储在在线 mysql 数据库中的纬度和经度坐标,Java Web 应用程序使用该数据库来绘制设备行进的路径。该应用程序还计算两个坐标之间的距离,并根据该距离发送纬度和经度坐标,即从一个点到另一个点,如果设备在该点覆盖 20 米的距离,它发送纬度和经度与用于在 google-map 中存储和绘图的 web 应用程序的坐标。

问题

该应用程序工作正常,但问题是当应用程序启动时,当它保持在一个没有任何移动的地方时,它正在发送一些不正确的坐标。例如在下图中,当设备停止时(谷歌地图中的黑点),实际上暂时应该在那个位置,而不是如图所示,设备一直在某个地方,然后又来又去即使设备没有移动,也可以在某个地方。

在此处输入图像描述

谁能告诉我一些解决方案来防止这种情况

这些是我的权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

更新 1

 LocationManager mlocmag = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
         LocationListener mlocList = new MyLocationList();

                Location loc1 = mlocmag.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                if (loc1 == null) {
                    loc1 = mlocmag.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                }

           String  lat =loc1.getLatitude();
           String  Longs = loc1.getLongitude(); 
4

3 回答 3

0

我高度怀疑 GPS 精度在这种情况下的作用,

当清单中获得许可时,Android 应用程序会尝试从 GPS、手机信号塔和 Wi-Fi 等位置源访问精确位置android.permission.ACCESS_FINE_LOCATION,主要和(超级)位置提供者是精度为 0m - 20m 的 GPS 卫星。当 GPS 卫星超出范围或手机在室内时,android 会寻求其他的定位方式,其中之一是 cell ID,它使用手机信号塔三角测量来查找设备的大致位置,精度约为 200m - 2000m . 当您所在区域附近有超过 4 个蜂窝塔时,蜂窝三角测量会移动一个塔到另一个塔,从而产生移动的感觉。

使用旧的 android 权限,如

android.permission.ACCESS_GPS
android.permission.ACCESS_ASSISTED_GPS
android.permission.ACCESS_LOCATION
android.permission.ACCESS_CELL_ID

可以通过近似位置模型解决您的问题。

尝试使用不同的手机或位置以获得不同的结果。

但是,如果问题仍然存在,问题可能是您的代码或手机本身,在这种情况下,我需要部分代码以获得进一步的帮助。

于 2013-07-28T05:18:16.410 回答
0

问题可能是由于车辆停在车库或类似的地方,GPS 卫星接收不良,在这种情况下,信号会失去准确性并且可能会出现随机漂移。

您的应用应监控 GPS 信号强度和接收的卫星数量,并在信号强度过低时忽略位置。
有许多应用程序可以显示信号强度

于 2013-07-28T14:14:03.240 回答
0

您应该禁用(GSM-)蜂窝塔定位,仅使用 GPS,仅使用 GPS_PROVIDER 并设置为最高质量。

忘记 NETWORK_PROVIDER 这不是为准确的车辆跟踪而设计的。
网络位置可以偏离 1000m。
网络提供商有助于了解设备位于哪个城市。

于 2013-07-28T12:56:40.777 回答