Ferramentas Pessoais
Você está aqui: Entrada Desarrollo Manual para desarrolladores gvSIG v1.1 Librerías internas Ejemplos de uso de FMap Añadir una capa por código
Acções do Documento

Añadir una capa por código

por Grupo gvSIGúltima modificação 2010-06-01 22:52

Para añadir una capa por código, normalmente se necesita crear el driver y luego llamar a LayerFactory. Veamos un ejemplo:

LayerFactory.setDriversPath(
    "C:\\eclipse3\\workspace\\Andami\\gvSIG\\extensiones\\com.iver.cit.gvsig\\drivers");
FLayer l = LayerFactory.createLayer("Vias",
    (VectorialFileDriver)   LayerFactory.getDM().getDriver("gvSIG shp driver"),
    new File("C:/vias.shp"),
    CRSFactory.getCRS("EPSG:23030"));
newMapControl.getMapContext().getLayers().addLayer(l);

Una capa PostGIS se crea de la siguiente forma:

String dburl = "jdbc:postgresql://localhost/latin1";
String dbuser = "postgres";
String dbpass = "XXXXXXX";
    // String dburl = "jdbc:postgresql://192.168.0.217/postgis";
// String dbuser = "gvsig";
// String dbpass = "";

    // String dbtable = "carreteras_lin_5k_t10";
String dbtable = "provin"; // OJO CON LAS MAYUSCULAS!!!!!!!
IConnection conn = null;
System.out.println("Creating JDBC connection...");
Class.forName("org.postgresql.Driver");
conn = ConnectionFactory.createConnection(dburl, dbuser, dbpass);

((ConnectionJDBC)conn).getConnection().setAutoCommit(false);

DBLayerDefinition lyrDef = new DBLayerDefinition();
lyrDef.setName(dbtable);
lyrDef.setTableName(dbtable);
lyrDef.setWhereClause("");
String[] fields = {"nom_provin", "gid"};
lyrDef.setFieldNames(fields);
lyrDef.setFieldGeometry("the_geom");
lyrDef.setFieldID("gid");

Statement st = ((ConnectionJDBC)conn).getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    rsGood = st.executeQuery("SELECT NOM_PROVIN, GID FROM " + dbtable           + " ORDER BY GID");
    driver.setData(conn, lyrDef);
}
catch (Exception e){
    e.printStackTrace();
}

Hay que destacar que una capa vectorial la definimos normalmente en base a un driver y un objeto ILayerDefinition, donde se especifica los campos de la capa, el nombre, el sistema de coordenadas que usa, etc.


Feito com Plone CMS, o Software Livre para Gestão de Conteúdos

Este sítio está em conformidade com as seguintes normas: