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

Añadir una capa por código

por Grupo gvSIG — Última modificação 01/06/2010 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.


Impulsionado pelo Plone™ CMS, o Sistema de Gerenciamento de Conteúdos de Código Aberto

Este site está em conformidade com os seguintes padrões: