android – distanceBetween()返回不准确的结果?

android – distanceBetween()返回不准确的结果?,第1张

概述我使用位置类的distanceBetween()来计算两点之间的距离,如下所示: private float getDistanceInMiles(GeoPoint p1, GeoPoint p2) { double lat1 = ((double)p1.getLatitudeE6()) / 1e6; double lng1 = ((double)p1.getLongitudeE 我使用位置类的distanceBetween()来计算两点之间的距离,如下所示:
private float getdistanceInMiles(GeoPoint p1,GeoPoint p2) {    double lat1 = ((double)p1.getLatitudeE6()) / 1e6;    double lng1 = ((double)p1.getLongitudeE6()) / 1e6;    double lat2 = ((double)p2.getLatitudeE6()) / 1e6;    double lng2 = ((double)p2.getLongitudeE6()) / 1e6;    float [] dist = new float[1];    Log.i("destination coordinates","Latitude:" + lat2 + ",Longitude: " + lng2);        Location.distanceBetween(lat1,lng1,lat2,lng2,dist);    return dist[0] * 0.000621371192f;}

Documentation说,distanceBetween()“计算两个位置之间的距离(以米为单位),以及可选择的最短路径之间的初始和最终轴承.然而,distanceBetween()与真实的GPS设备或Google Navigation应用程序返回的结果之间的差异相当大.例如,我的方法将返回6.2英里,而谷歌地图显示相同位置的10英里.我仔细检查起始点p1和终点p2的坐标,它们似乎是正确的.那么distanceBetween()方法是如何工作的,还是我做错了?顺便说一下,有没有办法使用Google Place API将距离检索为JsON响应?

距离由谷歌地图计算:6.1英里

和结果

Location.distanceBetween(41.742964,-87.995971,41.811511,-87.967923,dist) is

4.947700

解决方法 Google Navigation通常会按照路线列表中的步骤进行驾驶或步行距离,而不是直线距离,这是distanceBetween()报告的距离. 总结

以上是内存溢出为你收集整理的android – distanceBetween()返回不准确的结果?全部内容,希望文章能够帮你解决android – distanceBetween()返回不准确的结果?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1133054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存