[Gvsig_desarrolladores] Añadir puntos a un shape file por código
Jorge Piera
jorge.piera en iver.es
Lun Ene 12 09:07:13 CET 2009
Hola.
El método getDM() devuelve un objeto del tipo
com.hardcode.driverManager.DriverManager
Un saludo.
Jorge
fsalas escribió:
> Jose, saludos ,
>
>
>
> yo declare esta : *import* com.iver.cit.gvsig.fmap.layers.*;
> * *
>
> *import* com.iver.cit.gvsig.fmap.drivers.*;
>
>
>
> pero:
> en esta linea DriverManager writerManager = LayerFactory./getDM/(); me
> da como error Type mismatch : cannot convet from DriverManager to
> DriveManager
> y en el resto de las lineas da otros errores,
>
> Para que este codigo funcione ok ¿ que clases tengo que importar?
>
> saludos Salas
>
> ----- Original Message -----
> *From:* jose Diez Pastor <mailto:namberwuan en hotmail.com>
> *To:* gvsig_desarrolladores en runas.cap.gva.es
> <mailto:gvsig_desarrolladores en runas.cap.gva.es>
> *Sent:* Thursday, January 08, 2009 1:38 PM
> *Subject:* [Gvsig_desarrolladores] Añadir puntos a un shape file
> por código
>
>
> Hola a todos.
>
> Resulta que he creado una capa por código con el siguiente código
> inspirado en la extension extCAD, lo pongo por si alguien quiere
> crear alguna vez una capa por código.
>
> public void creaCapa(){
>
>
> //LayerFactory.setDriversPath("gvSIG\\extensiones\\com.iver.cit.gvsig\\drivers");
> DriverManager writerManager = LayerFactory.getDM();
> Driver driver = writerManager.getDriver("gvSIG shp driver");
>
>
> FLyrVect lyr = null;
> MapControl mapCtrl = v.getMapControl();
>
> // ChooseWriteDriver driverPanel = (ChooseWriteDriver)
> myWizardComponents.getWizardPanel(0);
> mapCtrl.getMapContext().beginAtomicEvent();
>
> File newFile = new File("d:\\provando.shp");
> String layerName = "prueba";
> String selectedDriver = "gvSIG shp driver";
> int geometryType = 1; //puntos
> FieldDescription[] fieldsDesc = getFieldsDescription();
> Driver drv =
> LayerFactory.getDM().getDriver(selectedDriver);
>
> SHPLayerDefinition lyrDef = new SHPLayerDefinition();
> lyrDef.setFieldsDesc(fieldsDesc);
> lyrDef.setFile(newFile);
> lyrDef.setName(layerName);
> lyrDef.setShapeType(geometryType);
> ShpWriter writer=
> (ShpWriter)LayerFactory.getWM().getWriter("Shape Writer");
> writer.setFile(newFile);
> try {
> writer.initialize(lyrDef);
> writer.preProcess();
> writer.postProcess();
> } catch (EditionException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
>
> lyr = (FLyrVect) LayerFactory.createLayer(layerName,
> (VectorialFileDriver) drv, newFile,
> mapCtrl.getProjection());
>
>
>
>
>
> }
>
> // la capa que creo va a tener 3 attributos
> private FieldDescription[] getFieldsDescription() {
> FieldDescription[] fieldsDesc = new FieldDescription[3];
> fieldsDesc[0] = new FieldDescription();
> fieldsDesc[0].setFieldName("ID");
> fieldsDesc[0].setFieldType(Types.VARCHAR); //STRING
> fieldsDesc[0].setFieldLength(5);
>
> fieldsDesc[1] = new FieldDescription();
> fieldsDesc[1].setFieldName("ANGLE");
> fieldsDesc[1].setFieldType(Types.VARCHAR); //STRING
> fieldsDesc[1].setFieldLength(5);
>
> fieldsDesc[2] = new FieldDescription();
> fieldsDesc[2].setFieldName("SENTIDO");
> fieldsDesc[2].setFieldType(Types.VARCHAR); //STRING
> fieldsDesc[2].setFieldLength(5);
>
> return fieldsDesc;
> }
>
>
> Esto de arriba funciona correctamente.
> El problema es que ahora necesito crear unos puntos, pero no
> quiero crear esos puntos a partir de eventos del ratón,
> quiero crearlos a partir de unos calculos mios.
> No soy capaz de encontrar la manera de insertar un punto a partir
> del código
>
> Muchas gracias.
>
> ------------------------------------------------------------------------
> Charlas más divertidas con el nuevo Windows Live Messenger
> <http://download.live.com>
>
> ------------------------------------------------------------------------
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
>
> ___________________________________
> Dpto de Sistemas Informáticos
> Oficina Central Grupo Empresarial GEOCUBA
> Este mensaje esta libre de virus.
> Revisado por Kaspersky Antivirus
> ----------------------------------------------------------------------
> Engine version: 4.0.1.14 Engine date: 2002/06/25 Definition count:
> 1427809 Definition date: 2009/01/09 MDAV version: 2.2.8
> ------------------------------------------------------------------------
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - http://www.avg.com
> Version: 8.0.176 / Virus Database: 270.10.6/1887 - Release Date: 11/01/2009 17:57
>
>
Este mensaje y sus archivos son confidenciales. No está permitida su reproducción o distribución sin la autorización expresa de "IVER Tecnologías de la Información". Si usted no es el destinatario previsto, queda desautorizado cualquier uso, acceso o copia de este mensaje. Si ha recibido este mensaje por error, por favor bórrelo e infórmenos por esta misma vía.
Más información sobre la lista de distribución gvSIG_desarrolladores