#23022 closed Bug (worksforme)

Geodjango transform introduces large errors

Reported by: gabriel.rosser@… 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 Changed 12 months ago by manologab

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

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:

Point Created, srid:27700, coords: (527860.0, 184660.0)
Point Changed, srid:27700, coords: (527860.0008806133, 184659.99951259216)

Maybe the problem is in the software versions? I have:

Django 1.6.5
PostGIS 2.1.2

comment:2 Changed 12 months ago by timo

  • Easy pickings unset
  • Resolution set to worksforme
  • Status changed from new to 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!

Note: See TracTickets for help on using tickets.
Back to Top