Needed to buffer a polygon (rectangle) that was listed in lat/lng (4326) projection to world mercator (3857) by a defined limit 10KM.  Problem is that 4326 is expecting decimal degrees 3857 is expecting meters.  However PostGIS understands both and has functions to convert between the two.

In this case I have the following coordinates that define the bounding box

``````(-179,1)
(-179,65)
(-103,65)
(-103,1)``````

Remember that PostGIS expects that the coordinates are listed as (longitude, latitude) when using WKT as the input format.

``select st_astext(ST_Transform(st_expand(ST_Transform(ST_MakePolygon(ST_GeomFromText('LINESTRING(-179 1,-179 65 ,-103 65 ,-103 1 , -179 1)', 4326)), 3857), 10000), 4326));``

Here I add the first point again at the end to make sure the polygon is closed.

• Create the geometry from the points (as a linestring) with SRID of 4326
• Turn the geometry into a  Polygon
• Transform the polygon from 4326 to 3857
• Expand the polygon by 10000 meters (using the unit of reference of the projection)
• Transform the polygon back to 4326
• Print out the polygon as WKT

### The results will look like this

``POLYGON((-179.089831528412 0.910180961305166,-179.089831528412 65.0379374814058,-102.910168471588 65.0379374814058,-102.910168471588 0.910180961305166,-179.089831528412 0.910180961305166))``