Opened 11 years ago
Closed 11 years ago
#23022 closed Bug (worksforme)
Geodjango transform introduces large errors
| Reported by: | Owned by: | nobody | |
|---|---|---|---|
| Component: | GIS | Version: | 1.6 |
| Severity: | Normal | Keywords: | gis |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Django 1.6.2
Summary:
Geodjango's .transform() method works as expected on GEOS geometry objects. Small numerical rounding errors appear, as expected. However, attempting to save a GEOS point with a given SRID to a table with a different SRID leads to some kind of implicit transform call that introduces much more significant and problematic numerical errors.
Minimal working example and further details posted here: http://gis.stackexchange.com/questions/106757/geodjango-transform-introduces-large-errors
Change History (2)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
| Easy pickings: | unset |
|---|---|
| Resolution: | → worksforme |
| Status: | new → closed |
Gabriel, could check if there is a similar test in Django's test suite or try to add one? We can at least check against the software installed on our continuous integration server to see if it passes. I am going to close the ticket for now since someone else was unable to reproduce the issue. Please reopen when/if you can provide more details, thanks!
I was unable to reproduce the problem using your example in stackexchange.
m = MyGeoClass(point=geos.Point([527860, 184660], srid=27700)) m.save() m = MyGeoClass.objects.get(pk=m.id) self.stdout.write("Point Created, srid:{}, coords: {!r}".format(m.point.srid, m.point.coords)) m.point.transform(4326) m.save() m = MyGeoClass.objects.get(pk = m.id) self.stdout.write("Point Changed, srid:{}, coords: {!r}".format(m.point.srid, m.point.coords))Result:
Maybe the problem is in the software versions? I have:
Django 1.6.5
PostGIS 2.1.2