Aquí viene una idea
Si usted destrozar uno de los linestrings para comparar y comprobar si el vertexpoints está dentro de cierta distancia de los otros linestring a comparar usted puede controlar la prueba de muchas maneras.
los ejemplos de trabajo en PostGIS (que podría adivinar :-) )
En primer lugar, si nos dicen que no es una coincidencia si todos los vértices los puntos en una cadena de línea en table_1 es de 0,5 metros (unidades de mapa) o más cerca de una linestring en table_2:
SELECT a.id, b.id FROM
(SELECT ST_NPoints(the_geom) as num_of_points,
(ST_Dumppoints(the_geom)).geom as p, id FROM table_1) a
INNER JOIN
table_2 b
ON ST_DWithin(a.p, b.the_geom, 0.5) GROUP BY a.id, b.id
HAVING COUNT(*)=num_of_points;
Entonces, podemos decir que hay un partido en caso de que más de 60% de la vertex_points en un linestring en table_1 es dentro de la distancia de un linestring en table_2
SELECT a.id, b.id FROM
(SELECT ST_NPoints(the_geom) as num_of_points,
(ST_Dumppoints(the_geom)).geom as p, id FROM table_1) a
INNER JOIN
table_2 b
ON ST_DWithin(a.p, b.the_geom, 0.5) GROUP BY a.id, b.id
HAVING COUNT(b.id)/num_of_points::float > 0.6
O podemos aceptar que un punto no está en el rango:
SELECT a.id, b.id FROM
(SELECT ST_NPoints(the_geom) as num_of_points,
(ST_Dumppoints(the_geom)).geom as p, id FROM table_1) a
INNER JOIN
table_2 b
ON ST_DWithin(a.p, b.the_geom, 0.5) GROUP BY a.id, b.id
HAVING COUNT(b.id)-num_of_points <= 1;
Usted también tendrá que ejecutar la consulta con table_1 y table_2 en invertido los papeles.
No sé lo rápido que va a ser. ST_Dumppoints es actualmente una de sql-función en PostGIS y no un C-función que hace que sea más lento de lo que debería ser. Pero creo que va a ser bastante rápida de todos modos.
Los índices espaciales va a ayudar mucho para ST_Dwithin efectiva.
HTH
Nicklas