0
A
回答
1
查看下面的代码,由我完成,其工作良好。在这个很多代码与你的东西相关,因为我已经做了完全相同的要求。所以你可以使用下面给出的所有代码。如果你觉得它没有问题,那就不要使用它。
@Override
public void onLocationChanged(Location location) {
try {
if (location != null) {
if (current_lat != null && current_lat > 0) {
latitude = current_lat;
}
if (current_long != null && current_long > 0) {
longitude = current_long;
}
current_lat = location.getLatitude();
current_long = location.getLongitude();
distanceBetweenTwoPoint = getDistance(latitude, longitude, current_lat, current_long);
if ((current_lat > 0 && current_long > 0) && distanceBetweenTwoPoint > IjoomerApplicationConfiguration.track_DistanceBetweenPoints_IN_METERS) {
if (location.hasSpeed()) {
speedInKm = location.getSpeed() * 3.6;
} else {
speedInKm = 0.0;
}
row = new HashMap<String, String>();
row.put(TRACKID, IN_TRACKID + "");
row.put(LATITUDE, current_lat.toString());
row.put(LONGITUDE, current_long.toString());
row.put(SPEED, speedInKm + "");
row.put(TIMESTAMP, System.currentTimeMillis() + "");
row.put(STATUS, status);
distance = distance + (distanceBetweenTwoPoint/1000);
row.put(DISTANCE, "" + distance);
dataProvider.InsertRow("TrackDetail", row);
row.put(LASTKNOWNLATITUDE, latitude.toString());
row.put(LASTKNOWNLONGITUDE, longitude.toString());
int seconds = (int) ((System.currentTimeMillis() - trackStartTime)/1000) % 60;
int minutes = (int) (((System.currentTimeMillis() - trackStartTime)/(1000 * 60)) % 60);
int hours = (int) (((System.currentTimeMillis() - trackStartTime)/(1000 * 60 * 60)) % 24);
row.put(DURATION, String.valueOf(hours) + " : " + String.valueOf(minutes) + " : " + String.valueOf(seconds));
setNotification(speedInKm, String.valueOf(hours) + " : " + String.valueOf(minutes) + " : " + String.valueOf(seconds));
if (status.equalsIgnoreCase("1")) {
builder.append("|" + current_lat + "," + current_long);
trackDuration = String.valueOf(hours) + " : " + String.valueOf(minutes) + " : " + String.valueOf(seconds);
if (speedInKm > maxSpeed) {
maxSpeed = speedInKm;
}
totalSpeed = totalSpeed + speedInKm;
++totalTrackPoint;
sendBrodcastToActivity();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
2
速度:行驶距离的行驶时间划分。
所以计算当前速度,计算你需要通过该距离的时间,这是时间差了(由Location.distanceTo())和除法的最后两个位置之间的距离 - 地点的邮票。
或者,只需使用Location.getSpeed()
相关问题
- 1. 什么是计算Android当前速度的好方法?
- 2. 有没有什么方法可以看到Android的当前功耗率?
- 3. 有没有一种方法可以在Android中获得没有GPS的速度?
- 4. Android Scroller:当前速度计算
- 5. 有没有什么方法可以计算jQuery数组中出现的次数?
- 6. 有什么方法可以计算java中的指令数
- 7. 有什么方法可以确定触摸动作的速度
- 8. 有没有什么办法来获得或计算ScrollView的速度?
- 9. 有没有什么方法可以加速monkeyrunner脚本的执行?
- 10. 有没有一种方法可以侦听Android中音频的速度/ bpm?
- 11. 有什么方法可以计算目录的inode?
- 12. 有什么方法可以恢复Jenkins当前的版本?
- 13. 有什么方法可以在Google Maps v3中最大化InfoWindow
- 14. 有没有什么方法可以选择块中当前多行堆栈中的最后一个元素?
- 15. 有没有什么办法可以提高amazon aws上的sshfs速度?
- 16. 有没有什么方法可以使用'unset'作为方法?
- 17. 计算Android中当前的移动连接速度?
- 18. 有什么方法可以访问Google Maps磁贴的GeoJSON?
- 19. 有没有什么方法可以在Windows中模拟LD_LIBRARY_PATH?
- 20. 提供简单的方法来获得当前的速度(执行速度计)
- 21. 有没有什么办法可以在Swift中引用当前模块?
- 22. 有没有什么方法可以重用java 8中的Stream?
- 23. 访问VBA:有什么方法可以获得计算机规格?
- 24. 有什么方法可以加速jquery/javascript中的img交换?
- 25. 当我运行watir-webdriver时,有没有什么好的方法来加快IE的运行速度
- 26. 有没有什么方法可以访问Android的WebView中的DOM结构?
- 27. 有没有什么办法可以获得“当前函数”的返回类型
- 28. 有没有什么办法可以检测IE8当前活动的窗口?
- 29. 有没有什么方法可以找到horizontalScrollVIew中当前可见的选项卡?
- 30. 有没有什么办法可以水平进度条在android中