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