java里判断一点是否在某个区域


import java.awt.geom.Path2D;

/**
 * 地理信息系统实用类
 *
 */
public class GisUtils {

	/**
	 * 判断某一个闭合区域是否包含某一个坐标点,areaX和areaY有序坐标数组是闭合区域的坐标点
	 * @param areaX 闭合区域X坐标有序数组
	 * @param areaY 闭合区域Y坐标有序数组
	 * @param pointX 某一点的X坐标
	 * @param pointY 某一点的Y坐标
	 * @return true point在area区域  false point不在area区域 
	 */
	public static boolean areaContains(double areaX[],double areaY[],double pointX,double pointY){
		Path2D path = new Path2D.Double();
		path.moveTo(areaX[0],areaY[0]);
		for(int i = 1; i < areaX.length; ++i) {
		   path.lineTo(areaX[i],areaY[i]);
		}
		path.closePath();
		
		return path.contains(pointX, pointY);
	}
}


猜你喜欢

转载自powertech.iteye.com/blog/2302960