2011-02-28 44 views
0

我有一个Bing Map应用程序,带有Bing Map控件,显示一系列可编辑的MapPolygons,用户可以随意调整大小。这些MapPolygons当然被定义为地理坐标。我如何计算多边形的面积?如何计算Bing Maps MapPolygon的地理区域?

多边形在SQL Server中作为地理类型存储,我可以回到服务器寻找答案,但是当用户重新塑造多边形时,用户失去了交互式更新区域。准确度在百分之几以内是可取的。

回答

0

如果您不介意回到WCF服务,可以使用Microsoft.SqlServer.Types库来执行计算。 SqlGeometry有一个名为STArea的方法,它可以做到这一点:http://blogs.msdn.com/b/davidlean/archive/2008/10/17/this-site-under-construction.aspx

您不一定会失去应用程序的交互性。当用户完成大小调整时,您可以请求该区域的服务并简要显示一个微调框或其他内容。我知道这不会像在调整大小时那样光滑,但您也不必计算客户端上的区域。

对不起,我在回答如何在飞行中做的更有帮助。

1

我解决了这个问题,通过编写一个例程来在客户端上进行“球面几何”面积计算。作品一种享受,无需返回到服务器。

总之,我作弊。我找到该区域的质心,将其平面化为以质心为中心的平面,并使用平面几何体将多边形视为一系列三角形,从而进行多边形区域计算。

尽管这是一个近似值,但对于我的目的来说,这相当准确。如果我需要一个确切的答案,我会使用SCHUMMBOs方法。

戴夫。