Ticket #450 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

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) (diff)

 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

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

Change History

Changed 3 years ago by pramsey

  • description modified (diff)

Changed 3 years ago by pramsey

Fix for spheroid area

Changed 3 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.

Changed 3 years ago by pramsey

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

Changed 3 years ago by pramsey

  • status changed from new to closed
  • resolution set to fixed

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

Note: See TracTickets for help on using tickets.