[postgis-users] Possible function to convert +-180 features to0-360 longitudes

Obe, Regina robe.dnd at cityofboston.gov
Fri Jun 20 05:24:33 PDT 2008


Paul,

I don't see this function defined in the docs.  Am I missing where it
is.

Also I was thinking - would be nice if when we built all these functions
we put comments as to what they do in the comments metadata section of
postgres.  It would have 2 positive effects

1) When I'm scanning thru the functions in my database as I normally do
- I would know what it does and probably how to use it without having to
refer to the manual

2)
I imagine it would also make auto-generation of documentation a bit
easier too.  Example

CREATE OR REPLACE FUNCTION st_shift_longitude(geometry)
  RETURNS geometry AS
'$libdir/liblwgeom', 'LWGEOM_longitude_shift'
  LANGUAGE 'c' IMMUTABLE STRICT;
COMMENT ON FUNCTION st_shift_longitude(geometry) IS 'Reads every
point/vertex in every component of every feature in a geometry, and if
the longitude coordinate is <0, adds 360 to it. The result would be a
0-360 version of the data to be plotted in a 180 centric map';


Just my two cents,
Regina


-----Original Message-----
From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Paul
Ramsey
Sent: Friday, June 20, 2008 2:47 AM
To: pcreso at pcreso.com; PostGIS Users Discussion
Subject: Re: [postgis-users] Possible function to convert +-180 features
to0-360 longitudes

ST_Shift_Longitude?

On Fri, Jun 20, 2008 at 5:52 AM,  <pcreso at pcreso.com> wrote:
> Hi,
>
> I believe such a function is feasible, but my programming skills are
pretty minimal, so any advice appreciated.
>
> I have data in a custom mercator projection, crossing 180 degrees. I
can use ST_transform to generate a lat/long (EPSG:4326) version, but
only in a +-180 longtitudinal space, which results in features at each
side of a map with lines joining them running across the map.
>
> It seems feasible to have a function (to360 ?) which reads every
point/vertex in every component of every feature in a geometry column, &
if the longitude coordinate is <0, adds 360 to it. The result would be a
0-360 version of the data to be plotted in a 180 centric map.
>
> Given the original data was not split at 180, this should simply
rebuild the correct topology of the features. I'm not looking to split
or join features which cross the 180 or 0 longitude lines.
>
> So, am I wrong in any of my assumptions, & if not, can anyone point me
to some relevant examples to learn from or suggest how I should go about
writing such a function?
>
>
> Thanks,
>
>   Brent Wood
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
_______________________________________________
postgis-users mailing list
postgis-users at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users
-----------------------------------------
The substance of this message, including any attachments, may be
confidential, legally privileged and/or exempt from disclosure
pursuant to Massachusetts law. It is intended
solely for the addressee. If you received this in error, please
contact the sender and delete the material from any computer.




More information about the postgis-users mailing list