summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2017-03-16 18:38:02 +0500
committerTim Graham <timograham@gmail.com>2017-03-16 09:38:02 -0400
commit1bf5e79394c43af29d2c67c54b32dca0f0e42ca2 (patch)
tree68091f4000cf581ed25d23867a6ccb839e126e6a
parent6bc4ff36db0d85ac96ca91ae758159ee43836f86 (diff)
Removed GeoQuerySet leftovers.
Follow up to a0d166306fbdc41f49e6fadf4ec84b17eb147daa.
-rw-r--r--django/contrib/gis/db/backends/base/operations.py31
-rw-r--r--django/contrib/gis/db/backends/oracle/operations.py20
-rw-r--r--django/contrib/gis/db/backends/postgis/operations.py38
-rw-r--r--django/contrib/gis/db/backends/spatialite/operations.py26
-rw-r--r--tests/gis_tests/geoapp/test_functions.py2
5 files changed, 13 insertions, 104 deletions
diff --git a/django/contrib/gis/db/backends/base/operations.py b/django/contrib/gis/db/backends/base/operations.py
index e24e45188c..ceb899a1e0 100644
--- a/django/contrib/gis/db/backends/base/operations.py
+++ b/django/contrib/gis/db/backends/base/operations.py
@@ -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
diff --git a/django/contrib/gis/db/backends/oracle/operations.py b/django/contrib/gis/db/backends/oracle/operations.py
index 6c82996692..4778da135a 100644
--- a/django/contrib/gis/db/backends/oracle/operations.py
+++ b/django/contrib/gis/db/backends/oracle/operations.py
@@ -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
diff --git a/django/contrib/gis/db/backends/postgis/operations.py b/django/contrib/gis/db/backends/postgis/operations.py
index 574aa5ff4a..7bb66b8a0c 100644
--- a/django/contrib/gis/db/backends/postgis/operations.py
+++ b/django/contrib/gis/db/backends/postgis/operations.py
@@ -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
diff --git a/django/contrib/gis/db/backends/spatialite/operations.py b/django/contrib/gis/db/backends/spatialite/operations.py
index 33c69dc1a7..b859765c20 100644
--- a/django/contrib/gis/db/backends/spatialite/operations.py
+++ b/django/contrib/gis/db/backends/spatialite/operations.py
@@ -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)
diff --git a/tests/gis_tests/geoapp/test_functions.py b/tests/gis_tests/geoapp/test_functions.py
index 6b2a725ff7..ac429dfda9 100644
--- a/tests/gis_tests/geoapp/test_functions.py
+++ b/tests/gis_tests/geoapp/test_functions.py
@@ -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