2012-05-16 2 views
1

Может кто-нибудь помочь мне или поделиться некоторым кодом о том, как достичь GeoFencing на Windows Phone Mango.Как сделать GeoFencing на Windows Phone mango

У меня есть список геопозиций (широта и долгота) и каждое обновление позиции. Я хочу проверить, что эта текущая позиция находится в этом списке, которую мы, другими словами, вызываем GeoFencing, но я хочу сделать это локально, не касаясь какого-либо WebService и т. д. Итак, я хочу знать, возможно ли это ...

Также я хочу добиться этого, не блокируя основной поток пользовательского интерфейса.

Прошу совета.

+0

Как ваши позиции определяют виртуальный многоугольник, или вас интересует близость к ним? –

+0

Вы видите следующее сообщение в блоге: http://blogs.msdn.com/b/dragoman/archive/2010/10/13/wp7-code-geofencing-with-the-geolocation-api-and-rx.aspx –

+0

Rowland, по близости вы имеете в виду круг? на самом деле мне нужны как виртуальные полигоны, так и круг, но, по крайней мере, чтобы возглавить то, что когда-либо было легко и доступно, пожалуйста, направляйте – Shax

ответ

0

В образце Microsoft формирует Tidy приложения (часть образцов для манго) - в 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, но в прошлом я нашел алгоритм лучевого каста относительно простой для реализации ,

Смежные вопросы