有人可以帮助我或分享一些有关如何在Windows Phone Mango上实现GeoFencing的代码。
我有GeoPositions(纬度和经度)列表,并且在每个位置更新时我想验证当前位置是否在该列表中,换句话说我们称之为GeoFencing,但我想在本地进行而不触及任何WebService等... 所以我想知道它有可能......
此外,我希望在不阻止主UI线程的情况下实现此目的。
请建议。
答案 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,但在过去,我发现光线投射算法实现起来相对简单。