/*
Title: i3geo/classesjs/wscliente.js
Classe javascript da aplicação de consulta de web services.
Lê o conjunto de javascripts para o funcionamento da interface wscliente.htm
File: i3geo/classesjs/wscliente.js
Esse programa possuí as seguintes dependências:
i3geo/pacotes/cpaint/cpaint2.inc.compressed.js
i3geo/pacotes/openlayers/OpenLayers.js
i3geo/classesjs/compactados/funcoes_compacto.js
As dependências são carregadas pelo próprio geradordelinks.js, não sendo necessário incluir no HTML.
About: Licença
I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
Este programa é software livre; você pode redistribuí-lo
e/ou modificá-lo sob os termos da Licença Pública Geral
GNU conforme publicada pela Free Software Foundation;
tanto a versão 2 da Licença.
Este programa é distribuído na expectativa de que seja útil,
porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
Consulte a Licença Pública Geral do GNU para mais detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral do
GNU junto com este programa; se não, escreva para a
Free Software Foundation, Inc., no endereço
59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
Veja:
"
var ii = "onmouseover='javascript:this.style.textDecoration=\"underline\"' onmouseout='javascript:this.style.textDecoration=\"none\"'"
ins += " Ajuda
";
ins += i+"Web Services
";
ins += i+"Padrões OGC
";
ins += i+"WS cartográfico
";
ins += ""
ins += " Mapas
"
ins += i+"Escolher serviço
";
ins += i+"Escolher um tema
";
ins += i+"Resposta XML (WMS)
";
ins += i+"Resposta XML (WFS)
";
ins += " Dados
";
ins += i+"Escolher serviço
";
ins += i+"Escolher função
";
ins += i+"WSDL
";
ins += " RSS
";
ins += i+"Dados
";
ins += i+"Mapas
";
$i("arvoreMenu").innerHTML = ins;
/*
pega parametros pela url
servico,tema
*/
parametros = "";
parServico = "";
parTema = "";
parTipo = "";
parametros = window.location.href.split("?");
if (parametros.length > 1)
{
valores = parametros[1].split(",");
if (valores.length == 2)
{
i3geo_wscliente_WCservico = valores[1];
if (parametros.length==3)
{i3geo_wscliente_WCservico += "?"+parametros[2];}
if (valores[0] == "wms")
{
$i(this.enderecowms).value = nome
i3geo_wscliente_listatemas()
}
}
}
}
/*
Function: ativa
Ativa uma opção mostrando o seu respectivo texto no navegador. É utilizado nas opções que apresentam textos explicativos.
O conteúdo do div (id) é lido e incluído na div corpo
Por padrão, os conteúdos devem ser incluídos em DIVS com os seguintes ids- oquews oqueogc oquecarto
Parâmetros:
id - id do div com o conteúdo que será ativado
*/
this.ativa = function (id)
{
var novo = document.getElementById(id)
$i(this.corpo).innerHTML = novo.innerHTML
}
/*
Function: listaLinkServicos
Mostra links que permitem ao usuário abrir os RSSs cadastrados para determinado serviço.
Parameters:
tipo - ws/wms
*/
this.listaLinkServicos = function(tipo)
{
if (tipo == ("ws"))
{var lista = this.rssws}
else
{var lista = this.rsswms}
for (i=0;i "+lista[i]+"
"+caso[0]+" "+caso[1]+" ("+caso[3]+")" if (caso[4]) {ins += " (disponibilidade: "+parseInt(caso[4])+"%, dias considerados: "+caso[5]+")
";} else {ins += ""} } else {{ins += ""}} } } $i("resultadoRSSwms").innerHTML = ins $i($i3geo_wscliente.corpo).style.display="none" $i("RSSws").style.display="none" $i("RSSwms").style.display="block" aguardeTotal("none"); } if ($i("RSSwms")) { aguardeTotal("block"); var p = this.loc_i3geo+"/classesphp/wscliente.php?funcao=listaRSSws&rss="+this.rsswms.join("|")+"&g_sid="; var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(p,"listaRSSws",mostraRetornowmsRSS); } } /* Function: getcapabilities Executa ajax para buscar resultado do getcapabilities. Parâmetros: tipo - tipo de chamada WMS|WFS */ this.getcapabilities = function(tipo) { $i("RSSws").style.display="none" $i("RSSwms").style.display="none" $i($i3geo_wscliente.corpo).style.display="block" var monta = function (retorno) { aguardeTotal("none"); $i($i3geo_wscliente.corpo).innerHTML = ""+retorno.data+"
Nenhum serviço foi escolhido.
" } /* Function: listatemas Busca a lista de temas de um WMS ou WFS */ this.listatemas = function() { var WCservico = $i(this.enderecowms).value var WCmostraTemas = function(retorno) { aguardeTotal("none"); document.cookie = 'i3GeoPHP=; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/'; var ins = "Selecione a camada que será adicionada ao mapa e depois clique em Aplicar.
"+retorno.data+"
Nenhum serviço foi escolhido.
"} aguardeTotal("block"); var p = this.loc_i3geo+"/classesphp/mapa_controle.php?map_file=''&funcao=temaswms&servico="+WCservico+"&g_sid=" var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(p,"temaswms",WCmostraTemas); } /* Function: verMapa Mostra o mapa */ this.verMapa = function() { var WCservico = $i(this.enderecowms).value var epsg = $i("proj").value.split(",") var epsg = epsg[0] var epsg = epsg.split(":") var epsg = epsg[1] $i(this.corpo).innerHTML = "" var map = new OpenLayers.Map('i3geo_wscliente_id_mapa'); var bounds = new OpenLayers.Bounds(-73,5,-27,-34); if (this.tipo != "estilo") {var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",WCservico, {layers: this.tema, srs: epsg} );} else { var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",WCservico, {layers: this.tema, styles: this.nometema, srs: epsg}); } map.addLayer(wms); map.zoomToExtent(bounds); map.events.register("mousemove", map, function(e) { //pega as coordenadas do cursor if(e.xy) {var p = e.xy;} else {var p = new OpenLayers.Pixel(e.x,e.y);} //altera o indicador de localizacao var lonlat = map.getLonLatFromViewPortPx(p); var d = convdmsf(lonlat.lon,lonlat.lat); $i("localizarxy").innerHTML = d[0]+" , "+d[1] }) map.events.register("click", map, function(e) { //pega as coordenadas do cursor if(e.xy) {var p = e.xy;} else {var p = new OpenLayers.Pixel(e.x,e.y);} //altera o indicador de localizacao var lonlat = map.getLonLatFromViewPortPx(p); var url = wms.getFullRequestString() url = url.replace("GetMap","getfeatureinfo") url += "&QUERY_LAYERS="+$i3geo_wscliente.tema var bb = map.getExtent() url += "&BBOX="+bb.toBBOX() //var xy = p.split(",") url += "&x="+p.x url += "&y="+p.y var size = map.getSize() url += "&WIDTH="+size.w url += "&HEIGHT="+size.h $i("desc").src = url }) } /* Function: i3geo_wscliente_listafuncoes Busca a lista de funções de um WS */ this.listafuncoes = function() { var WCmostraFuncoes = function(retorno) { aguardeTotal("none"); var ins = "Selecione a função que será acionada depois clique em Aplicar.
"
ins += '
Nenhum serviço foi escolhido.
" } /* Function: i3geo_wscliente_selParFuncao Lista os parâmetros de uma função para o usuário digitar os valores. Parâmetros: funcao - função que será chamada */ this.selParFuncao = function(funcao) { var WCmostraParFuncoes = function (retorno) { aguardeTotal("none"); if (retorno.data == ""){$i3geo_wscliente.chamadados(retorno.data)} else { var pars = retorno.data.split("|") var ins = "Digite os valores dos parâmetros e depois em clique em 'Aplicar'.
"
ins += '
'
ins += '