Hola Alejandro, <br><br>El proxyHost de OL sirve como "puente" para evitar los problemas de cross domain del navegador. Puedes usar el cgi de python que tiene el OL o montarte un proxy con php, java, etc. <br><br>
Este es el proxy.php de mapbuilder. <a href="http://docs.codehaus.org/display/MAP/Downloads">http://docs.codehaus.org/display/MAP/Downloads</a><br><br><?php<br>/*<br>License: LGPL as per: <a href="http://www.gnu.org/copyleft/lesser.html">http://www.gnu.org/copyleft/lesser.html</a><br>
$Id: proxy.php 3650 2007-11-28 00:26:06Z rdewit $<br>$Name$<br>*/<br><br>////////////////////////////////////////////////////////////////////////////////<br>// Description:<br>// Script to redirect the request <a href="http://host/proxy.php?url=http://someUrl">http://host/proxy.php?url=http://someUrl</a><br>
// to <a href="http://someUrl">http://someUrl</a> .<br>//<br>// This script can be used to circumvent javascript's security requirements<br>// which prevent a URL from an external web site being called.<br>//<br>// Author: Nedjo Rogers<br>
////////////////////////////////////////////////////////////////////////////////<br><br>// read in the variables<br><br>if(array_key_exists('HTTP_SERVERURL', $_SERVER)){ <br> $onlineresource=$_SERVER['HTTP_SERVERURL']; <br>
}else{ <br> $onlineresource=$_REQUEST['url']; <br>}<br>$parsed = parse_url($onlineresource);<br>$host = @$parsed["host"];<br>$path = @$parsed["path"] . "?" . @$parsed["query"];<br>
if(empty($host)) {<br> $host = "localhost";<br>}<br>$port = @$parsed['port'];<br>if(empty($port)){<br> $port="80";<br>}<br>$contenttype = @$_REQUEST['contenttype'];<br>if(empty($contenttype)) {<br>
$contenttype = "text/xml";<br>}<br>$data = @$GLOBALS["HTTP_RAW_POST_DATA"];<br>// define content type<br>header("Content-type: " . $contenttype);<br><br>if(empty($data)) {<br> $result = send_request();<br>
}<br>else {<br> // post XML<br> $posting = new HTTP_Client($host, $port, $data);<br> $posting->set_path($path);<br> $result = $posting->send_request();<br>}<br><br>// strip leading text from result and output result<br>
$len=strlen($result);<br>$pos = strpos($result, "<");<br>if($pos > 1) {<br> $result = substr($result, $pos, $len);<br>}<br>//$result = str_replace("xlink:","",$result);<br>echo $result;<br>
<br>// define class with functions to open socket and post XML<br>// from <a href="http://www.phpbuilder.com/annotate/message.php3?id=1013274">http://www.phpbuilder.com/annotate/message.php3?id=1013274</a> by Richard Hundt<br>
<br>class HTTP_Client { <br> var $host; <br> var $path;<br> var $port; <br> var $data; <br> var $socket; <br> var $errno; <br> var $errstr; <br> var $timeout; <br> var $buf; <br> var $result; <br> var $agent_name = "MyAgent"; <br>
//Constructor, timeout 30s <br> function HTTP_Client($host, $port, $data, $timeout = 30) { <br> $this->host = $host; <br> $this->port = $port;<br> $this->data = $data;<br> $this->timeout = $timeout; <br>
} <br> <br> //Opens a connection <br> function connect() { <br> $this->socket = fsockopen($this->host, <br> $this->port, <br> $this->errno, <br> $this->errstr, <br> $this->timeout <br>
); <br> if(!$this->socket) <br> return false; <br> else <br> return true; <br> } <br> <br> //Set the path <br> function set_path($path) { <br> $this->path = $path; <br> } <br> <br> //Send request and clean up <br>
function send_request() { <br> if(!$this->connect()) { <br> return false; <br> } <br> else { <br> $this->result = $this->request($this->data);<br> return $this->result; <br> } <br>
} <br> <br> function request($data) { <br> $this->buf = ""; <br> fwrite($this->socket, <br> "POST $this->path HTTP/1.0\r\n". <br> "Host:$this->host\r\n". <br> "User-Agent: $this->agent_name\r\n". <br>
"Content-Type: application/xml\r\n". <br> "Content-Length: ".strlen($data). <br> "\r\n". <br> "\r\n".$data. <br> "\r\n" <br> ); <br> <br> while(!feof($this->socket)) <br>
$this->buf .= fgets($this->socket, 2048); <br> $this->close(); <br> return $this->buf; <br> } <br> <br> <br> function close() {<br> fclose($this->socket);<br> } <br>} <br><br><br><br>
function send_request() {<br> global $onlineresource;<br> $ch = curl_init();<br> $timeout = 5; // set to zero for no timeout<br><br> // fix to allow HTTPS connections with incorrect certificates<br> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);<br>
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);<br><br> curl_setopt ($ch, CURLOPT_URL,$onlineresource);<br> curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);<br> curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);<br> curl_setopt ($ch, CURLOPT_ENCODING , "gzip, deflate");<br>
<br> $file_contents = curl_exec($ch);<br> curl_close($ch);<br> $lines = array();<br> $lines = explode("\n", $file_contents);<br> if(!($response = $lines)) {<br> echo "Unable to retrieve file '$service_request'";<br>
}<br> $response = implode("",$response);<br> return $response;<br>}<br>?> <br><br>Este es uno en jsp <a href="https://github.com/chrismayer/JSP-Whitelist-Proxy">https://github.com/chrismayer/JSP-Whitelist-Proxy</a><br>
<br><div class="highlight"><pre><div class="line" id="LC1"><span class="k"><%@</span><span class="n">page</span> <span class="n">session</span><span class="o">=</span><span class="s">"false"</span><span class="k">%></span></div>
<div class="line" id="LC2"><span class="k"><%@</span><span class="n">page</span> <span class="n">import</span><span class="o">=</span><span class="s">"java.net.*,java.io.*"</span> <span class="k">%></span></div>
<div class="line" id="LC3"><span class="k"><%@</span><span class="n">page</span> <span class="n">trimDirectiveWhitespaces</span><span class="o">=</span><span class="s">"true"</span><span class="k">%></span> </div>
<div class="line" id="LC4"><span class="k"><%</span></div><div class="line" id="LC5"><br></div><div class="line" id="LC6"><span class="cm">/**</span></div><div class="line" id="LC7"><span class="cm"> * This is a white list proxy that could be used the prevent an error due to </span></div>
<div class="line" id="LC8"><span class="cm"> * JavaScript Same Origin Policy.</span></div><div class="line" id="LC9"><span class="cm"> * </span></div><div class="line" id="LC10"><span class="cm"> * CAUTION: It might break some sites and it's a security risk because</span></div>
<div class="line" id="LC11"><span class="cm"> * people can use this proxy to browse the web and possibly do bad and/or illegal stuff</span></div><div class="line" id="LC12"><span class="cm"> * with it. </span></div><div class="line" id="LC13">
<span class="cm"> * It can load any content type.</span></div><div class="line" id="LC14"><span class="cm"> * This proxy implementation was inspired by the proxy.cgi script of OpenLayers</span></div><div class="line" id="LC15">
<span class="cm"> * {@link <a href="http://openlayers.org">http://openlayers.org</a>}</span></div><div class="line" id="LC16"><span class="cm"> * To use this in OpenLayers you have to set OpenLayers.ProxyHost = "Url/To/This/Proxyfile/proxy.jsp?";</span></div>
<div class="line" id="LC17"><span class="cm"> * within your JavaScript code <br></span></div><div class="line" id="LC18"><span class="cm"> * The base code of the proxy has been provided by SNIPPLR</span></div><div class="line" id="LC19">
<span class="cm"> * {@link <a href="http://snipplr.com/view/17987/jsp-proxy-for-javascript-applications/">http://snipplr.com/view/17987/jsp-proxy-for-javascript-applications/</a>}</span></div><div class="line" id="LC20"><span class="cm"> * </span></div>
<div class="line" id="LC21"><span class="cm"> * @author terrestris GmbH & Co. KG</span></div><div class="line" id="LC22"><span class="cm"> * @author Christian Mayer</span></div><div class="line" id="LC23"><span class="cm"> * @author Marc Jansen</span></div>
<div class="line" id="LC24"><span class="cm"> * </span></div><div class="line" id="LC25"><span class="cm"> * @license BSD see license.txt</span></div><div class="line" id="LC26"><span class="cm"> * </span></div><div class="line" id="LC27">
<span class="cm"> */</span></div><div class="line" id="LC28"><span class="n">String</span><span class="o">[]</span> <span class="n">allowedHosts</span> <span class="o">=</span> <span class="o">{</span></div><div class="line" id="LC29">
<span class="s">"<a href="http://www.openlayers.org">www.openlayers.org</a>"</span><span class="o">,</span> <span class="s">"<a href="http://openlayers.org">openlayers.org</a>"</span><span class="o">,</span> </div>
<div class="line" id="LC30"> <span class="s">"<a href="http://labs.metacarta.com">labs.metacarta.com</a>"</span><span class="o">,</span> <span class="s">"<a href="http://world.freemap.in">world.freemap.in</a>"</span><span class="o">,</span> </div>
<div class="line" id="LC31"> <span class="s">"<a href="http://prototype.openmnnd.org">prototype.openmnnd.org</a>"</span><span class="o">,</span> <span class="s">"<a href="http://geo.openplans.org">geo.openplans.org</a>"</span><span class="o">,</span></div>
<div class="line" id="LC32"> <span class="s">"<a href="http://sigma.openplans.org">sigma.openplans.org</a>"</span><span class="o">,</span> <span class="s">"<a href="http://demo.opengeo.org">demo.opengeo.org</a>"</span><span class="o">,</span></div>
<div class="line" id="LC33"> <span class="s">"<a href="http://www.openstreetmap.org">www.openstreetmap.org</a>"</span><span class="o">,</span> <span class="s">"<a href="http://sample.azavea.com">sample.azavea.com</a>"</span><span class="o">,</span></div>
<div class="line" id="LC34"> <span class="s">"<a href="http://v-swe.uni-muenster.de:8080">v-swe.uni-muenster.de:8080</a>"</span><span class="o">,</span> </div><div class="line" id="LC35"> <span class="s">"<a href="http://vmap0.tiles.osgeo.org">vmap0.tiles.osgeo.org</a>"</span></div>
<div class="line" id="LC36"><span class="o">};</span></div><div class="line" id="LC37"><span class="n">HttpURLConnection</span> <span class="n">con</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span></div>
<div class="line" id="LC38"><span class="k">try</span> <span class="o">{</span></div><div class="line" id="LC39">        <span class="n">String</span> <span class="n">reqUrl</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="na">getQueryString</span><span class="o">();</span></div>
<div class="line" id="LC40">        <span class="n">String</span> <span class="n">decodedUrl</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span></div><div class="line" id="LC41">        <span class="k">if</span> <span class="o">(</span><span class="n">reqUrl</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span></div>
<div class="line" id="LC42">                <span class="n">reqUrl</span> <span class="o">=</span> <span class="n">URLDecoder</span><span class="o">.</span><span class="na">decode</span><span class="o">(</span><span class="n">reqUrl</span><span class="o">,</span> <span class="s">"UTF-8"</span><span class="o">);</span></div>
<div class="line" id="LC43">        <span class="o">}</span></div><div class="line" id="LC44">        <span class="k">else</span> <span class="o">{</span></div><div class="line" id="LC45">                <span class="n">response</span><span class="o">.</span><span class="na">setStatus</span><span class="o">(</span><span class="mi">400</span><span class="o">);</span></div>
<div class="line" id="LC46">                <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"ERROR 400: No target specified for proxy."</span><span class="o">);</span></div>
<div class="line" id="LC47">        <span class="o">}</span></div><div class="line" id="LC48"><br></div><div class="line" id="LC49">        <span class="c1">// extract the host</span></div><div class="line" id="LC50">        <span class="n">String</span> <span class="n">host</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span></div>
<div class="line" id="LC51">        <span class="n">host</span> <span class="o">=</span> <span class="n">reqUrl</span><span class="o">.</span><span class="na">split</span><span class="o">(</span><span class="s">"\\/"</span><span class="o">)[</span><span class="mi">2</span><span class="o">];</span></div>
<div class="line" id="LC52">        <span class="kt">boolean</span> <span class="n">allowed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span></div><div class="line" id="LC53"><br></div><div class="line" id="LC54">
        <span class="c1">// check if host (with port) is in white list</span></div><div class="line" id="LC55">        <span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">surl</span> <span class="o">:</span> <span class="n">allowedHosts</span><span class="o">)</span> <span class="o">{</span></div>
<div class="line" id="LC56">                <span class="k">if</span> <span class="o">(</span><span class="n">host</span><span class="o">.</span><span class="na">equalsIgnoreCase</span><span class="o">(</span><span class="n">surl</span><span class="o">))</span> <span class="o">{</span></div>
<div class="line" id="LC57">                        <span class="n">allowed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span></div><div class="line" id="LC58">                        <span class="k">break</span><span class="o">;</span></div>
<div class="line" id="LC59">                <span class="o">}</span></div><div class="line" id="LC60">        <span class="o">}</span></div><div class="line" id="LC61"><br></div><div class="line" id="LC62">        <span class="c1">// do the proxy action (load requested ressource and transport it to client)</span></div>
<div class="line" id="LC63">        <span class="c1">// if host is in white list</span></div><div class="line" id="LC64">        <span class="k">if</span><span class="o">(</span><span class="n">allowed</span><span class="o">)</span> <span class="o">{</span></div>
<div class="line" id="LC65">                <span class="c1">// replace the white spaces with plus in URL</span></div><div class="line" id="LC66">                <span class="n">reqUrl</span> <span class="o">=</span> <span class="n">reqUrl</span><span class="o">.</span><span class="na">replaceAll</span><span class="o">(</span><span class="s">" "</span><span class="o">,</span> <span class="s">"+"</span><span class="o">);</span> </div>
<div class="line" id="LC67"><br></div><div class="line" id="LC68">                <span class="c1">// call the requested ressource                </span></div><div class="line" id="LC69">                <span class="n">URL</span> <span class="n">url</span> <span class="o">=</span> <span class="k">new</span> <span class="n">URL</span><span class="o">(</span><span class="n">reqUrl</span><span class="o">);</span></div>
<div class="line" id="LC70">                <span class="n">con</span> <span class="o">=</span> <span class="o">(</span><span class="n">HttpURLConnection</span><span class="o">)</span><span class="n">url</span><span class="o">.</span><span class="na">openConnection</span><span class="o">();</span></div>
<div class="line" id="LC71">                <span class="n">con</span><span class="o">.</span><span class="na">setDoOutput</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span></div><div class="line" id="LC72">
                <span class="n">con</span><span class="o">.</span><span class="na">setRequestMethod</span><span class="o">(</span><span class="n">request</span><span class="o">.</span><span class="na">getMethod</span><span class="o">());</span></div>
<div class="line" id="LC73">                <span class="n">String</span> <span class="n">reqContenType</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="na">getContentType</span><span class="o">();</span></div>
<div class="line" id="LC74">                <span class="k">if</span><span class="o">(</span><span class="n">reqContenType</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span></div>
<div class="line" id="LC75">                        <span class="n">con</span><span class="o">.</span><span class="na">setRequestProperty</span><span class="o">(</span><span class="s">"Content-Type"</span><span class="o">,</span> <span class="n">reqContenType</span><span class="o">);</span></div>
<div class="line" id="LC76">                <span class="o">}</span></div><div class="line" id="LC77">                <span class="k">else</span> <span class="o">{</span></div><div class="line" id="LC78">                        <span class="n">con</span><span class="o">.</span><span class="na">setRequestProperty</span><span class="o">(</span><span class="s">"Content-Type"</span><span class="o">,</span> <span class="s">"application/x-www-form-urlencoded"</span><span class="o">);</span></div>
<div class="line" id="LC79">                <span class="o">}</span></div><div class="line" id="LC80"><br></div><div class="line" id="LC81">                <span class="kt">int</span> <span class="n">clength</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="na">getContentLength</span><span class="o">();</span></div>
<div class="line" id="LC82">                <span class="k">if</span><span class="o">(</span><span class="n">clength</span> <span class="o">></span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span></div><div class="line" id="LC83">
                        <span class="n">con</span><span class="o">.</span><span class="na">setDoInput</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span></div><div class="line" id="LC84">                        <span class="kt">byte</span><span class="o">[]</span> <span class="n">idata</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="o">[</span><span class="n">clength</span><span class="o">];</span></div>
<div class="line" id="LC85">                        <span class="n">request</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">().</span><span class="na">read</span><span class="o">(</span><span class="n">idata</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="n">clength</span><span class="o">);</span></div>
<div class="line" id="LC86">                        <span class="n">con</span><span class="o">.</span><span class="na">getOutputStream</span><span class="o">().</span><span class="na">write</span><span class="o">(</span><span class="n">idata</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="n">clength</span><span class="o">);</span>        </div>
<div class="line" id="LC87">                <span class="o">}</span></div><div class="line" id="LC88"><br></div><div class="line" id="LC89">                <span class="c1">// respond to client</span></div><div class="line" id="LC90">                <span class="n">response</span><span class="o">.</span><span class="na">setContentType</span><span class="o">(</span><span class="n">con</span><span class="o">.</span><span class="na">getContentType</span><span class="o">());</span></div>
<div class="line" id="LC91"><br></div><div class="line" id="LC92">                <span class="n">BufferedReader</span> <span class="n">rd</span> <span class="o">=</span> <span class="k">new</span> <span class="n">BufferedReader</span><span class="o">(</span><span class="k">new</span> <span class="n">InputStreamReader</span><span class="o">(</span><span class="n">con</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">()));</span></div>
<div class="line" id="LC93">                <span class="n">String</span> <span class="n">line</span><span class="o">;</span></div><div class="line" id="LC94">                <span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span></div>
<div class="line" id="LC95">                <span class="k">while</span> <span class="o">((</span><span class="n">line</span> <span class="o">=</span> <span class="n">rd</span><span class="o">.</span><span class="na">readLine</span><span class="o">())</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span></div>
<div class="line" id="LC96">                        <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">line</span><span class="o">);</span>        </div><div class="line" id="LC97">
                <span class="o">}</span></div><div class="line" id="LC98">                <span class="n">rd</span><span class="o">.</span><span class="na">close</span><span class="o">();</span></div><div class="line" id="LC99">        <span class="o">}</span></div>
<div class="line" id="LC100">        <span class="k">else</span> <span class="o">{</span></div><div class="line" id="LC101">                <span class="c1">// deny access via HTTP status code 502</span></div><div class="line" id="LC102">                <span class="n">response</span><span class="o">.</span><span class="na">setStatus</span><span class="o">(</span><span class="mi">502</span><span class="o">);</span></div>
<div class="line" id="LC103">                <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"ERROR 502: This proxy does not allow you to access that location."</span><span class="o">);</span></div>
<div class="line" id="LC104">        <span class="o">}</span></div><div class="line" id="LC105"><br></div><div class="line" id="LC106"><span class="o">}</span> <span class="k">catch</span><span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span></div>
<div class="line" id="LC107"><br></div><div class="line" id="LC108">        <span class="c1">// resond an internal server error with the stacktrace</span></div><div class="line" id="LC109">        <span class="c1">// on exception</span></div>
<div class="line" id="LC110">        <span class="n">response</span><span class="o">.</span><span class="na">setStatus</span><span class="o">(</span><span class="mi">500</span><span class="o">);</span></div><div class="line" id="LC111">
        <span class="kt">byte</span><span class="o">[]</span> <span class="n">idata</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="o">[</span><span class="mi">5000</span><span class="o">];</span></div>
<div class="line" id="LC112"><br></div><div class="line" id="LC113">        <span class="k">if</span><span class="o">(</span><span class="n">con</span><span class="o">.</span><span class="na">getErrorStream</span><span class="o">()</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span></div>
<div class="line" id="LC114">                <span class="n">con</span><span class="o">.</span><span class="na">getErrorStream</span><span class="o">().</span><span class="na">read</span><span class="o">(</span><span class="n">idata</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="mi">5000</span><span class="o">);</span></div>
<div class="line" id="LC115">        <span class="o">}</span></div><div class="line" id="LC116"><br></div><div class="line" id="LC117">        <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"ERROR 500: An internal server error occured. "</span> <span class="o">+</span> <span class="n">e</span><span class="o">.</span><span class="na">getMessage</span><span class="o">()</span> <span class="o">+</span> <span class="s">" "</span> <span class="o">+</span> <span class="k">new</span> <span class="n">String</span><span class="o">(</span><span class="n">idata</span><span class="o">));</span>        </div>
<div class="line" id="LC118"><span class="o">}</span></div><div class="line" id="LC119"><span class="k">%></span></div></pre></div><br>Saludos,<br><br>Bolo<br><br><br><div class="gmail_quote">El 19 de abril de 2012 00:52, J.Alejandro Martinez Linares <span dir="ltr"><<a href="mailto:islanis@infomed.sld.cu" target="_blank">islanis@infomed.sld.cu</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola gente alguien pudiera explicarme o mandarme alguna documentación sobre OpenLayer.ProxyHost, es que no es que es y no tengo internet pero ademas sin eso no puedo sacar info a traves de mis capas WMS , no me salen ni siquiera los mismos cortos que cojo de geoserver que como son de openlayer pero no me funcionan hay algo que no me deja verlo de forma corrrecto y si no defino un OpenLayer.ProxyHost me da el siguiente error<br>
<br>
You probably need to set OpenLayers.ProxyHost to access ${url}.See <a href="http://trac.osgeo.org/openlayers/wiki/FrequentlyAskedQuestions#ProxyHost" target="_blank">http://trac.osgeo.org/<u></u>openlayers/wiki/<u></u>FrequentlyAskedQuestions#<u></u>ProxyHost</a><br>
<br>
--<br>
<br>
Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas<br>
<br>
Infomed: <a href="http://www.sld.cu/" target="_blank">http://www.sld.cu/</a><br>
______________________________<u></u>_________________<br>
Spanish mailing list<br>
<a href="http://lists.osgeo.org/mailman/listinfo/spanish" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/spanish</a><br>
<a href="http://es.osgeo.org" target="_blank">http://es.osgeo.org</a><br>
<a href="http://twitter.com/osgeoes" target="_blank">http://twitter.com/osgeoes</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Saludos,<br><br>Bolo<br><a href="http://www.geoinquiets.cat" target="_blank">www.geoinquiets.cat</a><br><br>