Hallo Andrea The two functions is very different but behave the same way in a few specific situations.
St_Intersection I guess you know how works. ST_Closestpoint is actually a distance function. It is the forst point of ST_Shortestline. The pupose of those functions is to use on geometries not intersecting at all. Look at the illustrations in the documentation: http://www.postgis.org/documentation/manual-1.5/ST_ShortestLine.html ST_Shortestline gives you the line along which ST_Distance has found the min distance between two geometries. If you use the shortestline between a lake and a road it will give you the shortest possible line between the lake and the road. And as said, ST_Closestpoint is the first point in the shortest line, so: ST_Startpoint(ST_Shortestline(geometry, geometry)) = ST_Closestpoint(geometry, geometry) St_closestpoint is there because we expected it to be the most common usecase of ST_Shortestline to just find where on my geometry is the closest point to that geometry over there. That it gives you the same answer when using it with a point intersecting with a polygon is just a way to handle that situation. The alternative is to return null. SQL Server is comming up with a corresponding function to ST_Shortestline in their next release, but they call it ShortestLineTo. They have choosen to return null in case of intersection, while postgis returns a zero-length line with the same start and end in any of the intersecting points (if many) HTH Nicklas On Tue, 2011-01-11 at 21:19 +0100, aperi2007 wrote: > Il 11/01/2011 21:12, Paolo Cavallini ha scritto: > > Il giorno mar, 11/01/2011 alle 20.52 +0100, aperi2007 ha scritto: > >> Hi, > >> > >> I need to find the intersection point between two lines, > >> the first choice is ST_Intersection, but I notice even the > >> ST_ClosestPoint function. > >> \df+ st_intersection > >> in the case of two lines, the two results converge, but if you have two > >> polygons, you can see the difference. > >> All the best. > > Hi Paolo, > > Of course this is a difference. > ST_Intersection is surely more flexible, usable with every kind of geometry. > > But my question is: "why ST_ClosestPoint exist ?" > > The only explain I can suppose is that for linear archives it give some > advantage (more speed ?) > > This is the question :) > > Andrea. > > _______________________________________________ > postgis-users mailing list > [email protected] > http://postgis.refractions.net/mailman/listinfo/postgis-users > _______________________________________________ postgis-users mailing list [email protected] http://postgis.refractions.net/mailman/listinfo/postgis-users
