/// <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);
            }
        }
Пример #2
0
 /// <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);
 }