Hola Rafael.<div><br></div><div>Justo le acabo de responder a Laura, que me ha preguntado por esto....qué casualidad!!.</div><div><br></div><div>Imagino que ella te lo responderá por otra vía, pero ya que estoy...</div><div>
Prueba a poner &quot;false&quot; en este parámetro:</div><div><br></div><div><br></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><strong><font color="#7f0055" size="2"><font color="#7f0055" size="2"><blockquote dir="ltr" style="margin-right: 0px; ">
<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"><font size="1"><br></font></p><p align="left"><font size="1">Si lo dejas a true, le dices que haga el buffer sobre los elementos seleccionados, y si no hay selección =&gt; capa vacía.</font></p><p align="left">
<span class="Apple-style-span" style="font-size: x-small;">Casi seguro que es eso.</span></p><p align="left"><span class="Apple-style-span" style="font-size: x-small;"><br></span></p><p align="left"><span class="Apple-style-span" style="font-size: x-small;">Saludos.</span></p>
<p align="left"><span class="Apple-style-span" style="font-size: x-small;">Fran.</span></p><p align="left"><span class="Apple-style-span" style="font-size: x-small;"><br></span></p><p align="left"><span class="Apple-style-span" style="font-size: x-small;">PS: Saludos a Laura cuando la veas. :-)</span></p>
<p align="left"><span class="Apple-style-span" style="font-size: x-small;"><br></span></p></blockquote></font></font></strong></span><br><div class="gmail_quote">El 5 de junio de 2010 13:30, Rafael Cortes Coleman <span dir="ltr">&lt;<a href="mailto:rcortesc@uoc.edu">rcortesc@uoc.edu</a>&gt;</span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><span><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 esta capa, si le paso el geoproceso por la interfaz, todo funciona bien. Es cuando lo hago por código que parece no hacer nada. El código donde intento hacer el geoproceso es: <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"> </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á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><p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<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 no se si estoy llamando bien al geoproceso. Puede que lo atributos del geoprocesso no sean correctos aunque los 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>
<br>_______________________________________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es">gvSIG_desarrolladores@listserv.gva.es</a><br>
<a href="http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" target="_blank">http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Francisco José Peñarrubia<br><br>Equipo gvSIG<br>Software Colaborativo<br>
</div>