如何在我的 windows 商店应用程序中使用 C# 检测用户是否停止行走?
How can I detect if an user has stopped walking using C# in my windows store app?
我需要为我的应用程序执行此操作,但我不确定如何操作。目前我正在尝试使用 Geolocator 和 Timer 来实现它。
- 声明一个具有固定 ReportInterval 的地理定位器
- 存储位置
在这些方法的帮助下,将当前位置与存储的位置进行比较以检测运动
public const double EARTH_RADIUS_M = 6371000
private static double ToRad(double val)
{
return val * (Math.PI / 180);
}
public static double GetDistanceM(double lat0, double lng0, double lat1, double lng1)
{
double dLat = ToRad(lat1 - lat0);
double dLon = ToRad(lng1 - lng0);
double a = Math.Pow(Math.Sin(dLat / 2), 2) +
Math.Cos(ToRad(lat0)) * Math.Cos(ToRad(lat1)) *
Math.Pow(Math.Sin(dLon / 2), 2);
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
double distance = EARTH_RADIUS_M * c;
return distance;
}
windows10 的注意事项:
private async void StartLocationExtensionSession()
{
session = new ExtendedExecutionSession();
session.Description = "Location Tracker";
session.Reason = ExtendedExecutionReason.LocationTracking;
var result = await session.RequestExtensionAsync();
}
考虑 Windows Phone 8:
https://msdn.microsoft.com/en-us/library/windows/apps/jj662935(v=vs.105).aspx
- 对您的新动态 MovementThreshold 感到满意 ;)!
我需要为我的应用程序执行此操作,但我不确定如何操作。目前我正在尝试使用 Geolocator 和 Timer 来实现它。
- 声明一个具有固定 ReportInterval 的地理定位器
- 存储位置
在这些方法的帮助下,将当前位置与存储的位置进行比较以检测运动
public const double EARTH_RADIUS_M = 6371000 private static double ToRad(double val) { return val * (Math.PI / 180); } public static double GetDistanceM(double lat0, double lng0, double lat1, double lng1) { double dLat = ToRad(lat1 - lat0); double dLon = ToRad(lng1 - lng0); double a = Math.Pow(Math.Sin(dLat / 2), 2) + Math.Cos(ToRad(lat0)) * Math.Cos(ToRad(lat1)) * Math.Pow(Math.Sin(dLon / 2), 2); double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a)); double distance = EARTH_RADIUS_M * c; return distance; }
windows10 的注意事项:
private async void StartLocationExtensionSession() { session = new ExtendedExecutionSession(); session.Description = "Location Tracker"; session.Reason = ExtendedExecutionReason.LocationTracking; var result = await session.RequestExtensionAsync(); }
考虑 Windows Phone 8:
https://msdn.microsoft.com/en-us/library/windows/apps/jj662935(v=vs.105).aspx
- 对您的新动态 MovementThreshold 感到满意 ;)!