Flutter:如何在用户移动时获得精确的速度和行进距离?
Flutter: How to get precise speed and traveled distance as the user moves?
我正在尝试构建一种健身应用程序。我想知道用户速度,还想显示用户行驶的距离。我已经知道如何使用 Geolocator 包获取它,但数据不够精确,事实上,即使用户不移动(并且行进距离增加),我也会收到位置更新。我想知道是否有更好的解决方案。其他健身应用怎么能这么精准?
华为Location Kit可能会帮助您解决问题。
Location Kit 将全球卫星导航系统 (GNSS)、Wi-Fi 和基站定位功能集成到您的应用程序中,构建全球定位功能,让您为全球用户提供基于位置的灵活服务。目前主要提供融合定位、activity身份识别、地理围栏三大能力。您可以根据需要调用其中一项或多项功能。
详情请参考Docs.
华为也为Flutter提供了一些HMS Core kit插件:
我正在使用 Geolocator for Flutter 构建类似的东西。
我不知道你是否在使用 Geolocator.getPositionStream
,我知道,你可以在其中设置一个过滤器来消除运动中的噪音。
(https://pub.dev/documentation/geolocator/latest/geolocator/Geolocator/getPositionStream.html)
我通过速度(米/秒)计算距离,并通过将 intervalDuration
设置为 1 秒每秒获取该值。
在 iOS 上效果很好,但昨天才发现它在 Android 上根本不起作用。所以我在这里寻找解决方案。
你对这个问题有何看法?
double trip = 0.0;
positionStream = Geolocator.getPositionStream(
intervalDuration: Duration(seconds: 1),
desiredAccuracy: LocationAccuracy.high
)
.listen((pos) {
if (pos != null) {
// calculate distance from speed
trip += pos.speed;
}
}
我正在尝试构建一种健身应用程序。我想知道用户速度,还想显示用户行驶的距离。我已经知道如何使用 Geolocator 包获取它,但数据不够精确,事实上,即使用户不移动(并且行进距离增加),我也会收到位置更新。我想知道是否有更好的解决方案。其他健身应用怎么能这么精准?
华为Location Kit可能会帮助您解决问题。
Location Kit 将全球卫星导航系统 (GNSS)、Wi-Fi 和基站定位功能集成到您的应用程序中,构建全球定位功能,让您为全球用户提供基于位置的灵活服务。目前主要提供融合定位、activity身份识别、地理围栏三大能力。您可以根据需要调用其中一项或多项功能。
详情请参考Docs.
华为也为Flutter提供了一些HMS Core kit插件:
我正在使用 Geolocator for Flutter 构建类似的东西。
我不知道你是否在使用 Geolocator.getPositionStream
,我知道,你可以在其中设置一个过滤器来消除运动中的噪音。
(https://pub.dev/documentation/geolocator/latest/geolocator/Geolocator/getPositionStream.html)
我通过速度(米/秒)计算距离,并通过将 intervalDuration
设置为 1 秒每秒获取该值。
在 iOS 上效果很好,但昨天才发现它在 Android 上根本不起作用。所以我在这里寻找解决方案。
你对这个问题有何看法?
double trip = 0.0;
positionStream = Geolocator.getPositionStream(
intervalDuration: Duration(seconds: 1),
desiredAccuracy: LocationAccuracy.high
)
.listen((pos) {
if (pos != null) {
// calculate distance from speed
trip += pos.speed;
}
}