<span class="fnt112" id="outputNode"><strong><font color="#7f0055" size="2"><font color="#7f0055" size="2">
<p>Hola,<br />
<br />
Lo que hago es cargar una capa por codigo. A&nbsp;esta capa, si le paso el geoproceso por la interfaz, todo funciona bien. Es cuando lo hago por c&oacute;digo que parece no hacer nada. El c&oacute;digo&nbsp;donde intento hacer el geoproceso es:&nbsp;<br />
<strong><font color="#7f0055" size="2"><font color="#7f0055" size="2"></font></font><font size="1"><strong><font color="#7f0055"><font color="#7f0055"><br />
void</font></font><font size="1"> execute(String actionCommand) {</font></strong></font></strong></p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p align="left"><font size="1">public</font></p>
<p align="left"><font size="1"></font></p>
<p align="left"><font size="1">com.iver.andami.ui.mdiManager.IWindow view = PluginServices.<em>getMDIManager</em>().getActiveWindow();</font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//el <u>geoproceso</u> solo <u>se</u> <u>puede</u> <u>usar</u> <u>si</u> <u>estamos</u> <u>en</u> <u>una</u> vista</font></font></font> </p>
<p align="left"><strong><font color="#7f0055"><font color="#7f0055"><font size="1">if</font></font></font><font size="1">(view <strong><font color="#7f0055"><font color="#7f0055">instanceof</font></font><font size="1"> View)</font></strong></font></strong></p>
<p align="left"><font size="1">{</font></p>
<p align="left"><font size="1">View vista=(View)view; </font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//IProjectView model = vista.getModel();</font></font></font> </p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//MapContext <u>mapa</u> = model.getMapContext();</font></font></font> </p>
<p align="left"><font size="1">MapControl mapCtrl = vista.getMapControl();</font></p>
<p align="left"><font size="1">CargadorCapas cargador = <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> CargadorCapas();</font></strong></font></p>
<p align="left"><font size="1">JOptionPane.<em>showMessageDialog</em>(<strong><font color="#7f0055"><font color="#7f0055">null</font></font><font size="1">, <font color="#2a00ff"><font color="#2a00ff">&quot;Esto es una vista&quot;</font></font>);</font></strong></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>cargar</u> <u>capa</u> <u>de</u> <u>la</u> <u>bbdd</u>-&gt;<u>bien</u></font></font></font> </p>
<p align="left"><font size="1">FLyrVect capa = cargador.cargarTabla(<font color="#2a00ff"><font color="#2a00ff">&quot;emisiones&quot;</font></font>, 0, mapCtrl, vista);<font color="#3f7f5f"><font color="#3f7f5f">//<u>la</u> <u>capa</u> <u>en</u> <u>la</u> <u>que</u> <u>leo</u> <u>la</u> <u>bbdd</u></font></font></font> </p>
<p align="left">&nbsp;</p>
<p align="left"><font color="#3f5fbf"><font color="#3f5fbf"><font size="1">/*****************************************************/</font></font></font> </p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>copiamos</u> <u>la</u> <u>capa</u> original <u>en</u> <u>otra</u> <u>para</u> <u>aplicarle</u> el <u>geoproceso</u> y <u>le</u> <u>cambiamos</u> el <u>nombre</u> <u>para</u> <u>diferenciarlas</u></font></font></font> </p>
<p align="left"><font size="1">FLyrVect inputLayer = <strong><font color="#7f0055"><font color="#7f0055">null</font></font><font size="1">;</font></strong></font></p>
<p align="left"><strong><font color="#7f0055"><font color="#7f0055"><font size="1">try</font></font></font><font size="1">{</font></strong></p>
<p align="left"><font size="1">inputLayer = (FLyrVect)capa.cloneLayer();<font color="#3f7f5f"><font color="#3f7f5f">//(FLyrVect) newLayer(&quot;parcelas.shp&quot;, SHP_DRIVER_NAME);</font></font></font> </p>
<p align="left"><font size="1">inputLayer.setName(<font color="#2a00ff"><font color="#2a00ff">&quot;emisionesGB&quot;</font></font>);</font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>fichero</u> <u>de</u> <u>salida</u> <u>del</u> <u>geoproceso</u></font></font></font> </p>
<p align="left"><font size="1">File outputFile = <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> File(<font color="#2a00ff"><font color="#2a00ff">&quot;buffer1275732458594.shp&quot;</font></font>);</font></strong></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>un</u> <u>nuevo</u> <u>geopreceso</u> <u>con</u> <u>la</u> <u>capa</u> <u>que</u> <u>queremos</u> <u>cambiar</u></font></font></font> </p>
<p align="left"><font size="1">BufferGeoprocess geoprocess = <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> BufferGeoprocess(inputLayer);</font></strong></font></p>
<p align="left"><font size="1"></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>parametros</u> <u>del</u> <u>geoproceso</u>, <u>de</u> BufferTest.java</font></font></font> </p>
<p align="left"><font size="1"><u>HashMap</u> params = <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> <u>HashMap</u>();</font></strong></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//buffer all features (onlySelection = false)</font></font></font> </p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//buffer distance = 10m, buffer type = outside, number of radial polygons = 1</font></font></font> </p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;layer_selection&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Boolean(<strong><font color="#7f0055"><font color="#7f0055">true</font></font><font size="1">))</font></strong></font></strong></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;dissolve_buffers&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Boolean(<strong><font color="#7f0055"><font color="#7f0055">false</font></font><font size="1">))</font></strong></font></strong></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;buffer_distance&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Double(1000))</font></strong></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;strategy_flag&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Byte(BufferGeoprocess.<em><font color="#0000c0"><font color="#0000c0">ATTRIBUTE_DISTANCE_STRATEGY</font></font><font size="1">))</font></em></font></strong></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;numRings&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Integer(3))</font></strong></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;typePolBuffer&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Byte(BufferVisitor.<em><font color="#0000c0"><font color="#0000c0">BUFFER_OUTSIDE_POLY</font></font><font size="1">))</font></em></font></strong></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;cap&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Byte(BufferVisitor.<em><font color="#0000c0"><font color="#0000c0">CAP_ROUND</font></font><font size="1">))</font></em></font></strong></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;projection&quot;</font></font>, <em><font color="#0000c0"><font color="#0000c0">PROJECTION_DEFAULT</font></font><font size="1">)</font></em></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;distanceunits&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Integer(100))</font></strong></font></u><font size="1">;</font></p>
<p align="left"><u><font size="1">params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;mapunits&quot;</font></font>, <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> Integer(100))</font></strong></font></u><font size="1">;</font></p>
<p align="left"><font size="1"><u>params.put(<font color="#2a00ff"><font color="#2a00ff">&quot;attr_name&quot;</font></font>, <font color="#2a00ff"><font color="#2a00ff">&quot;cantidadcontaminate&quot;</font></font>)</u>;</font></p>
<p align="left"><font size="1">geoprocess.setParameters(params);</font></p>
<p align="left"><font size="1"></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>capa</u> <u>de</u> <u>salida</u>, <u>de</u> BufferTest.java</font></font></font> </p>
<p align="left"><font size="1">SHPLayerDefinition definition = (SHPLayerDefinition) geoprocess.createLayerDefinition();</font></p>
<p align="left"><font size="1">definition.setFile(outputFile);</font></p>
<p align="left"><font size="1">ShpSchemaManager schemaManager = <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> ShpSchemaManager(outputFile.getAbsolutePath());</font></strong></font></p>
<p align="left"><font size="1">IWriter writer = <strong><font color="#7f0055"><font color="#7f0055">null</font></font><font size="1">;</font></strong></font></p>
<p align="left"><strong><font color="#7f0055"><font color="#7f0055"><font size="1">int</font></font></font><font size="1"> shapeType = definition.getShapeType();</font></strong></p>
<p align="left"><strong><font color="#7f0055"><font color="#7f0055"><font size="1">if</font></font></font><font size="1">(shapeType != XTypes.<em><font color="#0000c0"><font color="#0000c0">MULTI</font></font><font size="1">){</font></em></font></strong></p>
<p align="left"><font size="1">writer = <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> ShpWriter();</font></strong></font></p>
<p align="left"><font size="1">((ShpWriter) writer).setFile(definition.getFile());</font></p>
<p align="left"><font size="1">writer.initialize(definition);</font></p>
<p align="left"><font size="1">}<strong><font color="#7f0055"><font color="#7f0055">else</font></font><font size="1">{</font></strong></font></p>
<p align="left"><font size="1">writer = <strong><font color="#7f0055"><font color="#7f0055">new</font></font><font size="1"> MultiShpWriter();</font></strong></font></p>
<p align="left"><font size="1">((MultiShpWriter) writer).setFile(definition.getFile());</font></p>
<p align="left"><font size="1">writer.initialize(definition);</font></p>
<p align="left"><font size="1">}</font></p>
<p align="left"><font size="1">geoprocess.setResultLayerProperties(writer, schemaManager);</font></p>
<p align="left"><font size="1"></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>se</u> <u>comprueba</u> <u>que</u> <u>los</u> <u>parametros</u> <u>est&aacute;n</u> <u>bien</u></font></font></font> </p>
<p align="left"><font size="1">geoprocess.checkPreconditions();</font></p>
<p align="left"><font size="1">System.<em><font color="#0000c0"><font color="#0000c0">out</font></font><font size="1">.println(<font color="#2a00ff"><font color="#2a00ff">&quot;Inicio geoproceso....&quot;</font></font>);</font></em></font></p>
<p align="left"><font size="1">geoprocess.process();</font></p>
<p align="left"><font size="1">System.<em><font color="#0000c0"><font color="#0000c0">out</font></font><font size="1">.println(<font color="#2a00ff"><font color="#2a00ff">&quot;Fin geoproceso&quot;</font></font>);</font></em></font></p>
<p align="left"><font color="#3f5fbf"><font color="#3f5fbf"><font size="1">/*****************************************************/</font></font></font> </p>
<p align="left"><font size="1">}<strong><font color="#7f0055"><font color="#7f0055">catch</font></font><font size="1"> (Exception e) {</font></strong></font></p>
<p align="left"><font size="1">String error = PluginServices.<em>getText</em>(<strong><font color="#7f0055"><font color="#7f0055">this</font></font><font size="1">, <font color="#2a00ff"><font color="#2a00ff">&quot;!!!!Error_ejecucion&quot;</font></font>);</font></strong></font></p>
<p align="left"><font size="1">String errorDescription = PluginServices.<em>getText</em>(<strong><font color="#7f0055"><font color="#7f0055">this</font></font><font size="1">, <font color="#2a00ff"><font color="#2a00ff">&quot;Error_fallo_geoproceso&quot;</font></font>);</font></strong></font></p>
<p align="left"><font size="1">System.<em><font color="#0000c0"><font color="#0000c0">out</font></font><font size="1">.println(error + <font color="#2a00ff"><font color="#2a00ff">&quot;: &quot;</font></font> + errorDescription);</font></em></font></p>
<p align="left"><font size="1">}</font></p>
<p align="left"><font size="1"></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>mostramos</u> <u>las</u> <u>capas</u></font></font></font> </p>
<p align="left"><strong><font color="#7f0055"><font color="#7f0055"><font size="1">if</font></font></font><font size="1"> (inputLayer!= <strong><font color="#7f0055"><font color="#7f0055">null</font></font><font size="1">) {</font></strong></font></strong></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>pinto</u> <u>la</u> <u>capa</u> <u>del</u> <u>geoproceso</u></font></font></font> </p>
<p align="left"><font size="1">inputLayer.setVisible(<strong><font color="#7f0055"><font color="#7f0055">true</font></font><font size="1">);</font></strong></font></p>
<p align="left"><font size="1">vista.getMapControl().getMapContext().beginAtomicEvent();</font></p>
<p align="left"><font size="1">vista.getMapControl().getMapContext().getLayers().addLayer(inputLayer);</font></p>
<p align="left"><font size="1">vista.getMapControl().getMapContext().endAtomicEvent();</font></p>
<p align="left"><font size="1"></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//<u>pinto</u> <u>la</u> <u>capa</u> original </font></font></font></p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//capa.setVisible(true);</font></font></font> </p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//vista.getMapControl().getMapContext().beginAtomicEvent();</font></font></font> </p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//vista.getMapControl().getMapContext().getLayers().addLayer(<u>capa</u>);</font></font></font> </p>
<p align="left"><font color="#3f7f5f"><font color="#3f7f5f"><font size="1">//vista.getMapControl().getMapContext().endAtomicEvent();</font></font></font> </p>
<p align="left"><font size="1">}</font></p>
<p align="left"><font size="1">}</font></p>
<p align="left"><strong><font color="#7f0055"><font color="#7f0055"><font size="1">else</font></font></font> </strong>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</p>
<p align="left"><font size="1">{</font></p>
<p align="left"><font size="1">JOptionPane.<em>showMessageDialog</em>(<strong><font color="#7f0055"><font color="#7f0055">null</font></font><font size="1">, <font color="#2a00ff"><font color="#2a00ff">&quot;Esto no es una vista&quot;</font></font>); </font></strong></font></p>
<p align="left"><font size="1">}</font></p>
</blockquote>
<p dir="ltr"><font size="1">}<br />
<br />
<font size="2">Pero&nbsp;no se si estoy llamando bien al geoproceso. Puede que lo atributos del geoprocesso no sean correctos&nbsp;aunque los&nbsp;he estado cambiando a ver que hace y nunca hace nada. Sin embargo, no da ningun mensaje de error ni excepciones.<br />
<br />
</font><font size="2">Un saludo</font><br />
</font><font size="2"><br />
</font></p>
</font></font></strong></span>