# [postgis-users] Newbie questions on what geometry to use

mark thomas javaguru at bellsouth.net
Wed Jul 5 07:45:24 PDT 2006

```Chris,

Don't forget that the spatial functions perform calculations in the
units of the input geometries, so for example if you have a point
geometry in decimal degrees and you call Buffer(the_geom, 1) it will
buffer the input geometry by 1 decimal degree.  You'll have to convert
your input (miles) to the correct units (decimal degrees).  To save you
some time, here are the functions in PL/PGSQL:

-- function to convert miles into decimal degrees
create or replace function convertMilesToDecimalDegrees(numeric) returns numeric as \$\$
begin
-- \$1 = radius in miles
-- x = (\$1 * 63360) = convert to meters (i.e. 63360 meters/mile)
-- x = (x * 0.0254) = convert to inches (i.e. 0.0254 inches/meter)
-- x = (x / 1852) = convert to nautical miles (i.e. 1852 meters/nautical mile)
-- x = (x / 60) = convert to decimal degrees of latitude =
--      (i.e. 1 nautical mile = 1 decimal minute; therefore nautical miles/60 = decimal degrees
return ((((\$1 * 63360) * 0.0254) / 1852) / 60);
end;
\$\$ language plpgsql;

--function to buffer a geometry by a radius whose value is specified in miles
create or replace function getBufferedGeometry(geometry,numeric) returns geometry as \$\$
declare g geometry;
begin
select Buffer(\$1,convertMilesToDecimalDegrees(\$2)) into g;
return g;
end;
\$\$ language plpgsql;

Hope this helps.

Regards,

Mark Thomas

On Tue, 2006-07-04 at 12:00 -0700,
postgis-users-request at postgis.refractions.net wrote:

> [postgis-users] Newbie questions on what geometry to use

Mark Thomas
Senior Software Engineer
Awarix Corporation
mthomas at awarix.com
http://www.awarix.com

"Commit to the Lord whatever you do,
and your plans will succeed." - Proverbs 16:3

-------------- next part --------------
An HTML attachment was scrubbed...