Por lo que estuve leyendo, la primer parte tiene que ver con las funciones:
ST_ForceClosed, ST_IsClosed, ST_IsRing


Mientras que la segunda (creo) anda por estas funciones:
ST_MakePolygon, ST_BuildArea y ST_Polygonize

Sólo que aun no encontré la manera de aplicarlo a mis datos.


En Tue, 27 Jun 2017 10:42:13 -0300, Felipe Guzman <felipeguzm...@gmail.com> 
escribió:

Buenos dias a todos!
Nestor y si calculas la distancia que existe entre la centroide de la linea
y el punto, le aplicas un nivel de "tolerancia" que va a hacer la distancia
mínima entre el centroide de la linea y el punto que tienes marcado.


El 27 de junio de 2017, 9:35, jvenegasperu . <jvenegasp...@gmail.com>
escribió:

Hola Nestor
buen dia

El 27 de junio de 2017, 7:27, Néstor Ramires <nrami...@rosario.gov.ar>
escribió:

Hola, esta consulta ya la hice en una lista de Postgis (aun sin
respuesta) si bien no es una consulta concreta de PostgreSQL pero tal vez
alguien ha trabajado con la extension  Postgis  y me pueda guiar en la
resolución de este planteo.
En una base de datos espacial en Postgis, tengo dos tablas:
Una tabla llamada forestal_ln la cual contiene LINESTRING.
Una tabla llamada forestal que cuenta con algunos campos y dos campos
geométricos: 'centroide' que contiene geometría de tipo POINT y 'geometria'
que contiene geométrica de tipo MULTIPOLYGON.
En donde cada centroide de la tabla forestal se encuentra encerrado por
varias líneas de la tabla forestal_ln.
Les agradecería mucho si pudieran orientarme en:
1) ¿qué procesos podría correr para asegurarme de que esas lineas
verdaderamente encierran un solo centroide? Verificar la topologia

2) (más importante) ¿cómo puedo crear los polígonos a partir de esas
lineas y actualizar con esos polígonos creados el campo geometria de la
tabla forestal?


Quiza podrias hacer algo asi a cada centroide le haces un bufer lo
suficientemente grande como para cruzarse con las lineas que lo estarian
encerrandolo luego hacer un intersection del buffer con las lineas asi
tendrias el poligono luego preguntarias si el centroide esta dentro del
poligono si tienes mas de un centroide podrias arreglarlo con un count y
faltaria evaluar como disernir los que tengas mas de un centroide dentro de
cada poligono.

no tengo postgis ahora a mano pero ahi te dejo una imagen adjunta de lo
que aqui te escribo que espero te sirva.

PD quiza necesites cortar las lineas para quedarte con las partes que se
intersectan con el buffer antes de armar el poligono y el buffer podrias
tambier configurar para que no sea necesariamente lo mas cercano  un
circulo asi trabajas mas rapido con menos puntos.


Según tengo entendido, no toma parte de lo sobrante de la intersección  al
momento de crear los poligonos.


Por favor si puedes comentar tus progresos en este tema es muy interesante


Los datos con los cuales estoy trabajando:

CREATE TABLE forestal(
id serial NOT NULL,
tipo varchar(6),
densidad real,
CONSTRAINT forestal_pkey PRIMARY KEY(id)
);
SELECT AddGeometryColumn ( 'forestal', 'centroide', 22185, 'POINT', 2);
SELECT AddGeometryColumn ( 'forestal', 'geometria', 22185,
'MULTIPOLYGON', 2);

INSERT INTO forestal (tipo,densidad,centroide)
VALUES('PMT',85.2,ST_GeomFromText('POINT(5500060 6500180)',22185));
INSERT INTO forestal (tipo,densidad,centroide)
VALUES('PCRTA',52.42,ST_GeomFromText('POINT(5500080 6500270)',22185));
INSERT INTO forestal (tipo,densidad,centroide)
VALUES('CA',42.26,ST_GeomFromText('POINT(5500120 6500100)',22185));
INSERT INTO forestal (tipo,densidad,centroide)
VALUES('AMJ',86.6,ST_GeomFromText('POINT(5500210 6500190)',22185));
INSERT INTO forestal (tipo,densidad,centroide)
VALUES('ODM',8.6,ST_GeomFromText('POINT(5500220 6500070)',22185));
INSERT INTO forestal (tipo,densidad,centroide)
VALUES('EMDF',27.8,ST_GeomFromText('POINT(5500220 6500110)',22185));
INSERT INTO forestal (tipo,densidad,centroide)
VALUES('DHRT',36.27,ST_GeomFromText('POINT(5500220 6500280)',22185));
INSERT INTO forestal (tipo,densidad,centroide)
VALUES('FM',73.24,ST_GeomFromText('POINT(5500230 6500260)',22185));

CREATE TABLE forestal_ln(
id serial NOT NULL,
CONSTRAINT forestal_ln_pkey PRIMARY KEY(id)
);
SELECT AddGeometryColumn ( 'forestal_ln', 'geometria', 22185,
'LINESTRING', 2);

INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500030
6500230,5500030 6500050)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500030
6500290,5500030 6500250)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500030
6500050,5500160 6500050)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500160
6500050,5500280 6500050)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500280
6500090,5500280 6500050)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500280
6500090,5500280 6500140)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500280
6500150,5500280 6500140)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500280
6500150,5500280 6500220)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500190
6500220,5500280 6500220)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500190
6500230,5500100 6500230)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500190
6500220,5500190 6500230)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500100
6500230,5500030 6500230)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500030
6500250,5500120 6500250)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500180
6500250,5500120 6500250)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500180
6500250,5500280 6500250)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500280
6500250,5500280 6500270)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500280
6500290,5500280 6500270)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500280
6500290,5500090 6500290)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500030
6500290,5500090 6500290)',22185));

INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500090
6500290,5500180 6500270)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500180
6500270,5500220 6500270)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500220
6500270,5500120 6500250)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500220
6500270,5500280 6500270)',22185));

INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500100
6500230,5500100 6500170)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500100
6500170,5500030 6500050)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500100
6500170,5500160 6500170)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500160
6500170,5500160 6500150)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500160
6500150,5500160 6500140)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500160
6500140,5500280 6500140)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500160
6500140,5500160 6500090)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500160
6500090,5500280 6500090)',22185));
INSERT INTO forestal_ln (geometria) VALUES(ST_GeomFromText('LINESTRING(5500160
6500090,5500160 6500050)',22185));






--
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

PHP Documentation Group Member (Spanish)

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda




-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a