我正在开发一个使用 GPS 的 Android 应用程序。我想知道如果“新位置”(C 点)距离线段 AB 太远,是否有办法可以丢弃 GPS 位置数据。我正在使用发现的点到线段公式在维基百科上 http://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line.
到目前为止,当我尝试使用纬度和经度坐标时,我的代码返回 NaN。
private void verifyGPSLocation(Location start, Location end, Location current){
final double errorValue = 0.0000216;
double normalLength = Math.hypot(end.getLatitude() - start.getLatitude(), end.getLongitude() - start.getLongitude());
double ret = Math.abs(((current.getLatitude() - start.getLatitude()) * (end.getLongitude() - start.getLongitude()) - (end.getLatitude() - start.getLatitude()))/normalLength );
Log.e("Coooooord", normalLength+"--"+ret);
}
这是我的第一篇文章,因此如果我没有正确完成此操作或没有提供足够的信息,请告诉我。感谢您的帮助,我喜欢这个网站!
我认为您用来查找两个地理点之间距离的公式过于简单。由于地球的曲率,公式有点复杂。
看一看here http://www.movable-type.co.uk/scripts/latlong.html,这提供了更准确的近似值。
还有一个 Javascript 示例,因此您可以通过一些语法调整轻松将其更改为 Java。
澄清后,您似乎正在寻找一个点到地球上两个位置之间的路径的距离。查看上面链接中的跨轨道距离变化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)