/*
Title: Cliente de web service
File: wscliente.js
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.
*/
WCservico = "";
g_tipo = ""
g_tema = ""
g_proj = ""
g_legenda = ""
g_nometema = ""
g_funcao = ""
g_sid = ""
WClistaDeTemas = ""
WClistaDeFuncoes = ""
g_RSSws = new Array() //enderecos dos RSS do tipo WS
g_RSSwms = new Array() //enderecos dos RSS do tipo WMS
//seta as variáveis navn e navm
navm = false
navn = false
var app = navigator.appName.substring(0,1);
if (app=='N') navn=true; else navm=true;
/*
Function: WCinicia
Monta a árvore de opções e preenche a DIV arvore. Busca a lista de serviços, se existirem RSS cadastrados.
*/
function WCinicia()
{
arvore = new Object();
arvore = treeviewNew("arvore", "default", "arvoreMenu", null);
arvore.createItem("raiz", "Opções", g_locaplic+"/imagens/lc_group.gif", true, true, true, null);
WCcriano("ajudawc","Ajuda",g_locaplic+"/imagens/folder-s.gif","raiz","");
WCcriano("ajudawc1","Web Services",g_locaplic+"/imagens/new.gif","ajudawc","link");
WCcriano("ajudawc2","Padrões OGC",g_locaplic+"/imagens/new.gif","ajudawc","link");
WCcriano("ajudawc3","WS cartográfico",g_locaplic+"/imagens/new.gif","ajudawc","link");
WCcriano("clientewms","Mapas",g_locaplic+"/imagens/folder-s.gif","raiz","");
WCcriano("clientewms1","Escolher serviço",g_locaplic+"/imagens/new.gif","clientewms","link");
WCcriano("clientewms4","Escolher um tema",g_locaplic+"/imagens/new.gif","clientewms","link");
WCcriano("clientewms2","Resposta XML (WMS)",g_locaplic+"/imagens/new.gif","clientewms","link");
WCcriano("clientewms3","Resposta XML (WFS)",g_locaplic+"/imagens/new.gif","clientewms","link");
WCcriano("clientedados","Dados",g_locaplic+"/imagens/folder-s.gif","raiz","");
WCcriano("clientedados1","Escolher serviço",g_locaplic+"/imagens/new.gif","clientedados","link");
WCcriano("clientedados4","Escolher função",g_locaplic+"/imagens/new.gif","clientedados","link");
WCcriano("clientedados2","WSDL",g_locaplic+"/imagens/new.gif","clientedados","link");
WCcriano("listarss","RSS",g_locaplic+"/imagens/xml.gif","raiz","");
WCcriano("listarssws","Dados",g_locaplic+"/imagens/new.gif","listarss","link");
WCcriano("listarsswms","Mapas",g_locaplic+"/imagens/new.gif","listarss","link");
if (document.getElementById("RSSws"))
{
if (g_RSSws.length > 0)
{
var p = g_locaplic+"/classesphp/wscliente.php?funcao=listaRSSws&rss="+g_RSSws.join("|")+"&g_sid="+g_sid;
var cp = new cpaint();
//cp.set_debug(2)
cp.set_response_type("JSON");
cp.call(p,"listaRSSws",mostraRetornowsRSS);
}
}
if (document.getElementById("RSSwms"))
{
if (g_RSSwms.length > 0)
{
var p = g_locaplic+"/classesphp/wscliente.php?funcao=listaRSSws&rss="+g_RSSwms.join("|")+"&g_sid="+g_sid;
var cp = new cpaint();
//cp.set_debug(2)
cp.set_response_type("JSON");
cp.call(p,"listaRSSws",mostraRetornowmsRSS);
}
}
/*
pega parametros pela url
servico,tema
*/
parametros = "";
parServico = "";
parTema = "";
parTipo = "";
//servico = unescape(((((window.location.href).split("servico="))[1]).split("&"))[0]);
parametros = window.location.href.split("?");
if (parametros.length > 1)
{
valores = parametros[1].split(",");
//[0]=tipo,[1]=endereco,[2]=tema
//abre o servico e lista os temas
if (valores.length == 2)
{
WCservico = valores[1];
if (parametros.length==3)
{WCservico += "?"+parametros[2];}
if (valores[0] == "wms")
{
registrawms(WCservico);
}
}
}
}
/*
Function: WClistaServicos
Lista os serviços cadastrados.
Parameters:
tipo - ws/wms
*/
function WClistaServicos(tipo)
{
if (tipo == ("ws"))
{var lista = g_RSSws}
else
{var lista = g_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 += ""}} } document.getElementById("RSSwms").innerHTML = ins+"Aguarde...
" } /* Function: WCgetcapabilities Executa ajax para buscar resultado do getcapabilities. Parâmetros: tipo - tipo de chamada WMS|WFS */ function WCgetcapabilities(tipo) { if (WCservico != "") { WCaguarde(); var p = g_locaplic+"/classesphp/wscliente.php?funcao=getcapabilities&onlineresource="+WCservico+"&tipo="+tipo+"&g_sid="+g_sid; var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(p,"getcapabilities",mostraRetorno); } else document.getElementById("corpo").innerHTML = "Nenhum serviço foi escolhido.
" } /* Function: mostraRetorno Mostra o retorno de uma chamada ajax sem tratamento */ function mostraRetorno(retorno) { document.getElementById("corpo").innerHTML = ""+retorno.data } /* Function: WCmostraTemas Mostra o retorno da chamada ajax que busca a lista de temas */ function WCmostraTemas(retorno) { document.cookie = 'i3GeoPHP=; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/'; if (WClistaDeTemas == "") { var ins = "
Selecione a camada que será adicionada ao mapa e depois clique em Aplicar.
"
ins += '
' document.getElementById("corpo").innerHTML = ins+"
"+retorno.data+"
"+retorno.data } else {document.getElementById("corpo").innerHTML = WClistaDeTemas} } /* Function: WClistatemas Busca a lista de temas de um WMS ou WFS */ function WClistatemas() { if (WCservico != "") { WCaguarde(); if (WClistaDeTemas == "") { var p = g_locaplic+"/classesphp/mapa_controle.php?map_file=''&funcao=temaswms&servico="+WCservico+"&g_sid="+g_sid var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(p,"temaswms",WCmostraTemas); } else {WCmostraTemas("")} } else document.getElementById("corpo").innerHTML = "
Nenhum serviço foi escolhido.
" } /* Function: WClistafuncoes Busca a lista de funções de um WS */ function WClistafuncoes() { if (WCservico != "") { WCaguarde(); if (WClistaDeFuncoes == "") { var p = g_locaplic+"/classesphp/wscliente.php?funcao=funcoesws&servico="+WCservico+"&g_sid="+g_sid var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(p,"funcoesws",WCmostraFuncoes); } else {WCmostraFuncoes("")} } else document.getElementById("corpo").innerHTML = "Nenhum serviço foi escolhido.
" } /* Function: WCmostraFuncoes Mostra o retorno da chamada ajax que busca a lista de temas */ function WCmostraFuncoes(retorno) { if (WClistaDeFuncoes == "") { var ins = "Selecione a função que será acionada depois clique em Aplicar.
"
ins += '
' ins += "
Digite os valores dos parâmetros e depois em clique em 'Aplicar'.
"
ins += '
' ins += "