Как сделать геозону на манго Windows Phone

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

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

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

Пожалуйста посоветуй.


person Shax    schedule 16.05.2012    source источник
comment
Ваши позиции определяют виртуальный полигон или вас интересует близость к ним?   -  person Rowland Shaw    schedule 16.05.2012
comment
Видели ли вы следующую запись в блоге: blogs.msdn.com/b/dragoman/archive/2010/10/13/   -  person Paul Diston    schedule 16.05.2012
comment
Роуленд, под Близостью ты имеешь в виду круг? на самом деле мне нужен и виртуальный многоугольник, и круг, но, по крайней мере, чтобы понять, что когда-либо легко и достижимо, пожалуйста, помогите   -  person Shax    schedule 16.05.2012
comment
Пол, я видел это, но, поскольку я новичок в Windows Phone, я не очень привык к RX, и это выглядит довольно сложно, но если это единственный способ, я снова обращусь к этому блогу.   -  person Shax    schedule 16.05.2012
comment
Что никто не знает мою проблему?   -  person Shax    schedule 17.05.2012


Ответы (1)


В образце формы 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)))));

(где радиус - это радиус Земли в любой единице, в которой вы хотите получить результат)

Для подхода «точка в многоугольнике» есть целая статья в Википедии по этому вопросу, но в прошлом Я обнаружил, что алгоритм raycasting относительно прост в реализации.

person Rowland Shaw    schedule 17.05.2012