El 25/08/2011 14:55, josego escribió:
El 25/08/11 10:48, Mario Sileone escribió:
El 25/08/2011 11:33, josego escribió:
Hola a todos.
Tengo una base de datos espacial. En una tabla tengo el nombre de calle,
la geometría y su numero de inicio y su fin.
Ejemplo la calle SICILIA tiene una geomertia con un numero de inicio 100
hasta 200.
En la tabla existen nueve filas sobre la calle SICILIA con su geometría
especifica pero con números diferentes. Osea cada cien números. Lo que
quisiera hacer una consulta que si yo introduzco un numero a la calle
SICILIA por ejemplo 150 me ubique mas o menos en ese punto.
*Lo que hice es esta sentencia -->
SELECT
X(startPoint(calle.the_geom)) as coordenada_inicio_X,
Y(startPoint(calle.the_geom)) as coordenada_inicio_Y,
calle.gid
FROM
calles_polyline AS calle
WHERE
calle.calle = 'SICILIA' and ((calle.desde <= 100) and (calle.hasta >=
199));*
Pero me coloca el punto inicial que comienza la calle con su numero. Yo
quisiera que me coloque el punto exacto. como podría hacer??.
muchas gracias, jose
Mira: hay un par de funciones muy interesantes para lo que estás
buscando.
una de ellas y la que más puede resultarte es
ST_Line_Interpolate_Point(geometría, posicion), que toma el largo de
la geometría como una razón de 0 a 1, y si le pasas en posición el
parámetro 0,5 te devolverá un punto en la mitad de la geometría.
Si esto lo pasas a una diferencia entre la altura final y la inicial,
sabiendo que tu geometría tiene una razón entre 0 y 1, creo que tienes
la solución.
Saludos.
Muchas gracias.. Estuve viendo la función y creo que me va ayudar lo que
necesito. Ahora el problema que tengo que el tipo de dato es un
multilinestring y no un linestring. No se como podría resolver eso. Si
alguien tiene alguna idea. Estoy buscando y no encuentro anda..
desde ya muchas gracias
saludos, jose
Puedes obtener de cuantas Linestring se compone con
ST_NumGeometries(geometria) y luego extrayendo cada una con
ST_GeometryN(geometría, orden). De esta manera puedes obtener cada una
de las geometrías que contiene tu multilinestring.
De ahi en mas o bien armas una sola geometría con todos los elementos o
generas los registros correspondientes para cada geometría, eso ya queda
a tu criterio y necesidad.
Saludos.
--
Mario Sileone
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda