Mat*_*yla 7 algorithm math geospatial point-in-polygon
我有一个定义多边形的坐标列表(纬度,经度).它的边缘是通过将两个点与弧相连接而创建的,弧是这些点之间的最短路径.
我的问题是确定是否有另一个点(让我们称之为U)放入或放出多边形.我一直在寻找网络几个小时寻找一个完整的算法,不会有任何缺陷.这就是我希望我的算法支持和接受什么(就可能的弱点而言):
我决定实施以下方法(作为适用于2D场景的光线投射算法的修改).
我知道如何实现计算从点2到5,但我没有线索如何选择起点小号.它在2D平面上并不那么明显,因为我不能只选择最左边点左边的点.
关于如何选择这一点(S)以及我的方法是否合理且最佳的任何想法?
感谢您的任何意见!
如果你的多边形是局部的,你可以只取与地球球体在B点相切的平面,然后计算多边形顶点在该平面上的投影,这样问题就变成了二维问题。
当您在投影中用直线逼近球面弧时,此方法会引入一个小误差。如果你的多边形很小,它可能是微不足道的,否则,你可以在进行投影时沿着圆弧添加中间点。
您还应该考虑B对跖点上的多边形,但考虑到多边形方向或检查B和某个多边形顶点之间的距离,这些多边形可能会被丢弃。
最后,如果您必须为此查询太多点,您可能需要选择一些固定的投影平面(例如,形成包裹球体的八面体的投影平面)并预先计算多边形在其上的投影。您甚至可以为每个索引创建一些二维索引结构作为四叉树,以加快查找速度。
| 归档时间: |
|
| 查看次数: |
1150 次 |
| 最近记录: |