[Gvsig_desarrolladores] Crear varias Features dentro de una capa haciendo clic sobre el mapa

Alvaro Zabala azabala en gmail.com
Jue Ene 25 09:37:44 CET 2007


El problema es que el writer lo estás creando desde cero cada vez, y
machacas siempre el fichero existente.

Hablo de memoria (que me corrija el maestro Fran ;) ) pero si a la instancia
de flyrVect le haces un isWritable(), y te devuelve true, puedes recuperar
el writer asociado al driver de lectura que estás utilizando con:

VectorialDriver drv = (VectorialDriver) flyrVect.getSource().getDriver().

if (drv instanceof IWriteable)
    {
            IWriter writer = ((IWriteable)drv).getWriter();

Prueba a utilizar tu codigo con la instancia de writer devuelta por el
driver de la capa.

Un saludo.



2007/1/25, Domingo Baeza <dbaeza en blom.es>:
>
>  Buenos días a todos.
>
> Tengo un problema y no se si lo que estoy haciendo está bien o mal.
>
> Mi problema es el siguiente:
>
> Tengo que hacer un tema "de rejillas", es decir, generar una malla, pero
> la malla no tiene que ser continua, es decir, no podré generar una malla
> (por ejemplo) de 5 x 5, sino que lo que necesito es que el usuario donde
> haga clic sobre el mapa, se generé ahí un rectángulo que pertenecerá a la
> malla.
>
>
>
> Estoy con el código siguiente:
>
>
>
>                         iLyrdef=(ILayerDefinition)
> DefinitionUtils.createLayerDefinition((FLyrVect)lyrHojas);
>
>                         writer =(ShpWriter) LayerFactory.getWM().getWriter("Shape
> Writer");
>
>                         writer.setFile(new File("c:/Shapes/Hojas.shp"));
>
>                                     try {
>
>                                                writer.initialize(iLyrdef);
>
>                                                writer.preProcess();
>
>                                                            } catch (
> EditionException e) {
>
>                                                                        //
> TODO Auto-generated catch block
>
>
> e.printStackTrace();
>
>                                                            }
>
>
>
>                                                            ReadableVectorial
> rv2=((FLyrVect)lyrHojas).getSource();
>
>                                                            Value[]
> featureAttr = new Value[rv2.getRecordset().getFieldCount()];
>
>                                                            //Con esto creo
> el polígono de la malla
>
>                                                            GeneralPathX
> poligono = new GeneralPathX();
>
>                                                            poligono.moveTo
> (x,y);
>
>                                                            poligono.lineTo
> (nAncho,y);
>
>                                                            poligono.lineTo
> (nAncho,nAlto);
>
>                                                            poligono.lineTo
> (x,nAlto);
>
>                                                            poligono.lineTo
> (x,y);
>
>
> poligono.closePath();
>
>                                                            IGeometry geo =
> ShapeFactory.createPolygon2D(poligono);
>
>                                                            IFeature xx =
> FeatureFactory.createFeature(featureAttr,geo,iLyrdef);
>
>                                                            //* nClic –
> Indica el número de clic sobre el mapa.*
>
>
> DefaultRowEdited edRow = new DefaultRowEdited(xx,
> DefaultRowEdited.STATUS_ADDED,*nClic*);
>
>                                                            writer.process(
> edRow);
>
>
> writer.postProcess();
>
>                                                            lyrHojas.reload
> ();
>
>
>
>
>
> Esto crea una feature dentro del tema, pero cuando hago clic de Nuevo, la
> feature previa desaparece y me deja la nueva.
>
> ¿Como podría hacer que se mantuvieran varias?
>
>
>
>
> Un Saludo
>
>
>
>
>
>
> *Domingo Baeza Díaz*
>
> *Ing.Técnico Informático.*
>
> *BLOM S.L.U.*
> Pº Arco de Ladrillo, 64, portal 2, planta 2
>
> 47008 Valladolid
> Tfno: +34 983 456 048
>
> Fax: +34 983 239 649
>
> E-mail: *dbaeza en blom.es*
> Web:* **http://www.blom.es <http://www.grafos.es>*
> __________________________________________________
> *Este mensaje es confidencial y puede contener información privilegiada.
> Si Vd. no es el destinatario, es ilegal que lea, copie, distribuya, divulgue
> o haga cualquier otro uso de la información contenida en este mensaje. Por
> favor, notifíquenoslo inmediatamente a admin en blom.es*
>
> *Gracias*
>
>
>
>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
>
>


-- 
Alvaro Zabala Ordóñez

Teléfono: 954939528
Plaza de España, sector II.
SEVILLA
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20070125/52bbe470/attachment-0001.htm


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