[postgis-users] creating a grid; transform error

Mike Toews mwtoews at gmail.com
Thu Mar 15 20:08:10 PDT 2012


On 16 March 2012 15:47, Puneet Kishor <punk.kish at gmail.com> wrote:
> I am trying to create a simple 1 deg x 1 deg grid and transform it to spherical mercator
>
>        SELECT ST_Transform(ST_MakeEnvelope(minx, miny, maxx, maxy, 4326), 900913) the_geom
>        FROM (
>                SELECT lng minx, lat miny, (lng + 1) maxx, (lat + 1) maxy
>                FROM (
>                        SELECT Generate_series(-180, 180, 1) lng, Generate_series(-90, 90, 1) lat
>                ) series
>                WHERE (lng + 1) < 181 AND (lat + 1) < 91
>        ) lat_lng
>
>
> I get
>
>        ERROR: transform: couldn't project point (-180 -90 0): tolerance condition error (-20)
>
>
>
> What am I doing wrong?

Transform has difficulties at the poles, since the limits of math are stretched.

If you aren't gridding polar bears and/or penguins, then you should
use only latitudes from 79S to 79N. Try this:

SELECT ST_Transform(ST_MakeEnvelope(minx, miny, maxx, maxy, 4326),
900913) the_geom
FROM (
    SELECT lng minx, lat miny, (lng + 1) maxx, (lat + 1) maxy
    FROM (
        SELECT Generate_series(-180, 179, 1) lng, Generate_series(-89,
88, 1) lat
    ) series
    ORDER BY lng, lat
) lat_lng;



More information about the postgis-users mailing list