Hi Christian,

Still use ST_Shift_Longitude()... it works best with points - polygons & 
linestrings can have topological issues that it doesn't address.

SELECT st_extent(
test(# ST_GeomFromText('MULTIPOINT(162.06 56.144, -140.808 66.07, -153.301 
57.36)',4326));
             st_extent             
-----------------------------------
 BOX(-153.301 56.144,162.06 66.07)
(1 row)

test=# SELECT st_extent(ST_Shift_Longitude(
ST_GeomFromText('MULTIPOINT(162.06 56.144, -140.808 66.07, -153.301 
57.36)',4326)));
            st_extent             
----------------------------------
 BOX(162.06 56.144,219.192 66.07)
(1 row)



It depends if you want a 0-360 or +-180 extent... 


A better solution would perhaps be if ST_Extent() worked with the geography 
datatype - but the point sequence would need to implicitly determine the 
polygon extent across 180.

To be robust, you could maybe calculate the 0-360 and +-180 extents, & take the 
one with the smaller area?


HTH,


Brent Wood



________________________________
 From: Christian Gendreau <[email protected]>
To: [email protected] 
Sent: Friday, May 23, 2014 3:05 AM
Subject: [postgis-users] st_extent crossing international date line
 


Hi there,

I was wondering how can we perform an extent over the international date line?

ST_Shift_Longitude seems perfect to compare 2 polygons over the IDL but what if 
I have 3 points (let say 2 in Alaska and 1 in Russia) and I want the get the 
extent?

e.g. SELECT st_extent(ST_GeomFromText('MULTIPOINT(162.06 56.144, -140.808 
66.07, -153.301 57.36)',4326));

Returns: BOX(-153.301 56.144,162.06 66.07), the longitude -140 was no included 
due to IDL.

Regards,

Christian Gendreau
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

Reply via email to