<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
My explanation wasn't that great.  Below is what I did.<BR>
 <BR>
26912 projection is in meters (right?)<BR>select AddGeometryColumn('table','geocode', 26912, 'POINT', 2);<BR>
update table<BR>set geocode = PointFromText('POINT(' || longitude || ' ' || latitude || ')', 26912);<BR>
distance(geocode, geocode) returns degrees<BR>
 <BR>
ALTER TABLE property DROP COLUMN geocode<BR>
 <BR>
4269 projection in degrees<BR>select AddGeometryColumn('table','geocode', 4269, 'POINT', 2);<BR>
update table<BR>set geocode = PointFromText('POINT(' || longitude || ' ' || latitude || ')', 4269);<BR>
distance(transform(geocode, 26912), transform(geocode,26912)) returns meters<BR>
<BR> <BR>
I would prefer not to do the transform() if don't have to speed and accuracy reasons.  Thanks for help. : }<BR>
 <BR>
<BR>> Date: Thu, 20 Mar 2008 11:07:34 -0700<BR>> From: kneufeld@refractions.net<BR>> To: postgis-users@postgis.refractions.net<BR>> Subject: Re: [postgis-users] How to get the distance between geometry inmeters?<BR>> <BR>> Hi R H,<BR>> <BR>> Are you certain that your input geometries are in a meter projection? <BR>> David is correct. Distance() always returns the cartesian distance in <BR>> the *same* units as the input. It's impossible to input something in <BR>> meters in this function and get something in degrees.<BR>> <BR>> Looking at your SQL you posted earlier, I have the suspicion that your <BR>> input geometries are in lat/long (4269) and you simply updated the srid <BR>> of the geometries to be 26912, thinking that this would change the <BR>> projection of your geometries. Am I off here? To verify, can you post <BR>> the ewkt representation of a small geometry here?<BR>> <BR>> Cheers,<BR>> Kevin<BR>> <BR>> R H wrote:<BR>> > sorry in the example I said "returns cartesian distance", I meant <BR>> > degrees. So my input was in a meter projection and was returning degrees.<BR>> ><BR>> > ------------------------------------------------------------------------<BR>> > Date: Thu, 20 Mar 2008 12:08:11 -0500<BR>> > From: david.bitner@gmail.com<BR>> > To: postgis-users@postgis.refractions.net<BR>> > Subject: Re: [postgis-users] How to get the distance between<BR>> > geometry inmeters?<BR>> ><BR>> > Distance() always returns "cartesian distance" in whatever units<BR>> > it is fed. If it is fed data that is in meters -- the output will<BR>> > be in meters. If it is fed degrees -- the output will be in<BR>> > degrees and totally useless. I don't quite understand the problem<BR>> > that you are having<BR>> ><BR>> > On Thu, Mar 20, 2008 at 11:15 AM, R H <enoop@hotmail.com<BR>> > <mailto:enoop@hotmail.com>> wrote:<BR>> ><BR>> > Thanks for the reply. I think I got it figured out. The<BR>> > projections I was putting into distance() where in meters. I<BR>> > used a projection that is in degrees and then transformed to<BR>> > meters. It appears to be working now.<BR>> > <BR>> > I'm not sure I understand why?<BR>> > This is what I had previously<BR>> > geom = sird(26912) meter projection<BR>> > <BR>> > select distance(geom,geom) returns cartesian distance<BR>> > select distance(transform(geom, 26912), transform(geom,<BR>> > 26912)) returns cartesian distance<BR>> > <BR>> > then I changed geom = sird(4269) degree projection<BR>> > select distance(transform(geom, 26912), transform(geom,<BR>> > 26912)) returns meter<BR>> > <BR>> > How are any of these statements different? Based on order of<BR>> > operations isn't the inner most parentheses executed first? <BR>> > Therefore being exactly the same as the first select? I guess<BR>> > it's working so I will stop worrying about it.<BR>> ><BR>> > ------------------------------------------------------------------------<BR>> > From: lr@pcorp.us <mailto:lr@pcorp.us><BR>> ><BR>> > To: postgis-users@postgis.refractions.net<BR>> > <mailto:postgis-users@postgis.refractions.net><BR>> > Subject: RE: [postgis-users] How to get the distance<BR>> > between geometry inmeters?<BR>> > Date: Thu, 20 Mar 2008 05:37:30 -0400<BR>> ><BR>> ><BR>> > RH,<BR>> > <BR>> > Yes this is the same as putting 2 geoms with the *same<BR>> > *meter projection into ST_Distance. The transform<BR>> > effectively flattens out a small section of space so you<BR>> > are measuring in cartesian space which is actually what<BR>> > you want to do since it simplifies the math.<BR>> > <BR>> > Your example below transform(st_distance(geom,geom),srid) <BR>> > should give you an error since you are effectively taking<BR>> > a distance (which would be in double precision) and then<BR>> > trying to transform that. You can only transform<BR>> > geometries not distances.<BR>> > <BR>> > What sort of error are you getting with ST_Distance and<BR>> > ST_DWithin? Keep in mind that both your geometries have<BR>> > to be in the same meter projection otherwise an error<BR>> > would be thrown.<BR>> > <BR>> > Hope that helps,<BR>> > Leo & Regina<BR>> > <BR>> > <BR>> ><BR>> > ------------------------------------------------------------------------<BR>> > *From:* postgis-users-bounces@postgis.refractions.net<BR>> > <mailto:postgis-users-bounces@postgis.refractions.net><BR>> > [mailto:postgis-users-bounces@postgis.refractions.net<BR>> > <mailto:postgis-users-bounces@postgis.refractions.net>]<BR>> > *On Behalf Of *R H<BR>> > *Sent:* Wednesday, March 19, 2008 6:03 PM<BR>> > *To:* PostGIS Users Discussion<BR>> > *Subject:* RE: [postgis-users] How to get the distance<BR>> > between geometry inmeters?<BR>> ><BR>> > isn't this the same as putting two geom w/ a meter<BR>> > projection into st_distance(), st_distance() still returns<BR>> > a cartesian distance not a distances in meters? Wouldn't<BR>> > you need to do something like...<BR>> > transform(st_distance(geom,geom),srid)??? <BR>> > <BR>> > I only ask because I am having a simular problem. My<BR>> > projections are in a meter projection, but I can't get<BR>> > st_distance() or st_dwithin() to use meters? any thoughts?<BR>> ><BR>> ><BR>> > ------------------------------------------------------------------------<BR>> > Subject: RE: [postgis-users] How to get the distance<BR>> > between geometry in meters?<BR>> > Date: Wed, 19 Mar 2008 06:56:24 -0400<BR>> > From: robe.dnd@cityofboston.gov<BR>> > <mailto:robe.dnd@cityofboston.gov><BR>> > To: postgis-users@postgis.refractions.net<BR>> > <mailto:postgis-users@postgis.refractions.net><BR>> ><BR>> > You'll need to transform to a meter based projection<BR>> > to do that. If for example you are in the U.S, SRID<BR>> > 2163 US National Atlas Equal Area works pretty good<BR>> > for measurement. It is not as accurate as UTM or<BR>> > State Plane, but its pretty good and covers all of US<BR>> > I believe and probably works for some of Canada as<BR>> > well (not sure about non-continental e.g. Hawaii,<BR>> > Alaska). <BR>> > <BR>> > e.g.<BR>> > <BR>> > SELECT road.rd_name, ht.ht_name,<BR>> > ST_Distance(ST_Transform(roads.the_geom,2163) ,<BR>> > ST_Transform(hotel.the_geom,2163)) as dist_meters<BR>> > FROM road, hotel<BR>> > WHERE <some criteria here><BR>> > <BR>> > If you are somewhere else and your locations are<BR>> > within that projection, you can use that. Look at the<BR>> > utmzone function in the wiki that will help you<BR>> > determing the right UTM zone SRID for your data<BR>> > <BR>> > http://postgis.refractions.net/support/wiki/index.php?plpgsqlfunctions<BR>> > <BR>> > So you would use something liek<BR>> > SELECT utmzone(ST_Centroid(the_geom)) as srid<BR>> > <BR>> > to get the right UTM zone SRID<BR>> > <BR>> > <BR>> > Hope that helps,<BR>> > Regina<BR>> > <BR>> > <BR>> ><BR>> > ------------------------------------------------------------------------<BR>> > *From:* postgis-users-bounces@postgis.refractions.net<BR>> > <mailto:postgis-users-bounces@postgis.refractions.net><BR>> > [mailto:postgis-users-bounces@postgis.refractions.net<BR>> > <mailto:postgis-users-bounces@postgis.refractions.net>]<BR>> > *On Behalf Of *Sinboy Chang<BR>> > *Sent:* Wednesday, March 19, 2008 3:09 AM<BR>> > *To:* postgis-users@postgis.refractions.net<BR>> > <mailto:postgis-users@postgis.refractions.net><BR>> > *Subject:* [postgis-users] How to get the distance<BR>> > between geometry in meters?<BR>> ><BR>> > i want to get the distance between geometry,just like<BR>> > road or hotel poi,but ST_Distance() return the result<BR>> > in /cartesian dintance./<BR>> > So how can get the distance() by meters?<BR>> > ------------------------------------------------------------------------<BR>> ><BR>> > *The substance of this message, including any<BR>> > attachments, may be confidential, legally privileged<BR>> > and/or exempt from disclosure pursuant to<BR>> > Massachusetts law. It is intended solely for the<BR>> > addressee. If you received this in error, please<BR>> > contact the sender and delete the material from any<BR>> > computer. *<BR>> > ------------------------------------------------------------------------<BR>> ><BR>> > *Help make the earth a greener place. If at all<BR>> > possible resist printing this email and join us in<BR>> > saving paper.<BR>> > *<BR>> ><BR>> ><BR>> ><BR>> > _______________________________________________<BR>> > postgis-users mailing list<BR>> > postgis-users@postgis.refractions.net<BR>> > <mailto:postgis-users@postgis.refractions.net><BR>> > http://postgis.refractions.net/mailman/listinfo/postgis-users<BR>> ><BR>> ><BR>> ><BR>> ><BR>> > -- <BR>> > ************************************<BR>> > David William Bitner <BR>> ><BR>> > ------------------------------------------------------------------------<BR>> ><BR>> > _______________________________________________<BR>> > postgis-users mailing list<BR>> > postgis-users@postgis.refractions.net<BR>> > http://postgis.refractions.net/mailman/listinfo/postgis-users<BR>> > <BR>> _______________________________________________<BR>> postgis-users mailing list<BR>> postgis-users@postgis.refractions.net<BR>> http://postgis.refractions.net/mailman/listinfo/postgis-users<BR><BR></body>
</html>