[Gvsig_desarrolladores] Crear shape desde cero
Cèsar Ordiñana
cordinyana en gvsig.com
Mar Mayo 11 10:46:29 CEST 2010
Hola,
Para lo que quieres hacer, en principio no necesitas más que DAL y los
proveedores de datos con los que quieras trabajar. Cuando eso lo quieras
convertir en una extensión, entonces sí ya puedes depender de andami y
appgvSIG y usar el PluginServices, entre otros.
Por ejemplo, te puedes crear una librería que toma como fuente un
FeatureStore sobre una tabla de una base de datos, y crea un shape con
los datos de dicha tabla. Sólo necesitarás depender de DAL, el proveedor
de base de datos que necesites y el proveedor de shape.
Mírate la documentación que hay sobre dal en [1], sobretodo los puntos:
- Acceso a los fenómenos
- Modificación y escritura de datos
- Consultando la estructura de un almacen
- Creación de un nuevo almacén
[1]
https://gvsig.org/web/projects/gvsig-desktop/docs/devel/org.gvsig.fmap.dal/
Saludos,
agirrearri escribió:
> Hola:
>
> La primera duda es ¿para poder utilizar DALLocator, PluginServices etc tengo
> que estar dentro de un proyecto extension? No puedo crear un nuevo proyecto
> que no sea una extension y utilizar estas clases? Quiero poder ejecutarlo
> sin arrancar el gvsig porque si no para probarlo tengo que instalar siempre
> la extension y se pierde mucho tiempo porque estoy probando cada linea de
> código. Aunque ejecutarlo independientemente me trae problemas porque no
> tengo algunos objetos que necesito para crear el shp.
>
> De momento estoy haciendolo dentro de Gvsig siguiendo el ejemplo de exportto
> y mi código es este,
>
> package org.gvsig.myextension;
>
> import java.io.File;
>
> import org.gvsig.andami.PluginServices;
> ........
> ........
>
> public class SHPEditable {
>
> SHPEditable(String path) {
>
> org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices
> .getMDIManager().getActiveWindow();
>
> if (f instanceof DefaultViewPanel) {
> DefaultViewPanel vista = (DefaultViewPanel) f;
> ViewDocument model = vista.getModel();
> MapContext mapContext = model.getMapContext();
>
> File newFile = new File(path);
>
> DataManager datamanager = DALLocator.getDataManager();
>
> try {
> FilesystemServerExplorerParameters explorerParams =
> (FilesystemServerExplorerParameters) datamanager
> .createServerExplorerParameters(FilesystemServerExplorer.NAME);
>
> explorerParams.setRoot(newFile.getParent());
>
> FilesystemServerExplorer explorer = (FilesystemServerExplorer)
> datamanager
> .createServerExplorer(explorerParams);
>
> NewFeatureStoreParameters newParams = (NewFeatureStoreParameters)
> explorer
> .getAddParameters(newFile);
>
> //FeatureStore store1=lv.getFeatureStore();codigo original
> //error
> //no tengo la capa he intento crear un feature store pero
> no se como, he intentado estas cosas pero estoy desorientado
> DataStoreParameters params = datamanager.createStoreParameters("Shape");
> FeatureStore store = (FeatureStore)datamanager.createStore(params);
>
> FeatureQuery featureQuery = store.createFeatureQuery();
> ((SHPNewStoreParameters) newParams).setSRS(mapContext
> .getProjection());
> String pathFile = ((FilesystemStoreParameters)
> newParams).getFile().getAbsolutePath();
> String withoutShp = pathFile.replaceAll("\\.shp", "");
>
> // ((SHPNewStoreParameters) newParams).setSRS(mapContext
> // .getProjection());
> System.out.println();
>
> FeatureSet set = null;
> Evaluator evaluator;
> } catch (DataException e) {
> e.printStackTrace();
> } catch (ValidateDataParametersException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> }
> }
> }
>
>
>
> no puedo conseguir el FEATURESTORE porque lo coje del layer, la proyección
> lo puedo coger porque cuando ejecuto estoy en el panel de vista pero claro
> no tengo niguna capa cargada. Porque no tiene sentido ya que lo que quiero
> hacer es coger puntos de una tabla que tengo con coordenadas e ir creando
> una capa con polígonos creados con esos puntos.
>
> No se si he sido claro en la explicación, si quiere algo estoy aqui.
> Gracias, no controlo las funcionalidades de las clases y tengo un lio
> enorme, atentamente Eñaut.
>
--
Cèsar Ordiñana Navarro
gvSIG software architect
DiSiD Technologies (http://www.disid.com)
Más información sobre la lista de distribución gvSIG_desarrolladores