Fixed #25524 -- Removed GISOperations.get_distance()'s handle_spheroid param.

This commit is contained in:
Tim Graham 2017-02-11 05:47:20 -05:00 committed by GitHub
parent d4b00c5c24
commit 0166dd2f8c
4 changed files with 5 additions and 14 deletions

View File

@ -191,7 +191,7 @@ class OracleOperations(BaseSpatialOperations, DatabaseOperations):
"""
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.
On Oracle, geometry columns with a geodetic coordinate system behave

View File

@ -285,7 +285,7 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations):
else:
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,
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.
dist_param = value
params = [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
return [dist_param]
def get_geom_placeholder(self, f, value, compiler):
"""

View File

@ -150,7 +150,7 @@ class SpatiaLiteOperations(BaseSpatialOperations, DatabaseOperations):
"""
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,
lookup value, and lookup type.

View File

@ -436,7 +436,7 @@ class DistanceLookupBase(GISLookup):
else:
params += connection.ops.get_distance(
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)
return (rhs, params)