Как рассчитать географическую зону для Bing Maps MapPolygon? - PullRequest
0 голосов
/ 01 марта 2011

У меня есть приложение Silverlight с элементом управления Bing Map, который отображает серию редактируемых MapPolygons, которые пользователь может изменять по своему усмотрению.Эти MapPolygons, конечно, определяются как географические координаты.Как рассчитать площадь многоугольника?

Полигоны хранятся в SQL Server как типы географии, и я мог бы вернуться к серверу для ответа, но затем пользователь теряет интерактивное обновление области, когда они изменяют форму полигонов.Точность с точностью до нескольких процентов желательна.

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Я решил это, написав подпрограмму для вычисления площади «сферической геометрии» на клиенте. Работает лакомство и не нужно возвращаться на сервер.

Короче, я обманываю. Я нахожу центроид области, сглаживаюсь плоскостью, центрированной на центроиде, и использую геометрию плоскости для вычисления площади многоугольника, рассматривая многоугольник как серию треугольников.

Хотя это приближение, оно достаточно точное для моих целей. Если бы мне нужен был точный ответ, я бы использовал метод SCHUMMBOs.

Дэйв.

0 голосов
/ 27 мая 2011

Если вы не против вернуться к службе WCF, вы можете использовать библиотеку Microsoft.SqlServer.Types для выполнения расчетов.В SqlGeometry есть метод, называемый STArea, который делает это: http://blogs.msdn.com/b/davidlean/archive/2008/10/17/this-site-under-construction.aspx

Вам также не придется терять интерактивность приложения.Когда пользователь закончит изменение размера, вы можете попросить службу указать область и кратко отобразить счетчик.Я понимаю, что это не так удобно, как делать это на лету, как изменение размера, но вам также не нужно вычислять площадь на клиенте.

Извините, я не помог вам ответить, каксделать это на лету.

...