判断一个点是否在多边形内&GIS LBS 系统中的应用说明
如何判断一个点是否在多边形内部?
- 面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。
- 夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。
- 引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。如果有奇数个交点,则说明在内部,如果有偶数个交点,则说明在外部。
1.2.都非常好理解,但是1.2. 并不适合所有的多边形,比如说凹多边形。关于射线算法,好像没有公式证明,不过网上很多论文可以google到.

图一:点延伸出的射线穿过不规则多边形,往左射线交5点,往右射线交3点,所以判断点在多边形内
多边形要规避一些极端情况,比如自我闭合等情况,具体可以参考Determining Whether A Point Is Inside A Complex Polygon
关于GIS/LBS上的应用,问,该算法是否可以判断经纬度坐标是否在一个标记的地图围栏中(任意多边形),答案是可以,但是需要注意两个问题:

