Opened 6 years ago

Closed 6 years ago

#450 closed defect (fixed)

ST_Area(geography) returns wrong result for objects crossing dateline

Reported by: pramsey Owned by: pramsey
Priority: high Milestone: PostGIS 1.5.1
Component: postgis Version: 1.5.X
Keywords: Cc: noss@…

Description (last modified by pramsey)

http://postgis.refractions.net/pipermail/postgis-users/2010-February/025984.html

A box that doesn't cross the dateline returns a good result:

g4wd=# select st_area(g)/1000000, st_area(transform(geometry(g), 4326)),
astext(geometry(g)) from (select 'POLYGON((178.5 2, 178.5 1, 179.5 1, 179.5
2, 178.5 2))'::geography) as foo(g); 
    ?column?     | st_area |                       astext                       
-----------------+---------+---------------------------------------------------- 
 12304.814950073 |       1 | POLYGON((178.5 2,178.5 1,179.5 1,179.5 2,178.5
2)) 
(1 row)

But the same box s hifted over the dateline returns a bad result.

g4wd=# select st_area(g)/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                         
------------------+---------+------------------------------------------------------ 
 55910.8880691158 |     359 | POLYGON((179.5 2,179.5 1,-179.5 1,-179.5
2,179.5 2)) 
(1 row)

Attachments (1)

450-1.patch (3.5 KB) - added by pramsey 6 years ago.
Fix for spheroid area

Download all attachments as: .zip

Change History (5)

comment:1 Changed 6 years ago by pramsey

  • Description modified (diff)

Changed 6 years ago by pramsey

Fix for spheroid area

comment:2 Changed 6 years ago by pramsey

  • Cc noss@… added

The attached patch fixes the spheroid case. I have found the sphere case ( st_area(geography, false) )also has slightly different results on shifted polygons, even with this fix.

comment:3 Changed 6 years ago by pramsey

Spheroid problem patched in trunk at r5339 and in 1.5 branch at r5340

comment:4 Changed 6 years ago by pramsey

  • Resolution set to fixed
  • Status changed from new to closed

Working the sphere area problem in a new ticket (#451) and closing this one out.

Note: See TracTickets for help on using tickets.