Fixed #25524 -- Removed GISOperations.get_distance()'s handle_spheroid param.
This commit is contained in:
parent
d4b00c5c24
commit
0166dd2f8c
|
@ -191,7 +191,7 @@ class OracleOperations(BaseSpatialOperations, DatabaseOperations):
|
||||||
"""
|
"""
|
||||||
return 'MDSYS.SDO_GEOMETRY'
|
return 'MDSYS.SDO_GEOMETRY'
|
||||||
|
|
||||||
def get_distance(self, f, value, lookup_type, **kwargs):
|
def get_distance(self, f, value, lookup_type):
|
||||||
"""
|
"""
|
||||||
Return the distance parameters given the value and the lookup type.
|
Return the distance parameters given the value and the lookup type.
|
||||||
On Oracle, geometry columns with a geodetic coordinate system behave
|
On Oracle, geometry columns with a geodetic coordinate system behave
|
||||||
|
|
|
@ -285,7 +285,7 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations):
|
||||||
else:
|
else:
|
||||||
return 'geometry(%s,%d)' % (geom_type, f.srid)
|
return 'geometry(%s,%d)' % (geom_type, f.srid)
|
||||||
|
|
||||||
def get_distance(self, f, dist_val, lookup_type, handle_spheroid=True):
|
def get_distance(self, f, dist_val, lookup_type):
|
||||||
"""
|
"""
|
||||||
Retrieve the distance parameters for the given geometry field,
|
Retrieve the distance parameters for the given geometry field,
|
||||||
distance lookup value, and the distance lookup type.
|
distance lookup value, and the distance lookup type.
|
||||||
|
@ -316,16 +316,7 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations):
|
||||||
# Assuming the distance is in the units of the field.
|
# Assuming the distance is in the units of the field.
|
||||||
dist_param = value
|
dist_param = value
|
||||||
|
|
||||||
params = [dist_param]
|
return [dist_param]
|
||||||
# handle_spheroid *might* be dropped in Django 2.0 as PostGISDistanceOperator
|
|
||||||
# also handles it (#25524).
|
|
||||||
if handle_spheroid and len(dist_val) > 1:
|
|
||||||
option = dist_val[1]
|
|
||||||
if not geography and geodetic and lookup_type != 'dwithin' and option == 'spheroid':
|
|
||||||
# using distance_spheroid requires the spheroid of the field as
|
|
||||||
# a parameter.
|
|
||||||
params.insert(0, f._spheroid)
|
|
||||||
return params
|
|
||||||
|
|
||||||
def get_geom_placeholder(self, f, value, compiler):
|
def get_geom_placeholder(self, f, value, compiler):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -150,7 +150,7 @@ class SpatiaLiteOperations(BaseSpatialOperations, DatabaseOperations):
|
||||||
"""
|
"""
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_distance(self, f, value, lookup_type, **kwargs):
|
def get_distance(self, f, value, lookup_type):
|
||||||
"""
|
"""
|
||||||
Return the distance parameters for the given geometry field,
|
Return the distance parameters for the given geometry field,
|
||||||
lookup value, and lookup type.
|
lookup value, and lookup type.
|
||||||
|
|
|
@ -436,7 +436,7 @@ class DistanceLookupBase(GISLookup):
|
||||||
else:
|
else:
|
||||||
params += connection.ops.get_distance(
|
params += connection.ops.get_distance(
|
||||||
self.lhs.output_field, (dist_param,) + self.rhs[2:],
|
self.lhs.output_field, (dist_param,) + self.rhs[2:],
|
||||||
self.lookup_name, handle_spheroid=False
|
self.lookup_name,
|
||||||
)
|
)
|
||||||
rhs = connection.ops.get_geom_placeholder(self.lhs.output_field, params[0], compiler)
|
rhs = connection.ops.get_geom_placeholder(self.lhs.output_field, params[0], compiler)
|
||||||
return (rhs, params)
|
return (rhs, params)
|
||||||
|
|
Loading…
Reference in New Issue