#25498: PostGIS Distance lookups use ST_Distance_Sphere() and not ST_Distance()
-------------------------------+--------------------
Reporter: iambibhas | Owner: nobody
Type: Bug | Status: new
Component: Documentation | Version: master
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------
Currently
[https://docs.djangoproject.com/en/1.8/ref/contrib/gis/geoquerysets
/#distance-gt the doc says] that PostGIS uses `ST_Distance()` for distance
lookups like `distance_gte` etc. But actually `ST_Distance_Sphere()` is
used. We need to fix that on the doc.
The doc also says in the beginning -
{{{
... an optional third element, 'spheroid', may be included to tell
GeoDjango to use the more accurate spheroid distance calculation functions
on fields with a geodetic coordinate system (e.g., ST_Distance_Spheroid
would be used instead of ST_Distance_Sphere).
}}}
But then `ST_Distance_Sphere` is not mentioned anywhere else.
Here is what currently is happening -
{{{
current_localities = Locality.objects.filter(centroid__distance_lte=(pnt,
1000))
}}}
results in -
{{{
(0.005) SELECT "map_locality"."id", "map_locality"."name",
"map_locality"."slug", "map_locality"."centroid", "map_locality"."radius"
FROM "map_locality" WHERE ST_Distance_Sphere("map_locality"."centroid",
ST_GeomFromEWKB('\x0101000020e6100000865ad3bce3685340e9b7af03e7ec2940'::bytea))
<= 1000 LIMIT 21;
args=(<django.contrib.gis.db.backends.postgis.adapter.PostGISAdapter
object at 0x7fdcc9d320d0>, 1000)
}}}
Attaching a patch with the issue. I can send a PR.
--
Ticket URL: <https://code.djangoproject.com/ticket/25498>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/052.85139e7ee0ff87afcf5c3d2f02c0d05c%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.