- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
状态:大约一周后接受最佳可用答案并表示感谢。等待/邀请更多答案并引用
这件事很复杂。我真的很感谢所有评论员,特别是 asciimo、Gabe Sechan、AlexWien。请在适当研究后进一步投票和/或回答。
塞纳里奥:
Android 中的 Location.getLatitude()
返回 double,其精度较低。
Api http://developer.android.com/reference/android/location/Location.html
示例:
编辑2开始
我只是尝试通过模拟器发送 GPS 坐标,并在 Double dlongi = loc.getLongitude(); 中将 111.422006 自动转换为 111.422004999999998;字符串 longi = dlati.toString(); System.out.println(longi);
编辑2结束
编辑3开始
我通过模拟器(实际上是通过GPS设备)发送坐标为111.422006,android API以 double 值111.42004999999998接收它
编辑3结束
为时已晚:BigDecimal 类对此来说太晚了,因为它已经给出了 d/Double。
问题:如果需要完全准确怎么办?
有什么方法可以以良好的精度或以除 double 以外的其他形式获得它?
只是想分享并让其他人也注意到这一点。
请求:在通过 引用
确定正确答案之前,请不要回答。这将对社区有所帮助。
编辑:
看起来普通 GPS 设备的 GPS 坐标本身并不是 100% 完全准确,例如在 3 米附近,但看起来双倍进一步降低了准确性。这实际上是我的问题。
最佳答案
您的帖子显示 111.422006 变为 111.422004999999,这是 0.00001 的差异,由于双重类型转换而不会发生这种情况。
这清楚地表明,精度的降低来自于仿真器输入和/或内部 GPS 处理,最有可能是出于仿真目的(仿真器可以在需要时进行插值)
肯定不是double类型引起的。
对于真实的 GPS,即使 Android 在小数点后 6 位进行截断或四舍五入,这也不会影响位置精度。 gsp 位置的物理限制为 3m。当 android 删除该数字时,位置可能会改变几厘米。但这可以安全地忽略,这是设备所显示的位置,这是众所周知的事实。你无法进步。增加位数并不能提高 GPS 精度,您需要更好的 GPS 天线来提高精度。
更新:
这里以米为单位的坐标粒度与所使用的纬度/经度位数相关:
这种情况是最坏的情况:赤道上从 (0.0,0.0) 到 (0.0, lon2) 的距离
lon2= 0.1, meters = 11131.94558870502
lon2= 0.01, meters = 1113.194558870502
lon2= 0.0010, meters = 111.3194558870502
lon2= 1.0E-4, meters = 11.131945588705022
lon2= 1.0E-5, meters = 1.1131945588705023
lon2= 1.0E-6, meters = 0.11131945588705022
所以 0.000001 是 11 厘米
你也可以自己计算一下:
地球周长(大约)= 40.000 公里
除以360度=111.111公里=每度111111米(确切地说是111319m)
1 digit after comma: 0.1: divide by 10= 11131.9 m
2 digits after comma: 0.01: divide by 100= 1113.19m
等等,看上表。
如果您想要更正式的结果:请查看 asciimo 发布的链接:
关于java - Location.getLatitude 方法返回非精度 double ,这对 GPS 坐标不利,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16864395/
Android 的 location.getLatitude() 方法是否提供大地纬度或地心纬度? 如果是大地测量,它是基于 WGS84 还是 GR80 椭球体? API 规范令人惊讶地缺乏,它只声明
我是编程新手,正在学习 Google Location API 教程。我已正确执行所有步骤,但是,以下代码在 getlatitude() 和 getlongitude() 处给我错误。错误:无法解析方
我正在编写跟踪 map 。在我想要分配的 getDeviceLocation 方法中: prevLat=mLastKnownLocation.getLatitude(); prevLng=mLastK
我收到以下运行时错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“double android.location.Location.getLatitu
我正在开发一个应用程序,只要您单击获取位置 (gpsBtn),GPS 就会启用,用户的位置将显示在 TextView 中。我收到 java.lang.NullPointerException 错误,应
我正在处理的 Android 应用程序有问题。该应用程序工作正常,直到我添加了两行代码来获取用户的纬度和经度。当我添加此代码时,我的应用程序无缘无故崩溃。这是带有 getLatitude 和 getL
这个问题在这里已经有了答案: Android getlastknownlocation returns null (1 个回答) 关闭 9 年前。 我在这一行收到一个空指针异常: double la
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 4 年前。 请您解释一下为什么 getLon
这个问题在这里已经有了答案: What is a NullPointerException, and how do I fix it? (12 个答案) 关闭 8 年前。 我正在尝试获取当前的纬度和
我真的遇到了这个错误,已经尝试了我能想到的一切来避免 getLatitude 方法上的 NPE... 有人可以检查我的代码并推荐解决方案吗? 只有当我在纬度和经度的某些坐标中进行硬编码时,它才有效,但
我有一种方法可以在 map 上显示设备的当前位置。我使用 FusedLocationProviderClient 因为它似乎是最准确的。 在 currentLocation.getLatitude()
如何将 getLongitude() 和 getLatitude() 的值转换为 EditText 可以接受的格式? 如果我像这样把它们放到 Toast 中就可以了 String message =
状态:大约一周后接受最佳可用答案并表示感谢。等待/邀请更多答案并引用 这件事很复杂。我真的很感谢所有评论员,特别是 asciimo、Gabe Sechan、AlexWien。请在适当研究后进一步投票和
为什么我不知道,我犯了这个错误。程序之前运行过。但现在我犯了这个错误。谢谢你的帮助... MenuActivity.java: final Context context = this; privat
所以我整天都在为此工作,我快要失去理智了。我正在尝试从谷歌的位置 api 获取坐标,以便从另一个 api (forcast.io) 获取天气。我的代码已经达到这样的程度,即 google api 正在
我一直在寻找答案,但也许我只是没有使用正确的术语。我正在创建一个应用程序,它将访问数据库以返回距用户位置一定距离内的其他用户的列表。我从未使用过此类数据,而且我真的不知道这些值的含义。我想使用 MyS
我正在尝试使用 openstreetmap osmosis 读取机场的 pbf 文件并提取登机口和跑道等特征。 我使用的代码类似于:http://www.javaoptimum.com/how-to-
我想要做的就是让用户获得他喜欢的类型的位置列表。例如,如果输入是医院,我的应用程序将使用搜索字符串“医院”打开谷歌地图。但正如文档中所建议的那样,使用像 geo:0,0?q=hospital 这样的地
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 5 年前。 我正在 android 中创建一
当我使用 Mapbox 时,我遇到了与 GPS 相关的问题。 public class MainActivity extends AppCompatActivity implements OnMapR
我是一名优秀的程序员,十分优秀!