java - 如何提高GPS坐标的精度?

标签 java android google-maps gps

我有一个应用程序,我必须在同一张 map 上绘制用户的位置和他 friend 的位置,但问题是位置不准确。例如两个坐标:81.445679 25.678998 和 81.448902 25.670123。在我的应用程序中,我正在获取我的位置,然后在 map 上绘制相同的位置,但我认为从 double 到 int 的类型转换造成了这些差异。该部分的代码如下所示:

 locationManager = (LocationManager)this.getSystemService(LOCATION_SERVICE); 
 Location location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
 location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

 int latitude = (int)(location.getLatitude() * 1000000);
 int longitude = (int)(location.getLongitude() * 1000000);

 point = new GeoPoint(latitude,longitude);
 mapController.animateTo(point);

为了将这些坐标发送给用户的 friend ,我将这些坐标作为字符串文本发送,如下所示:

 private double longitude,latitude;
 latitude=location.getLatitude();
 longitude=location.getLongitude();
 String message = latitude + " " + longitude ; 

然后将此消息发送给用户的 friend 和 friend 端,通过将此消息分解为 double 来提取此位置。因此可能将 double 解析为字符串,然后将字符串解析为 double 是缺乏准确性的一个原因。

我不清楚。所以有人可以给我一些想法吗?或者可以告诉我可以对现有代码进行什么样的修改?

提前致谢。

最佳答案

您可能无法通过手机获得准确的位置。

通常,手机中的接收器相当便宜,并且针对节能而非准确性进行了优化。

为了准确定位,用户需要直视天空。他不应该站在高楼旁边等等。

不过,您可以尝试从他的当前位置获取平均值。

关于java - 如何提高GPS坐标的精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183384/

相关文章:

java - 获取 Web 服务器上文件的文件修改/创建时间

java - 从 NPM json-server 获取数据抛出 NetworkOnMainThreadException

java - 无法访问导入的类方法

java - Android Canvas 宽高波动

java - Android - 添加视频广告到应用程序

javascript - 热访问谷歌地图对象以获取 LatLngToPoint

ios - 如何在ios的谷歌地图上实现道路路线导航

java - 继续/中断时不必要的标签

Android:我可以重复使用图层列表吗?

Javascript 世界地图可以在本地运行而无需访问互联网?