Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Desarrollo Manual para desarrolladores gvSIG v1.1 Librerías internas Ejemplos de uso de FMap Añadir una capa por código
Artikelaktionen

Añadir una capa por código

von Grupo gvSIGZuletzt verändert: 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.


Powered by Plone CMS, the Open Source Content Management System

Diese Website erfüllt die folgenden Standards: