diff --git a/lib/spatial_features/has_spatial_features.rb b/lib/spatial_features/has_spatial_features.rb
index <HASH>..<HASH> 100644
--- a/lib/spatial_features/has_spatial_features.rb
+++ b/lib/spatial_features/has_spatial_features.rb
@@ -49,6 +49,13 @@ module SpatialFeatures
       return scope
     end
 
+    def covering(other)
+      scope = joins_features_for(other).select("#{table_name}.*").group("#{table_name}.#{primary_key}")
+      scope = scope.where('ST_Covers(features_for.geom, features_for_other.geom)')
+
+      return scope
+    end
+
     def polygons
       features.polygons
     end
@@ -152,6 +159,10 @@ module SpatialFeatures
       respond_to?(:features_hash)
     end
 
+    def covers?(other)
+      self.class.covering(other).exists?(self)
+    end
+
     def intersects?(other)
       self.class.intersecting(other).exists?(self)
     end
Added method to return records that are fully covering.

A special case of the intersection where self fully covers other. Need to cache this somehow.