Fixed #25585 -- Allowed setting OGRGeometry srid/srs attributes to `None`.

This commit is contained in:
Sergey Fedoseev 2015-10-21 18:14:12 +05:00 committed by Tim Graham
parent 80855a4b37
commit 0dbe897ab5
2 changed files with 8 additions and 1 deletions

View File

@ -270,6 +270,8 @@ class OGRGeometry(GDALBase):
elif isinstance(srs, six.integer_types + six.string_types):
sr = SpatialReference(srs)
srs_ptr = sr.ptr
elif srs is None:
srs_ptr = None
else:
raise TypeError('Cannot assign spatial reference with object of type: %s' % type(srs))
capi.assign_srs(self.ptr, srs_ptr)
@ -284,7 +286,7 @@ class OGRGeometry(GDALBase):
return None
def _set_srid(self, srid):
if isinstance(srid, six.integer_types):
if isinstance(srid, six.integer_types) or srid is None:
self.srs = srid
else:
raise TypeError('SRID must be set with an integer.')

View File

@ -320,6 +320,11 @@ class OGRGeomTest(unittest.TestCase, TestDataMixin):
self.assertEqual('WGS 72', ring.srs.name)
self.assertEqual(4322, ring.srid)
# srs/srid may be assigned their own values, even when srs is None.
mpoly = OGRGeometry(mp.wkt, srs=None)
mpoly.srs = mpoly.srs
mpoly.srid = mpoly.srid
def test_srs_transform(self):
"Testing transform()."
orig = OGRGeometry('POINT (-104.609 38.255)', 4326)