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