Loading django/contrib/gis/geos/geometry.py +6 −2 Original line number Diff line number Diff line Loading @@ -494,14 +494,18 @@ class GEOSGeometry(GEOSBase, ListMixin): else: return if (srid is None) or (srid < 0): if isinstance(ct, gdal.CoordTransform): # We don't care about SRID because CoordTransform presupposes # source SRS. srid = None elif srid is None or srid < 0: raise GEOSException("Calling transform() with no SRID set is not supported") if not gdal.HAS_GDAL: raise GEOSException("GDAL library is not available to transform() geometry.") # Creating an OGR Geometry, which is then transformed. g = self.ogr g = gdal.OGRGeometry(self.wkb, srid) g.transform(ct) # Getting a new GEOS pointer ptr = wkb_r().read(g.wkb) Loading docs/ref/contrib/gis/geos.txt +8 −0 Original line number Diff line number Diff line Loading @@ -553,6 +553,14 @@ is returned instead. Requires GDAL. Raises :class:`~django.contrib.gis.geos.GEOSException` if GDAL is not available or if the geometry's SRID is ``None`` or less than 0. It doesn't impose any constraints on the geometry's SRID if called with a :class:`~django.contrib.gis.gdal.CoordTransform` object. .. versionchanged:: 1.10 In previous versions, it required the geometry's SRID to be a positive integer even if it was called with a :class:`~django.contrib.gis.gdal.CoordTransform` object. ``Point`` --------- Loading tests/gis_tests/geos_tests/test_geos.py +18 −17 Original line number Diff line number Diff line Loading @@ -656,9 +656,10 @@ class GEOSTest(unittest.TestCase, TestDataMixin): @skipUnless(HAS_GDAL, "GDAL is required.") def test_custom_srid(self): """ Test with a srid unknown from GDAL """ pnt = Point(111200, 220900, srid=999999) self.assertTrue(pnt.ewkt.startswith("SRID=999999;POINT (111200.0")) """Test with a null srid and a srid unknown to GDAL.""" for srid in [None, 999999]: pnt = Point(111200, 220900, srid=srid) self.assertTrue(pnt.ewkt.startswith(("SRID=%s;" % srid if srid else '') + "POINT (111200.0")) self.assertIsInstance(pnt.ogr, gdal.OGRGeometry) self.assertIsNone(pnt.srs) Loading Loading
django/contrib/gis/geos/geometry.py +6 −2 Original line number Diff line number Diff line Loading @@ -494,14 +494,18 @@ class GEOSGeometry(GEOSBase, ListMixin): else: return if (srid is None) or (srid < 0): if isinstance(ct, gdal.CoordTransform): # We don't care about SRID because CoordTransform presupposes # source SRS. srid = None elif srid is None or srid < 0: raise GEOSException("Calling transform() with no SRID set is not supported") if not gdal.HAS_GDAL: raise GEOSException("GDAL library is not available to transform() geometry.") # Creating an OGR Geometry, which is then transformed. g = self.ogr g = gdal.OGRGeometry(self.wkb, srid) g.transform(ct) # Getting a new GEOS pointer ptr = wkb_r().read(g.wkb) Loading
docs/ref/contrib/gis/geos.txt +8 −0 Original line number Diff line number Diff line Loading @@ -553,6 +553,14 @@ is returned instead. Requires GDAL. Raises :class:`~django.contrib.gis.geos.GEOSException` if GDAL is not available or if the geometry's SRID is ``None`` or less than 0. It doesn't impose any constraints on the geometry's SRID if called with a :class:`~django.contrib.gis.gdal.CoordTransform` object. .. versionchanged:: 1.10 In previous versions, it required the geometry's SRID to be a positive integer even if it was called with a :class:`~django.contrib.gis.gdal.CoordTransform` object. ``Point`` --------- Loading
tests/gis_tests/geos_tests/test_geos.py +18 −17 Original line number Diff line number Diff line Loading @@ -656,9 +656,10 @@ class GEOSTest(unittest.TestCase, TestDataMixin): @skipUnless(HAS_GDAL, "GDAL is required.") def test_custom_srid(self): """ Test with a srid unknown from GDAL """ pnt = Point(111200, 220900, srid=999999) self.assertTrue(pnt.ewkt.startswith("SRID=999999;POINT (111200.0")) """Test with a null srid and a srid unknown to GDAL.""" for srid in [None, 999999]: pnt = Point(111200, 220900, srid=srid) self.assertTrue(pnt.ewkt.startswith(("SRID=%s;" % srid if srid else '') + "POINT (111200.0")) self.assertIsInstance(pnt.ogr, gdal.OGRGeometry) self.assertIsNone(pnt.srs) Loading