点在球体中的多边形,

时间:2009-06-09 14:07:09

标签: java

我的问题是,http://pietschsoft.com/post/2008/07/Virtual-Earth-Polygon-Search-Is-Point-Within-Polygon.aspx中给出的代码是否能够找到其中一个领域中的一个要点 下面的文件(第7-9页): http://www.weather.gov/directives/sym/pd01008006curr.pdf 期待,

2 个答案:

答案 0 :(得分:0)

多边形点算法通常只计算通过在任何特定方向上“绘制”一条线来穿过一条线的次数。然后它会知道它是否在多边形中,通过知道它越过该线的次数(偶数是外面的数字,奇数是在内部)。该网站上的代码看起来只是翻转一个布尔值而不是添加到计数器,但它是一样的。

我必须承认我没有读过您链接的PDF(太长了!)但是我没有遇到算法失败的实例。

一个提示可能是首先在多边形的最外面的极端周围绘制一个粗糙的正方形,并检查它是否落在该范围内以避免必须测试每个点。)

答案 1 :(得分:0)

我相信在某些情况下会失败。您链接到的算法(对于平面几何图形是正确的)对于球面几何图形是不正确的。考虑穿过第180个子午线的矩形,例如,标有“M”的矩形。该算法将该矩形视为覆盖美洲,非洲和欧洲,但不包括亚洲或太平洋。