[Gvsig_desarrolladores] Escribiendo SHP con fmap

Víctor González victorzinho en gmail.com
Mar Jul 19 13:45:50 CEST 2011


Hola,

Ya está reportado en OSOR. Aparte, me he dado cuenta de otra cosa que no me
ha cuadrado demasiado. Si defino un campo de tipo float

EditableFeatureType type = new DefaultEditableFeatureType();
type.add("float", DataTypes.FLOAT).setSize(5);

y luego al escribir una feature, le paso un double

feature.set("float", 34.0);

se escribe el valor al fichero correctamente, pero al leer de nuevo, se dice
que el campo es de tipo double. Al no escribirse ni double ni float al
shapefile, sino un número con unas determinadas cifras y demás, no se si es
el comportamiento esperado o no. El problema mayor ha venido cuando se
establece el valor de la feature mandando un float:

feature.set("float", (float) 34.0);

que entonces el valor que se escribe al fichero es un 0. Algo parecido me ha
pasado con int y long. El mismo main del primer mensaje puede valer para
probarlo cambiando el campo double por un float y el ticket en OSOR lo he
puesto también.

Un saludo,
Víctor.

El 19 de julio de 2011 12:05, Jorge Piera Llodrá <jpiera en gvsig.com>escribió:

> Hola.
>
> Sí, parece que se esté indicando que el shape es de un tipo un tipo y
> luego se estriben geometrías de otro tipo. Además en el código de Víctor
> se especifica que el shape es de tipo 2D y se insertan geometrías en 2D.
> Bug importante.
>
> Si no es mucha molestia, estaría bien que para cada error que encontréis
> creéis un ticket en OSOR. Así no se perderá y se le asignará a alguien
> para que lo resuelva. Además, cuando se corrija, os llegará un correo
> indicando que se ha resuelto.
>
> Un saludo y muchas gracias de antemano.
> Jorge
>
>
> On 07/19/2011 11:36 AM, Fernando González wrote:
> >> Cuando intento abrir el shp que he escrito con geotools, me dice que
> >> "ShapeType changed illegally from PointZ to Point".
> >>
> >> Aquí no te sabría responder...
> >>
> > En geotools esto significa que en la cabecera del shapefile se ha
> > escrito que las geometrías son de tipo PointZ, es decir, puntos con
> > tres componentes (x, y, z) pero luego en la cabecera de cada registro
> > se indica que la geometría es de tipo Point, es decir, puntos con dos
> > componentes (x, y). Geotools comprueba que estos dos datos sean
> > coherentes y si no lo son sale el error que reporta Víctor.
> >
> > Creo que es un bug de DAL. He analizado con gHex2 (editor hexadecimal)
> > el shapefile que ha producido Víctor y el tipo de geometría de la
> > cabecera (Posicion 0x20 ó 32) es un 11 (PointZ). Para el usuario esto
> > tiene la consecuencia de que el shapefile que escriba con gvSIG 2.0 no
> > podrá ser leído con herramientas basadas en geotools (geoserver, udig,
> > etc.)
> >
> > Además he visto que la cabecera tiene un FileLength de 14, lo cual es
> > incorrecto porque FileLength debe incluir las 50 medias palabras de la
> > cabecera*. Los lectores que he visto no hacen uso de este parámetro
> > pero es posible que haya alguno por ahí que reserve memoria en base a
> > esto y pete.
> >
> > Saludos.
> >
> >
> > *The value for file length is the total length of the file in 16-bit
> > words (including the fifty 16-bit words that make up the header)
> > (http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf)
> > _______________________________________________
> > gvSIG_desarrolladores mailing list
> > gvSIG_desarrolladores en listserv.gva.es
> > http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
> >
>
>
> --
> Jorge Piera Llodrá
> gvSIG software architect
> PRODEVELOP
> e-mail: jpiera en gvsig.com
> http://www.prodevelop.es
> http://www.gvsig.org
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20110719/22bb0d00/attachment.htm 


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