[Gvsig_desarrolladores] Error al ejecutar Geoproceso
raisel
rcastellanos en habana.geocuba.cu
Mar Oct 26 15:32:21 CEST 2010
Hola a todos
Estoy tratando de ejecutar un geoproceso utilizando la clase
BufferGeoprocess de gvSIG pero me esta saliendo este error y no se por que:
java.lang.NullPointerException
at
com.iver.cit.gvsig.fmap.operations.strategies.DefaultStrategy.process(DefaultStrategy.java:393)
at
com.iver.cit.gvsig.geoprocess.impl.buffer.fmap.BufferGeoprocess.computeOnlyBuffers(BufferGeoprocess.java:360)
at
com.iver.cit.gvsig.geoprocess.impl.buffer.fmap.BufferGeoprocess.access$8(BufferGeoprocess.java:350)
at
com.iver.cit.gvsig.geoprocess.impl.buffer.fmap.BufferGeoprocess$1.run(BufferGeoprocess.java:607)
at
com.iver.cit.gvsig.geoprocess.impl.buffer.fmap.BufferGeoprocess.process(BufferGeoprocess.java:303)
Este es mi código, espero puedan ayudarme; y gracias de antemano:
com.iver.andami.ui.mdiManager.IWindow view =
PluginServices.getMDIManager().getActiveWindow();
if(view instanceof View)
{
View vista=(View)view;
MapControl mapCtrl = vista.getMapControl();
CargadorCapas cargador = new CargadorCapas();
FLyrVect capa = cargador.cargarTabla("a_hidlineal", "Hidrografia", 0,
mapCtrl, vista,
"jdbc:postgresql://localhost:5432/Baracoa","postgres","postgres");
FLyrVect inputLayer = null;
try{
inputLayer = (FLyrVect)capa.cloneLayer();
inputLayer.setName("HidrografiaGEOP");
File outputFile = new File("buffer.shp");
BufferGeoprocess geoprocess = new BufferGeoprocess(inputLayer);
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("layer_selection", new Boolean(false));
params.put("dissolve_buffers", new Boolean(false));
params.put("buffer_distance", new Double(1000));
params.put("strategy_flag", new
Byte(BufferGeoprocess.ATTRIBUTE_DISTANCE_STRATEGY));
params.put("numRings", new Integer(1));
params.put("typePolBuffer", new Byte(BufferVisitor.BUFFER_OUTSIDE_POLY));
params.put("cap", new Byte(BufferVisitor.CAP_SQUARE));
params.put("projection", capa.getProjection());
params.put("distanceunits", new Integer(100));
params.put("mapunits", new Integer(100));
params.put("attr_name", "cantidadcontaminate");
geoprocess.setParameters(params);
SHPLayerDefinition definition = (SHPLayerDefinition)
geoprocess.createLayerDefinition();
definition.setFile(outputFile);
ShpSchemaManager schemaManager = new
ShpSchemaManager(outputFile.getAbsolutePath());
IWriter writer = null;
int shapeType = definition.getShapeType();
if(shapeType != XTypes.MULTI){
writer = new ShpWriter();
((ShpWriter) writer).setFile(definition.getFile());
writer.initialize(definition);
}
else{
writer = new MultiShpWriter();
((MultiShpWriter) writer).setFile(definition.getFile());
writer.initialize(definition);
}
geoprocess.setResultLayerProperties(writer, schemaManager);
geoprocess.checkPreconditions();
System.out.println("Inicio geoproceso....");
geoprocess.process();
System.out.println("Fin geoproceso");
}catch (Exception e) {
e.printStackTrace();
}
//mostramos las capas
if (inputLayer!= null) {
inputLayer.setVisible(true);
vista.getMapControl().getMapContext().beginAtomicEvent();
vista.getMapControl().getMapContext().getLayers().addLayer(inputLayer);
vista.getMapControl().getMapContext().endAtomicEvent();
}
}
else
JOptionPane.showMessageDialog(null, "Esto no es una vista");
}
Saludos, Raisel
--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Error-al-ejecutar-Geoproceso-tp5674608p5674608.html
Sent from the gvSIG desarrolladores mailing list archive at Nabble.com.
Más información sobre la lista de distribución gvSIG_desarrolladores