ogc.htm
9.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>WMS</title>
<meta name="description" content="OGC">
<meta name="keywords" content="WMS OGC mapa sig gis webmapping geo geoprocessamento interativo meio ambiente MMA cartografia geografia">
<meta name="robots" content="index,follow">
<!-- Leitura dos arquivos de estilos -->
<link rel="stylesheet" type="text/css" href="css/geral.css">
<link rel="stylesheet" type="text/css" href="pacotes/jsobjects/documentation.css">
<style>
P
{COLOR: #2F4632;text-align: justify;font-size: 12px;font-family: Verdana, Arial, Helvetica, sans-serif;}
#banner
{position:absolute;top:0px;left:0px;}
#arvoreTemas
{overflow:auto;height:400px;width:280px;position:absolute;top:30px;left:0px;}
#corpo
{width:425px;position:absolute;top:30px;left:285px;background:rgb(250,250,250);}
</style>
<!-- Leitura dos programas javaScript. Pode-se ler os arquivos não compactados, bastando excluir a palavra _compacto -->
<script src="pacotes/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script>
<script type="text/javascript" src="pacotes/jsobjects/jsUI-Global/common.js"></script>
<script type="text/javascript" src="pacotes/jsobjects/jsUI-Global/uiCommon.js"></script>
<script type="text/javascript" src="pacotes/jsobjects/jsUI-Treeview/component.js"></script>
</head>
<body style="background-color:white">
<div id=banner ><img src="imagens/barrasuperior_geradordelinks_2006.jpg" width="765" ></div>
<!-- aqui vai o menu de opções -->
<div id=arvoreTemas >
<!--<span style='text-align:left' >Veja também os dados referentes ao mapeamento dos remanescentes de vegetação dos biomas brasileiros:
<a href="http://mapas.mma.gov.br/mapas/aplic/probio/datadownload.htm" >link</a>
</span><br><br> -->
</div>
<!-- aqui vai o corpo da aplicação -->
<div id=corpo style="background-color:rgb(250,250,250)">
<H1>Web services OGC</H1>
<p>Navegue pela árvore ao lado para localizar o tema desejado.
<p>Clicando-se em um tema, é mostrado o endereço do serviço OGC.
<p>Serviços OGC são web services que possibilitam o acesso aos dados disponíveis nessa instalação do i3Geo.
<p>Para maiores informações sobre o uso de web services, veja <a href='http://www.opengeospatial.org/standards' target=blank >http://www.opengeospatial.org/standards</a>
</div>
</body>
<script>
/*
Title: ogc.htm
Monta uma árvore de temas permitindo que o usuário clique em um deles e veja o endereço para acesso aos dados via WMS.
A lista de dados pode vir do arquivo menutemas.xml ou de um diretório no servidor.
File: i3geo/ogc.htm
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.
*/
g_locaplic = "."
g_arvoreClicks = ""
var processaMenus = function(retorno)
{
var mn = retorno.data.length
for (m=0;m<mn; m++)
{
var publicado = "sim";
if(retorno.data[m].publicado)
{
if(retorno.data[m].publicado == "NAO")
var publicado = "nao"
}
if(publicado == "sim")
{
document.getElementById("arvoreTemas").innerHTML += "<div style=text-align:left id='menu_"+retorno.data[m].idmenu+"'></div>"
var nomeM = retorno.data[m].idmenu
if(retorno.data[m].nomemenu)
var nomeM = retorno.data[m].nomemenu
montaGrupos(retorno.data[m].idmenu,nomeM)
}
}
}
var p = g_locaplic+"/classesphp/mapa_controle.php?funcao=pegalistademenus&map_file=";
var cp = new cpaint();
//cp.set_debug(2)
cp.set_response_type("JSON");
cp.call(p,"pegaListaDeMenus",processaMenus);
function montaGrupos(idmenu,nomemenu)
{
var pMenu = function(retorno)
{
processaGrupos(retorno,idmenu,nomemenu)
}
var p = "classesphp/mapa_controle.php?funcao=pegalistadegrupos&idmenu="+idmenu+"&map_file=''&listasgrupos=sim&listasistemas=nao";
var cp = new cpaint();
//cp.set_debug(2)
cp.set_response_type("JSON");
cp.call(p,"pegaListaDeGrupos",pMenu);
}
/*
Function: processaGrupos
Recebe os dados da função Ajax com a lista de grupos e subgrupos.
Monta a árvore para adição de um novo tema no mapa.
Parameters:
retorno - string formatada com os dados para montagem da árvore.
*/
function processaGrupos(retorno,id_menu,nome_menu)
{
if ((retorno.data != "erro") && (retorno.data != undefined))
{
mytreeview2 = new Object();
mytreeview2 = treeviewNew("mytreeview2", "default", "menu_"+id_menu, null);
mytreeview2.createItem("itemMenu"+id_menu, "<b>"+nome_menu+"</b>", g_locaplic+"/imagens/temas.png", true, true, true, null);
mytreeview2.itemExpand = expandeGrupo;
for (ig=0;ig<retorno.data.grupos.length; ig++)
{
ogc = "nao";
//verifica se existe no grupo temas para download
if (retorno.data.grupos[ig].subgrupos)
{
var ngSgrupo = retorno.data.grupos[ig].subgrupos;
if (retorno.data.grupos[ig].subgrupos)
{
for (sg=0;sg<ngSgrupo.length;sg++)
{
if (ngSgrupo[sg].ogc == "sim")
{ogc = "sim"}
}
}
if (ogc == "sim")
{
var nomeGrupo = retorno.data.grupos[ig].nome;
mytreeview2.createItem("grupo"+ig+"_"+id_menu, nomeGrupo, g_locaplic+"/imagens/folder-s.gif", true, true, true, "itemMenu"+id_menu);
var cor = "rgb(230,230,230)";
for (sg=0;sg<ngSgrupo.length;sg++)
{
if (ngSgrupo[sg].ogc == "sim")
{
var nomeSgrupo = "<span style='background-color:"+cor+"' >"+ngSgrupo[sg].nome+"</span>";
mytreeview2.createItem("sgrupo_"+ig+"_"+sg+"_"+id_menu, nomeSgrupo, g_locaplic+"/imagens/branco0.gif", true, true, false, "grupo"+ig+"_"+id_menu);
if (cor == "rgb(230,230,230)"){var cor = "rgb(255,255,255)";}
else
{var cor = "rgb(230,230,230)";}
}
}
}
}
}
}
}
/*
Function: expandeGrupo
Chama a função ajax que pega a lista de temas de um subgrupo no menu de temas.
Parameters:
itemID - string Id do nó que foi expandido na árvore de grupos e subgrupos.
*/
function expandeGrupo(itemID)
{
g_arvoreClick = itemID;
if ((itemID.search("sgrupo") > -1) && (g_arvoreClicks.search(itemID) == -1 ))
{
var codigos = itemID.split("_");
var p = g_locaplic+"/classesphp/mapa_controle.php?map_file=''&funcao=pegalistadetemas&grupo="+codigos[1]+"&subgrupo="+codigos[2]+"&idmenu="+codigos[3];
var cp = new cpaint();
//cp.set_debug(2);
cp.set_response_type("json");
cp.call(p,"pegaListaDeTemas",processaTemas);
}
}
/*
Function: processaTemas
Recebe os dados da função Ajax com a lista de temas de um subgrupo.
Monta a árvore para adição de um novo tema no mapa.
Parameters:
retorno - string formatada com os dados para montagem da árvore.
*/
function processaTemas(retorno)
{
if ((retorno.data != "erro") && (retorno.data != undefined))
{
var cor = "rgb(251,246,184)";
for (st=0;st<retorno.data.temas.length; st++)
{
var inp = "";
var nome = retorno.data.temas[st].nome;
var lk = "";
if (retorno.data.temas[st].link != " ")
{var lk = "<a href="+retorno.data.temas[st].link+" target=blank> fonte</a>";}
if (retorno.data.temas[st].ogc=="sim")
{
var inp = "<img style='text-align:left;' src="+g_locaplic+"/imagens/tic.png />";
nomeTema = "<span title='clique para ver' onclick='endereco(\""+retorno.data.temas[st].tid+"\")' style='text-align:left;cursor:pointer;background-color:"+cor+"' >"+inp+nome+lk+"</span>";
mytreeview2.createItem("tema"+ig+""+sg+""+st, nomeTema, g_locaplic+"/imagens/branco0.gif", false, true, true, g_arvoreClick);
if (cor == "rgb(251,246,184)"){var cor = "rgb(255,255,255)";}
else
{var cor = "rgb(251,246,184)";}
}
}
//inclui um item em branco
mytreeview2.createItem("vazio", "", g_locaplic+"/imagens/branco0.gif", false, true, true, g_arvoreClick);
g_arvoreClicks += ","+g_arvoreClick;
}
}
/*
Function: endereco
Gera o endereço do webservice do tema escolhido
Parameters:
tema - tema para download
*/
function endereco(tema)
{
ins = "<H1>Endereço do web service:</H1><br>"
var re = new RegExp(".htm", "g");
var servico = window.location.href.replace(re,'.php?tema=')+tema
ins += "<p>"+servico
ins += "<p><a target=blank href='"+servico+"&SRS=EPSG:4291&WIDTH=500&HEIGHT=500&BBOX=-76.5125927,-39.3925675209,-29.5851853,9.49014852081&FORMAT=image/png&service=wms&version=1.1.0&request=getmap&layers="+tema+"' />testar</a>"
document.getElementById("corpo").innerHTML = ins
}
</script>
</html>