如何从点创建多边形?

时间:2013-01-19 07:33:17

标签: sql-server gis geography

在地理信息系统中,我会得到一个单一的点,并且会创建一个正多边形,基本上就是this function所做的。

不幸的是,我不知道如何实现这一目标。我甚至不知道在谷歌上要找什么。

有什么想法吗?

PS:系统基于SQL Server,因此我使用的是T-SQL(如果这对任何方式都有帮助/有害)。

1 个答案:

答案 0 :(得分:2)

这听起来有点像家庭作业,所以如果我用简单语言而不是T-SQL布局算法,请原谅我

首先,我们将在原点(0,0)周围创建一个边长为1的n边,然后显示如何获得半径为r,旋转θ和中心(x)的多边形的一般情况,Y)。

此n边多边形中将有n个顶点。每个顶点将具有坐标(cos(k / n),sin(k / n)),其中k的范围从0到n-1。从那里,为了得到你的多边形,从顶点k到顶点k + 1做一条线。

现在,我们如何让它更大?如果多边形具有半径r而不是半径1,则坐标将是(r * cos(k / n),r * sin(k / n))。将它旋转角度θ? (r * cos((k / n)+ theta),r * sin((k / n)+ theta)。将它翻译成原点以外的某个位置?(x + r * cos((k / n)+ theta) ),y + r * sin((k / n)+ theta)。