Mmm, so it is a floating point issue - the distance is 9.57711783686133e-12 meters. Is there anyway to specify a tolerance for ST_Intersects and similar predicates?
-Francis On 3 May 2010 17:53, strk <s...@keybit.net> wrote: > On Mon, May 03, 2010 at 04:41:09PM +1000, Francis Markham wrote: > > Hi all, > > > > I think I've got a bit of a problem with snapping points to lines. I had > > thought that using line_interpolate_point(..., line_locate_point(...)) > would > > do the trick, but this seems not to be the case: > > Francis, > thing is that the constructive functions have to deal with representability > of numbers which means you won't always get the exact point of intersection > but rather the best approximation of it. > Instead the predicates (like ST_Intersects) give you the exact answer. > You may try the distance functions to see how much the intersection point > is off the line, should be a really low number. > > --strk; > > > gis=# SELECT ST_AsText(v.the_geom), ST_SRID(v.the_geom), > > ST_AsText(r.the_geom), ST_SRID(r.the_geom) FROM road_segments AS r, > venues > > AS v WHERE v.venue_id = 29 AND r.gid = 100982; > > > > st_astext | st_srid > > | > > st_astext | st_srid > > > ------------------------------------------+---------+---------------------------------------------------------------------------------+--------- > > POINT(415185.606066865 7827721.52951473) | 28353 | > > LINESTRING(415250.679102704 7827994.85292521,415218.694181662 > > 7827642.44920486) | 28353 > > (1 row) > > > > gis=# SELECT ST_Intersects(ST_line_interpolate_point(r.the_geom, > > ST_line_locate_point(r.the_geom, v.the_geom)), r.the_geom) FROM > > road_segments AS r, venues AS v WHERE v.venue_id = 29 AND r.gid = 100982; > > > > st_intersects > > --------------- > > f > > (1 row) > > > > gis=# SELECT postgis_full_version(); > > > > > > postgis_full_version > > > ---------------------------------------------------------------------------------------- > > POSTGIS="1.4.1" GEOS="3.2.1-CAPI-1.6.1" PROJ="Rel. 4.7.1, 23 September > > 2009" USE_STATS > > (1 row) > > > > > > > > Any assistance would be much appreciated. > > > > Thanks, > > > > -Francis Markham > > > _______________________________________________ > > postgis-users mailing list > > postgis-users@postgis.refractions.net > > http://postgis.refractions.net/mailman/listinfo/postgis-users > > > -- > > () Free GIS & Flash consultant/developer > /\ http://strk.keybit.net/services.html > _______________________________________________ > postgis-users mailing list > postgis-users@postgis.refractions.net > http://postgis.refractions.net/mailman/listinfo/postgis-users >
_______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users