1- import warnings
2-
31from django .contrib .gis import geos
42from django .contrib .gis .db import models
53from django .contrib .gis .db .backends .base .operations import BaseSpatialOperations
64from django .contrib .gis .measure import Distance
5+ from django .db import NotSupportedError
76from django .db .backends .base .operations import BaseDatabaseOperations
87
98from .adapter import Adapter
109from .utils import SpatialOperator
1110
1211
1312def _gis_within_operator (field , value , op = None , params = None ):
14- print (f"Within value: { value } " )
13+ # print(f"Within value: {value}")
1514 return {
1615 field : {
1716 "$geoWithin" : {
@@ -55,9 +54,7 @@ def _gis_disjoint_operator(field, value, op=None, params=None):
5554def _gis_contains_operator (field , value , op = None , params = None ):
5655 value_type = value ["type" ]
5756 if value_type != "Point" :
58- warnings .warn (
59- "MongoDB does not support strict contains on non-Point query geometries. Results will be for intersection."
60- )
57+ raise NotSupportedError ("MongoDB does not support contains on non-Point query geometries." )
6158 return {
6259 field : {
6360 "$geoIntersects" : {
@@ -71,7 +68,7 @@ def _gis_contains_operator(field, value, op=None, params=None):
7168
7269
7370def _gis_distance_operator (field , value , op = None , params = None ):
74- print (f"Distance: { params } " )
71+ # print(f"Distance: {params}")
7572 if hasattr (params [0 ], "m" ):
7673 distance = params [0 ].m
7774 else :
@@ -100,7 +97,7 @@ def _gis_distance_operator(field, value, op=None, params=None):
10097 }
10198 }
10299 }
103- print (f"Command: { cmd } " )
100+ # print(f"Command: {cmd}")
104101 return cmd
105102
106103
@@ -140,6 +137,7 @@ def gis_operators(self):
140137 "BoundingCircle" ,
141138 "Centroid" ,
142139 "ClosestPoint" ,
140+ "Distance" ,
143141 "Difference" ,
144142 "Envelope" ,
145143 "ForcePolygonCW" ,
0 commit comments