[Gvsig_desarrolladores] Error en la edición de geometrías?
Cèsar Ordiñana
cordinyana en gvsig.com
Jue Abr 19 11:29:44 CEST 2012
El 18/04/12 17:41, junquero escribió:
> Hola
>
> He seguido avanzando en el estudio del problema, y he encontrado que en la
> clase WKTParser.java, hay un método
>
> private Geometry readLineStringText(StreamTokenizer tokenizer)
>
> Entiendo que esta clase debería crear una geometría compatible con
> LineString, y sin embargo, crea una geometría Surface.
>
> He cambiado el código para que genere una geometría tipo Curve en lugar de
> Surface y ahora si que me funciona correctamente.
>
> La cuestión es: ¿porqué se está creando una geometría tipo Surface en lugar
> de Curve? ¿Cambiar a Curve tendrá efectos colaterales?
Hola.
Me parece que se trata de un bug, y como comentas se podría cambiar a Curve.
Tiene toda la pinta que esa clase está a medias y no se debe estar
usando demasiado. De hecho mirando algunos de los métodos (ej:
readPolygonText) imagino que no funcionará tal y como está.
Saludos.
--
Cèsar Ordiñana Navarro
gvSIG software architect
DiSiD Technologies (http://www.disid.com)
>
> /**
> * Creates a<code>LineString</code> using the next token in the
> stream.
> *
> *@param tokenizer tokenizer over a stream of text in
> Well-known Text
> * format. The next tokens must form a<LineString Text>.
> *@return a<code>LineString</code> specified by the
> next
> * token in the stream
> *@throws IOException if an I/O error occurs
> *@throws ParseException if an unexpected token was encountered
> * @throws CreateGeometryException
> * @throws IllegalAccessException
> * @throws InstantiationException
> */
> private Geometry readLineStringText(StreamTokenizer tokenizer) throws
> IOException, ParseException, CreateGeometryException {
> Coordinate[] arrayC = getCoordinates(tokenizer);
> GeneralPathX gp = new GeneralPathX();
> gp.moveTo(arrayC[0].x,arrayC[0].y);
> for (int i=1;i< arrayC.length; i++)
> {
> gp.lineTo(arrayC[i].x, arrayC[i].y);
> }
> * // IJM: Cambiado Surface por Curve
> Curve curve = (Curve) manager.create(TYPES.CURVE,
> SUBTYPES.GEOM2D);
> curve.setGeneralPath(gp);
> return curve;
> * }
>
Más información sobre la lista de distribución gvSIG_desarrolladores