[postgis-devel] [PostGIS] #451: ST_Area(geography, false) returns wrong result for objects crossing dateline

PostGIS trac at osgeo.org
Thu Feb 25 05:57:31 PST 2010


#451: ST_Area(geography,false) returns wrong result for objects crossing dateline
---------------------+------------------------------------------------------
 Reporter:  pramsey  |       Owner:  pramsey      
     Type:  defect   |      Status:  new          
 Priority:  high     |   Milestone:  PostGIS 1.5.1
Component:  postgis  |     Version:  1.5.X        
 Keywords:           |  
---------------------+------------------------------------------------------
 The st_area(geography, false) variant runs the area calculation on the
 sphere rather than the spheroid. It returns a wrong answer when crossing
 the dateline.

 Here is the right answer, away from the dateline.
 {{{
 postgis20=# select st_area(g::geography,false)/1000000,
 st_area(transform(geometry(g), 4326)), astext(geometry(g)) from (select
 'POLYGON((9.5 2, 9.5 1, 8.5 1, 8.5 2, 9.5 2))'::geography) as foo(g);
     ?column?     | st_area |                  astext
 -----------------+---------+------------------------------------------
  12360.265021368 |       1 | POLYGON((9.5 2,9.5 1,8.5 1,8.5 2,9.5 2))
 (1 row)
 }}}
 Here is the answer we get
 {{{
 postgis20=# select st_area(g::geography,false)/1000000,
 st_area(transform(geometry(g), 4326)), astext(geometry(g)) from (select
 'POLYGON((179.5 2, 179.5 1, -179.5 1, -179.5 2, 179.5 2))'::geography) as
 foo(g);
      ?column?     | st_area |                        astext
 ------------------+---------+------------------------------------------------------
  21896.2627343197 |     359 | POLYGON((179.5 2,179.5 1,-179.5 1,-179.5
 2,179.5 2))
 (1 row)
 }}}

-- 
Ticket URL: <http://trac.osgeo.org/postgis/ticket/451>
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-devel mailing list