package commons.gis import org.locationtech.jts.geom.Point import org.locationtech.jts.geom.Polygon /**点面关系判断*/ object PointInPolygonChecker { //老点 // private var oldPointX = 0.0 // private var oldPointY = 0.0 private var oldPoint: Point? = null // private var oldPointY = 0.0 //生成的矩形 // private var pRectangle: Polygon? = null /***点是否在多边形内:*/ fun isPointInPolygon(point: Point, polygon: Polygon): Boolean { return polygon.contains(point) } /***点是否在多边形内:*/ fun isPointInPolygon(lng: Double, lat: Double, polygon: Polygon): Boolean { // 创建点 val point = MGeoTools.createPoint(lng, lat) return polygon.contains(point) } /** * 判断点是否在多边形内 * @param cLat 当前经纬度 * @param cLng * @param pointX 待判断点经度 * @param pointY 待判断点纬度 */ /* fun isPointInPolygonRectCenter( cLng: Double, cLat: Double, pointX: Double, pointY: Double, head: Double = 0.0 ): Boolean { val point = MGeoTools.createPoint(cLng, cLat) *//* if (oldPoint != null) { // 变化的2点距离 var pdis = BasicTools.calculateHaversineDistance(pointX, pointY, oldPoint!!.x, oldPoint!!.y) println("-------中心点的变化距离 pdis = ${pdis}") if (pdis < 40) { return true } } oldPoint = point*//* //以自己为中心点生成矩形 var pRectangle = MGeoTools.createRectangleCenter(cLng, cLat, head, 50.0, 50.0) return pRectangle.contains(point) }*/ }