Re: [Gvsig_desarrolladores] Añadir puntos a un shape file por código
fsalas
fsalas en geocuba.cu
Vie Ene 9 09:21:41 CET 2009
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
To: 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
------------------------------------------------------------------------------
_______________________________________________
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20090109/7feee488/attachment.htm
Más información sobre la lista de distribución gvSIG_desarrolladores