我有一个应用程序用GPS计算距离(公里)。 而我的问题是我的应用推迟了几公里。
我用它来更新坐标。
lm.requestLocationUpdates(lm.GPS_PROVIDER, 180,1, Loclist);
我计算1米,200公里\小时需要180毫秒。 但也许这是错误的,因为我再次获得慢速公里。
我不知道用汽车行驶数公里更新的最佳方式是什么。
我使用此代码计算距离。
Location locationA = new Location("point A");
locationA.setLatitude(lastLat);
locationA.setLongitude(lastLon);
Location locationB = new Location("point B");
locationB.setLatitude(currentLat);
locationB.setLongitude(currentLon);
distanceMeters = locationA.distanceTo(locationB);
抱歉我的英语不好。
提前致谢。
答案 0 :(得分:0)
GPS芯片(以及手机中的芯片)每秒提供的位置不超过一次。 因此,总结距离,可能会进行一些过滤,为您提供正确的距离。
当然距离可以延迟1-1.5秒,如果您想要估算自上次更新位置以来的距离,或者您只想测量测量位置,则取决于您的应用。
如果你推断那么很明显以后可能会发现估计是错误的(例如当减速汽车时)。
所以我的建议,你应该只总结一下你从Gps获得的alady。
答案 1 :(得分:-1)
speed = lm.getSpeed(); 如果(first_kilometer) timeTaken = TimeNow - TimeStarted; 其他 timeTaken = TimeNow - TimeLastKilometer;
然后,如果你得到30公里/小时......那么30/60分钟=达到一公里所需的时间。 (速度/ 60)= timeTakenToGetKilometer;TimeLastKilometer = TimeNow;
公里++;