0

我有一个包含大约 5 个多边形地标的 KML 文件,我想知道是否有办法确定指定点是否在任何多边形内。谷歌地球有这样的功能吗?或者可以写一个吗?

4

1 回答 1

0

使用光线投射方法进行多边形测试中的点。
测试从测试点向无穷远(任意选择的方向,通常平行于用于代码简化和速度的轴之一)射出一条射线,并计算与相关多边形的交点。如果交叉点的数量是奇数,则该点位于多边形内,否则位于多边形外。对所有多边形重复此测试。
查看此链接以获取进一步的解释以及退化和特殊情况。 点子维基百科
我已经在 C 中实现了这个函数,所以如果你需要任何指针,请告诉我。
您也可以使用绕组数测试。WN 维基百科 它们可能具有相似的性能,具体取决于实现和平台。
您将找到的实现可能主要用于笛卡尔坐标。请记住,它们在地理坐标上也能正常工作。

于 2015-01-24T05:24:04.617 回答