[postgis-tickets] [PostGIS] #2847: ST_DISTANCE between geography points incorrect

PostGIS trac at osgeo.org
Fri Jul 18 14:46:41 PDT 2014


#2847: ST_DISTANCE between geography points incorrect
---------------------+------------------------------------------------------
 Reporter:  rotten   |       Owner:  pramsey
     Type:  defect   |      Status:  new    
 Priority:  high     |   Milestone:         
Component:  postgis  |     Version:  2.1.x  
 Keywords:           |  
---------------------+------------------------------------------------------
 It appears that ST_DISTANCE is computing distances incorrectly between
 geographic points, at least in the version I have (below).

 Consider this query which compares the distance between my office and a
 nearby pub, versus my office and a nearby baseball stadium:

 select
  ST_DISTANCE(st_geographyfromtext('POINT(39.982708 -83.008314)'),
                        st_geographyfromtext('POINT(39.983736
 -83.014097)')) as "office to harrisons",
  ST_DISTANCE(st_geographyfromtext('POINT(39.982708 -83.008314)'),
                       st_geographyfromtext('POINT(39.968347 -83.010781)'))
 as "office to clippers"

 office to harrisons                  office to clippers
 645.98070299200003300     337.65466923299999300

 When I measure these with a ruler in Google Earth I get about 500 meters
 for the first one and about 1580 meters for the second one.

 I've tried this with spheroid == false, and while the actual measurements
 are slightly different they are incorrect as well.

 I also tried explicitly setting the SRID.  That didn't really change
 anything.

 I searched the tickets and did not see this particular issue called out,
 although there appear to be  a recently fixed, related ticket with
 ST_DISTANCE and geography polygons, but that was a few releases ago...

 This has thrown off a whole bunch of calculations I've been running.
 Everything looked good until we actually mapped some of the points today
 and realized the distances were wacky.   :-( .

 select PostGIS_full_version();

 POSTGIS="2.1.3 r12547" GEOS="3.4.2-CAPI-1.8.2 r3921" PROJ="Rel. 4.8.0, 6
 March 2012" GDAL="GDAL 1.9.2, released 2012/10/08" LIBXML="2.7.8"
 LIBJSON="UNKNOWN" RASTER

 select version();

 PostgreSQL 9.3.2 on x86_64-unknown-linux-gnu, compiled by gcc
 (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit

-- 
Ticket URL: <http://trac.osgeo.org/postgis/ticket/2847>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list