22. Explorers

Ejemplo de crear cómo crear una base de datos h2 y cargarla en una Vista:

# encoding: utf-8

import gvsig

from org.gvsig.fmap.dal import DataTypes
from org.gvsig.app import ApplicationLocator
from org.gvsig.fmap.dal import DALLocator
from gvsig import geom


def main(*args):

    pathShape = gvsig.getTempFile("base", ".h2")
    print pathShape

    manager = DALLocator.getDataManager()
    ### SERVER EXPLORER
    serverParameters = manager.createServerExplorerParameters("H2Spatial")
    serverParameters.setDynValue("database_file",pathShape)
    serverExplorer = manager.openServerExplorer("H2Spatial",serverParameters)
    p = serverExplorer.getAddParameters()
    p.setDynValue("Table","t1")

    ft = manager.createFeatureType()
    ft.add("PK",DataTypes.INT)
    ft.add("ID",DataTypes.STRING)
    ft.add("DIST",DataTypes.DOUBLE)
    ft.add("SEGS",DataTypes.INT)

    ft.add("GEOMPOINT", DataTypes.GEOMETRY) #Geometry.TYPES.POINT)
    ft.get("GEOMPOINT").setGeometryType(geom.POINT, geom.D3)
    ft.get("GEOMPOINT").setSRS(gvsig.currentView().getProjection())

    ft.add("GEOMETRY", DataTypes.GEOMETRY) #Geometry.TYPES.CURVE)
    ft.get("GEOMETRY").setGeometryType(geom.LINE, geom.D3)
    ft.get("GEOMETRY").setSRS(gvsig.currentView().getProjection())
    p.setDefaultFeatureType(ft)
    serverExplorer.add("H2Spatial", p, True)

    ## OPEN STORE
    storeParameters = manager.createStoreParameters("H2Spatial")
    storeParameters.setDynValue("database_file",pathShape)
    storeParameters.setDynValue("Table","t1")
    storeParameters.setDynValue("DefaultGeometryField","GEOMETRY")
    #storeParameters.setDynValue("CRS",gvsig.currentView().getProjection())
    store = manager.openStore("H2Spatial",storeParameters)

    ## Add new layer
    application = ApplicationLocator.getManager()
    mapcontextmanager = application.getMapContextManager()
    layer = mapcontextmanager.createLayer("Layer H2",store)
    gvsig.currentView().addLayer(layer)