如何在Windows Phone芒果上进行GeoFencing

时间:2012-05-16 16:23:49

标签: c# windows-phone-7 geofencing

有人可以帮助我或分享一些有关如何在Windows Phone Mango上实现GeoFencing的代码。

我有GeoPositions(纬度和经度)列表,并且在每个位置更新时我想验证当前位置是否在该列表中,换句话说我们称之为GeoFencing,但我想在本地进行而不触及任何WebService等... 所以我想知道它有可能......

此外,我希望在不阻止主UI线程的情况下实现此目的。

请建议。

1 个答案:

答案 0 :(得分:0)

在Microsoft示例中,Tidy应用程序(Mango示例的一部分) - 在Todo.DataAccess项目中,GeoCodeDistanceCalc静态类,用于计算一对坐标之间的距离:

return radius * 2 * Math.Asin(Math.Min(1, Math.Sqrt((Math.Pow(Math.Sin((DiffRadian(lat1, lat2)) / 2.0), 2.0) + Math.Cos(ToRadian(lat1)) * Math.Cos(ToRadian(lat2)) * Math.Pow(Math.Sin((DiffRadian(lng1, lng2)) / 2.0), 2.0)))));

(其中半径是地球的半径,无论你想要什么单位的结果)

对于多边形点方法,有一个whole Wikipedia article on the subject,但在过去,我发现光线投射算法实现起来相对简单。