Strumenti personali
Tu sei qui: Portale Desarrollo Manual para desarrolladores gvSIG v1.1 Librerías internas Ejemplos de uso de FMap Añadir una capa por código
Azioni sul documento

Añadir una capa por código

creato da Grupo gvSIGUltima modifica 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.


Sviluppato con Plone CMS, il sistema open source di gestione dei contenuti

Questo sito è conforme ai seguenti standard: