[postgis-users] How to get the distance between geometry inmeters?

Paragon Corporation lr at pcorp.us
Thu Mar 20 02:37:30 PDT 2008


RH,
 
Yes this is the same as putting 2 geoms with the same meter projection into
ST_Distance.  The transform effectively flattens out a small section of
space so you are measuring in cartesian space which is actually what you
want to do since it simplifies the math.
 
Your example below transform(st_distance(geom,geom),srid)  
should give you an error since you are effectively taking a distance (which
would be in double precision) and then trying to transform that.  You can
only transform geometries not distances.
 
What sort of error are you getting with ST_Distance and ST_DWithin?  Keep in
mind that both your geometries have to be in the same meter projection
otherwise an error would be thrown.
 
Hope that helps,
Leo & Regina
 
 

  _____  

From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of R H
Sent: Wednesday, March 19, 2008 6:03 PM
To: PostGIS Users Discussion
Subject: RE: [postgis-users] How to get the distance between geometry
inmeters?


isn't this the same as putting two geom w/ a meter projection into
st_distance(), st_distance() still returns a cartesian distance not a
distances in meters?  Wouldn't you need to do something like...
transform(st_distance(geom,geom),srid)???  
 
I only ask because I am having a simular problem.  My projections are in a
meter projection, but I can't get st_distance() or st_dwithin() to use
meters?  any thoughts?




  _____  

Subject: RE: [postgis-users] How to get the distance between geometry in
meters?
Date: Wed, 19 Mar 2008 06:56:24 -0400
From: robe.dnd at cityofboston.gov
To: postgis-users at postgis.refractions.net


You'll need to transform to a meter based projection to do that.  If for
example you are in the U.S, SRID 2163 US National Atlas Equal Area works
pretty good for measurement.  It is not as accurate as UTM or State Plane,
but its pretty good and covers all of US I believe and probably works for
some of Canada as well (not sure about non-continental e.g. Hawaii, Alaska).

 

e.g.
 
SELECT road.rd_name, ht.ht_name,
ST_Distance(ST_Transform(roads.the_geom,2163) ,
ST_Transform(hotel.the_geom,2163))  as dist_meters
FROM road, hotel
WHERE <some criteria here>
 
If you are somewhere else and your locations are within that projection, you
can use that.  Look at the utmzone function in the wiki that will help you
determing the right UTM zone SRID for your data
 
http://postgis.refractions.net/support/wiki/index.php?plpgsqlfunctions
 
So you would use something liek
SELECT utmzone(ST_Centroid(the_geom)) as srid
 
to get the right UTM zone SRID
 
 
Hope that helps,
Regina
 
 

  _____  

From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Sinboy
Chang
Sent: Wednesday, March 19, 2008 3:09 AM
To: postgis-users at postgis.refractions.net
Subject: [postgis-users] How to get the distance between geometry in meters?


i want to get the distance between geometry,just like road or hotel poi,but
ST_Distance() return the result in cartesian dintance.
So how can get the distance() by meters?
  _____  



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. 


  _____  



Help make the earth a greener place. If at all possible resist printing this
email and join us in saving paper. 



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20080320/f9d3e01a/attachment.html>


More information about the postgis-users mailing list