[Gvsig_usuarios] Restrinjamos el MULTI-

Francisco de la Puente franciscodelapuente en auna.com
Mie Mayo 30 03:26:07 CEST 2007


Hola Francisco y demás interesados en el tema:
Me gustaría hacer alguna consideración sobre los tipos multi.

Los polígonos tipo donut no tienen isla, tienen agujero. Se le llama isla
cuando en el interior del agujero hay otro polígono. Es decir, un polígono
puede tener uno o varios agujeros y no deja de ser un polígono. Así sucede
en shapefile y en geodatabase personal tanto de GeoMedia como de ArcGis. El
multipolígono es una colección de polígonos separados espacialmente. Estos
polígonos, como cualquier otro, pueden tener agujeros o, incluso, formar
isla en el agujero de uno de ellos. Yo los utilizaría para casos muy
concretos: si hago un mapa de España, las islas Baleares, Canarias, Cíes,
etc., podrían ser tratadas como multipolígonos, es decir, en un único
registro tendría la definición geométrica de cada una de las islas.
Podríamos citar otros casos pero ya se ve que no es el caso general, sobre
todo si se trabaja a escalas grandes ¿Se comportan de igual forma en las
consultas espaciales los polígonos y los multipolígonos? Yo me inclino a
utilizar el tipo específico para los polígonos y dejar los multipolígonos
para casos especiales en donde la mayoría de registros fuesen entidades con
más de un polígono.
Para el caso de las multilíneas tengo el mismo criterio. No hay muchos
guadianas y si me encontrase alguno trataría de solucionarlo con algún
atributo. Igual con los multipuntos.
Del tipo geometrycollection sólo decir que, efectivamente, se parece mucho a
un CAD, razón mas que suficiente para restringir su uso al máximo. Muchas
veces será preferible cargar el CAD tal cual para visualizarlo. La
información proveniente de un CAD, si no está cargada en la base espacial
convenientemente estructurada, no es información espacial aprovechable.
Pudiéramos decir que son datos, no información ¿Qué puedo obtener de su
consulta?

Centrándonos en gvSIG, cuando creo una capa nueva de tipo polígono en
PostGIS resulta que obtengo una tabla tipo multipolígono en la que,
curiosamente, no puedo crear entidades con geometría propiamente
multipolígono ¿Cómo dibujo dos polígonos de forma que se almacenen en un
único registro? Si al crearla elijo polígono, ¿por qué hacer una
multipolígono cuando ni siquiera se da como opción?

Además del índice GiST, creo que sería conveniente una comprobación de la
validez de las geometrías (CONSTRAINT geometría_valida CHECK
(isvalid(the_geom))). La calidad de los datos es fundamental para que nos
podamos fiar del resultado de los análisis.


Nada más por hoy. Saludos a todos...
Francisco de la Puente


> -----Mensaje original-----
> De: gvsig_usuarios-bounces en runas.cap.gva.es [mailto:gvsig_usuarios-
> bounces en runas.cap.gva.es] En nombre de Francisco José Peñarrubia
> Enviado el: lunes, 28 de mayo de 2007 23:52
> Para: Lista de Usuarios de gvSIG
> Asunto: Re: [Gvsig_usuarios] El porqué del MULTI-
> 
> Hola Francisco.
> 
> En el caso de MULTIPOLYGON o MULTILINESTRING está bastante claro. De
> hecho, la utilidad que viene con PostGIS para cargar ficheros .shp a
> PostGIS, también lo hace así, si te fijas.
> Los polígonos con isla (los famosos donut) son MULTIPOLYGON en el modelo
> SFS del OGC, y puedes encontrarte de esos en un shp. Lo mismo con las
> líneas multiparte (MULTILINESTRING), por ejemplo con el río Guadiana
> cuando se esconde y vuelve a salir. Es una misma entidad, formada por
> dos o más líneas discontínuas.
> 
> Ahora bien, en el caso de gvSIG, creo que se usa GEOMETRY como caso más
> general. Es decir, si la capa en cuestión es MULTI (es decir, puedes
> tener puntos, líneas y polígonos dentro de la misma capa (típico en
> capas de tipo CAD (dxf, dgn, dwg)), podrías meter dentro de una capa de
> PostGIS todas esas entidades. Esto me parece que no lo puedes hacer con
> ningún otro programa.
> 
> Luego podríamos discutir si eso es útil o no, pero en principio PostGIS
> lo permite, así que nosotros, también. (Esto viene a cuento porque si
> luego quieres usar esa capa en un servidor WFS, puedes tener problemas,
> porque las capas WFS no admiten "mezcla" de tipos de entidades).
> 
> En cuanto a lo del cuadro de diálogo, debe ser algo que se nos ha pasado
> por alto, habrá que revisarlo. Gracias por el apunte.
> 
> Y lo del índice GiST.... tienes razón, no se está usando. Está el código
> SQL hecho, pero falta la llamada. Lo incluiremos.
> 
> Saludos, y hasta otra remesa de sugerencias, que nos ayudan a mejorar.
> 
> 
> 
> 
> Francisco de la Puente escribió:
> >
> > Hola amigos:
> >
> > Cuando exporto un shapefile tipo “Polygon” a una base de datos
> > PostGis, el tipo de geometría asignado es MULTIPOLYGON. Me gustaría
> > saber por qué, pues el shapefile no soporta este tipo de geometría. Si
> > OGC los ha definido por separado es porque conceptualmente no son
> > iguales, aunque puedan “funcionar” de forma similar.
> >
> > Lo mismo pasa con el tipo Polyline en shape que se transforma en
> > MULTILINESTRING de PostGis y el Point a Geometry.
> >
> > Cuando creo una capa nueva en PostGis pasa lo mismo.
> >
> > Además en este último caso no aparecen en el cuadro de diálogo las
> > conexiones del gestor de BD espaciales, aunque previamente haya hecho
> > la conexión.
> >
> > También he visto que no se genera el índice GiST, cuando el manual de
> > PostGis recomienda hacerlo cuando los registros ascienden a unos pocos
> > miles, caso muy habitual. Entiendo que se hace uso de este índice en
> > las consultas espaciales y la velocidad de respuesta puede mejorar
> mucho.
> >
> > Nada más, gracias de antemano por las aclaraciones.
> >
> > Saludos,
> >
> > **----------------------------------------------------------------------
> --**
> >
> > **Francisco de la Puente**
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > gvSIG_usuarios mailing list
> > gvSIG_usuarios en runas.cap.gva.es
> > http://runas.cap.gva.es/mailman/listinfo/gvsig_usuarios
> >



Más información sobre la lista de distribución gvSIG_usuarios