Removed GeoQuerySet leftovers.

Follow up to a0d166306f.
This commit is contained in:
Sergey Fedoseev 2017-03-16 18:38:02 +05:00 committed by Tim Graham
parent 6bc4ff36db
commit 1bf5e79394
5 changed files with 13 additions and 104 deletions

View File

@ -16,30 +16,6 @@ class BaseSpatialOperations:
geography = False
geometry = False
area = False
bounding_circle = False
centroid = False
difference = False
distance = False
distance_sphere = False
distance_spheroid = False
envelope = False
force_rhr = False
mem_size = False
num_geom = False
num_points = False
perimeter = False
perimeter3d = False
point_on_surface = False
polygonize = False
reverse = False
scale = False
snap_to_grid = False
sym_difference = False
transform = False
translate = False
union = False
# Aggregates
disallowed_aggregates = ()
@ -59,13 +35,6 @@ class BaseSpatialOperations:
'Translate', 'Union',
}
# Serialization
geohash = False
geojson = False
gml = False
kml = False
svg = False
# Constructors
from_text = False
from_wkb = False

View File

@ -63,21 +63,7 @@ class OracleOperations(BaseSpatialOperations, DatabaseOperations):
Adapter = OracleSpatialAdapter
area = 'SDO_GEOM.SDO_AREA'
gml = 'SDO_UTIL.TO_GMLGEOMETRY'
centroid = 'SDO_GEOM.SDO_CENTROID'
difference = 'SDO_GEOM.SDO_DIFFERENCE'
distance = 'SDO_GEOM.SDO_DISTANCE'
extent = 'SDO_AGGR_MBR'
intersection = 'SDO_GEOM.SDO_INTERSECTION'
length = 'SDO_GEOM.SDO_LENGTH'
num_points = 'SDO_UTIL.GETNUMVERTICES'
perimeter = length
point_on_surface = 'SDO_GEOM.SDO_POINTONSURFACE'
reverse = 'SDO_UTIL.REVERSE_LINESTRING'
sym_difference = 'SDO_GEOM.SDO_XOR'
transform = 'SDO_CS.TRANSFORM'
union = 'SDO_GEOM.SDO_UNION'
unionagg = 'SDO_AGGR_UNION'
from_text = 'SDO_GEOMETRY'
@ -222,6 +208,8 @@ class OracleOperations(BaseSpatialOperations, DatabaseOperations):
SRID of the field. Specifically, this routine will substitute in the
SDO_CS.TRANSFORM() function call.
"""
tranform_func = self.spatial_function_name('Transform')
if value is None:
return 'NULL'
@ -230,7 +218,7 @@ class OracleOperations(BaseSpatialOperations, DatabaseOperations):
if hasattr(value, 'as_sql'):
if transform_value(value, f.srid):
placeholder = '%s(%%s, %s)' % (self.transform, f.srid)
placeholder = '%s(%%s, %s)' % (tranform_func, f.srid)
else:
placeholder = '%s'
# No geometry value used for F expression, substitute in
@ -239,7 +227,7 @@ class OracleOperations(BaseSpatialOperations, DatabaseOperations):
return placeholder % sql
else:
if transform_value(value, f.srid):
return '%s(SDO_GEOMETRY(%%s, %s), %s)' % (self.transform, value.srid, f.srid)
return '%s(SDO_GEOMETRY(%%s, %s), %s)' % (tranform_func, value.srid, f.srid)
else:
return 'SDO_GEOMETRY(%%s, %s)' % f.srid

View File

@ -153,44 +153,12 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations):
prefix = self.geom_func_prefix
self.area = prefix + 'Area'
self.bounding_circle = prefix + 'MinimumBoundingCircle'
self.centroid = prefix + 'Centroid'
self.collect = prefix + 'Collect'
self.difference = prefix + 'Difference'
self.distance = prefix + 'Distance'
self.distance_sphere = prefix + 'distance_sphere'
self.distance_spheroid = prefix + 'distance_spheroid'
self.envelope = prefix + 'Envelope'
self.extent = prefix + 'Extent'
self.extent3d = prefix + '3DExtent'
self.force_rhr = prefix + 'ForceRHR'
self.geohash = prefix + 'GeoHash'
self.geojson = prefix + 'AsGeoJson'
self.gml = prefix + 'AsGML'
self.intersection = prefix + 'Intersection'
self.isvalid = prefix + 'IsValid'
self.kml = prefix + 'AsKML'
self.length = prefix + 'Length'
self.length3d = prefix + '3DLength'
self.length_spheroid = prefix + 'length_spheroid'
self.makeline = prefix + 'MakeLine'
self.makevalid = prefix + 'MakeValid'
self.mem_size = prefix + 'mem_size'
self.num_geom = prefix + 'NumGeometries'
self.num_points = prefix + 'npoints'
self.perimeter = prefix + 'Perimeter'
self.perimeter3d = prefix + '3DPerimeter'
self.point_on_surface = prefix + 'PointOnSurface'
self.polygonize = prefix + 'Polygonize'
self.reverse = prefix + 'Reverse'
self.scale = prefix + 'Scale'
self.snap_to_grid = prefix + 'SnapToGrid'
self.svg = prefix + 'AsSVG'
self.sym_difference = prefix + 'SymDifference'
self.transform = prefix + 'Transform'
self.translate = prefix + 'Translate'
self.union = prefix + 'Union'
self.unionagg = prefix + 'Union'
@cached_property
@ -324,6 +292,8 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations):
not in the SRID of the field. Specifically, this routine will
substitute in the ST_Transform() function call.
"""
tranform_func = self.spatial_function_name('Transform')
# Get the srid for this object
if value is None:
value_srid = None
@ -337,9 +307,9 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations):
if value_srid is None or value_srid == f.srid:
placeholder = '%s'
elif f.geom_type == 'RASTER' and isinstance(value, str):
placeholder = '%s((%%s)::raster, %s)' % (self.transform, f.srid)
placeholder = '%s((%%s)::raster, %s)' % (tranform_func, f.srid)
else:
placeholder = '%s(%%s, %s)' % (self.transform, f.srid)
placeholder = '%s(%%s, %s)' % (tranform_func, f.srid)
if hasattr(value, 'as_sql'):
# If this is an F expression, then we don't really want

View File

@ -38,29 +38,9 @@ class SpatiaLiteOperations(BaseSpatialOperations, DatabaseOperations):
Adapter = SpatiaLiteAdapter
area = 'Area'
centroid = 'Centroid'
collect = 'Collect'
contained = 'MbrWithin'
difference = 'Difference'
distance = 'Distance'
envelope = 'Envelope'
extent = 'Extent'
geojson = 'AsGeoJSON'
gml = 'AsGML'
intersection = 'Intersection'
kml = 'AsKML'
length = 'GLength' # OpenGis defines Length, but this conflicts with an SQLite reserved keyword
makeline = 'MakeLine'
num_geom = 'NumGeometries'
num_points = 'NumPoints'
point_on_surface = 'PointOnSurface'
scale = 'ScaleCoords'
svg = 'AsSVG'
sym_difference = 'SymDifference'
transform = 'Transform'
translate = 'ShiftCoords'
union = 'GUnion' # OpenGis defines Union, but this conflicts with an SQLite reserved keyword
unionagg = 'GUnion'
from_text = 'GeomFromText'
@ -178,11 +158,13 @@ class SpatiaLiteOperations(BaseSpatialOperations, DatabaseOperations):
SRID of the field. Specifically, this routine will substitute in the
Transform() and GeomFromText() function call(s).
"""
tranform_func = self.spatial_function_name('Transform')
def transform_value(value, srid):
return not (value is None or value.srid == srid)
if hasattr(value, 'as_sql'):
if transform_value(value, f.srid):
placeholder = '%s(%%s, %s)' % (self.transform, f.srid)
placeholder = '%s(%%s, %s)' % (tranform_func, f.srid)
else:
placeholder = '%s'
# No geometry value used for F expression, substitute in
@ -192,7 +174,7 @@ class SpatiaLiteOperations(BaseSpatialOperations, DatabaseOperations):
else:
if transform_value(value, f.srid):
# Adding Transform() to the SQL placeholder.
return '%s(%s(%%s,%s), %s)' % (self.transform, self.from_text, value.srid, f.srid)
return '%s(%s(%%s,%s), %s)' % (tranform_func, self.from_text, value.srid, f.srid)
else:
return '%s(%%s,%s)' % (self.from_text, f.srid)

View File

@ -24,7 +24,7 @@ class GISFunctionsTests(TestCase):
def test_asgeojson(self):
# Only PostGIS and SpatiaLite support GeoJSON.
if not connection.ops.geojson:
if not connection.features.has_AsGeoJSON_function:
with self.assertRaises(NotImplementedError):
list(Country.objects.annotate(json=functions.AsGeoJSON('mpoly')))
return