/// <summary> /// Test if point is located inside region. /// Currently only two dimensions are handled. /// </summary> /// <param name="regionGeography">This region geography.</param> /// <param name="context">Web service request context.</param> /// <param name="coordinateSystem">Coordinate system used in region.</param> /// <param name='point'>Point.</param> /// <returns>True if point is located inside region.</returns> public static Boolean IsPointInsideGeometry(this WebRegionGeography regionGeography, WebServiceContext context, WebCoordinateSystem coordinateSystem, WebPoint point) { SqlGeometry geometryMultiPolygon, geometryPoint; if (regionGeography.BoundingBox.IsPointInside(point)) { geometryPoint = point.GetGeometry(); geometryMultiPolygon = regionGeography.GetMultiPolygonGeometry(context, coordinateSystem); return(geometryMultiPolygon.STIntersects(geometryPoint).Value); } else { // Species observation can not be inside region // since it is not inside the regions bounding box. return(false); } }
/// <summary> /// Test if point is located inside polygon. /// Currently only two dimensions are handled. /// </summary> /// <param name="polygon">This polygon.</param> /// <param name='point'>Point.</param> /// <returns>True if point is located inside polygon.</returns> public static Boolean IsPointInsideGeometry(this WebPolygon polygon, WebPoint point) { return(polygon.GetGeometry().STIntersects(point.GetGeometry()).Value); }