我想监控设备(手机,平板电脑,..(的速度,就像谷歌地图一样,它们以几乎精确的速度显示车辆移动的速度,延迟为几分之一秒。 如果可能,请告诉我。
是的,您可以使用geolocator
插件来测量速度。它为您提供Position
对象,您可以对其调用speed
。例:
Geolocator.getPositionStream().listen((position) {
double speedMps = position.speed; // This is your speed
});
(可选(您还可以为其提供位置设置。例如:
var androidSettings = AndroidSettings(
// Change parameters to your liking.
);
var iosSettings = AppleSettings(
// Change parameters to your liking.
);
var settings = Platform.isIOS ? iosSettings : androidSettings;
Geolocator.getPositionStream(locationSettings: settings).listen((position) {
double speedMps = position.speed;
});
这是当前有效的实现...
Geolocator.getPositionStream(
forceAndroidLocationManager: true,
intervalDuration: Duration(seconds: 3),
distanceFilter: 2,
desiredAccuracy: LocationAccuracy.bestForNavigation)
.listen((position) {
var speedInMps =
position.speed.toStringAsPrecision(2); // this is your speed
print(speedInMps);
如果您想要以公里为单位的速度:
速度以Km = 速度以Mps * 3.6为单位;
<小时 />如何将米/秒转换为公里/小时?
方法1(扣除法(:
从逻辑上看整个事情,要将 m/s 转换为 km/h,将米除以 1000,然后将结果乘以 3600。
例如,要将 40 m/s 转换为 km/h:
- 步骤 1:40 m/1000 = 0.04 km
- 第 2 步:0.04 公里 * 3600 = 144
- 结果:40 米/秒 = 144 公里/小时
为什么我们做这些行动而不是其他行动?因为首先我们需要将米转换为公里。为此,我们必须将它们除以 1,000,因为 1 m = 0.001 km。在这个阶段,我们将以公里/秒为单位获得结果。为了得到以公里/小时为单位的结果,我们必须将整数另外乘以 3600,因为 1 小时 = 3600 秒。
方法 2(更快(:
较短的方法是将 m/s 乘以 3.6,因为 1 m/s = 3.6 km/h。
示例:12 m/s * 3.6 = 43.2 km/h。
将公里/小时转换为米/秒
要快速将 km/h 转换为 m/s,只需将其除以 3.6。
示例:90 公里/小时/3.6 = 25 米/秒