Commit e5b5bc33da8099cdd273c075d47a1662e112c95f
1 parent
c3447d85
Exists in
master
and in
7 other branches
Reconstrução dos códigos da ferramenta Conexão WMS
Showing
73 changed files
with
2173 additions
and
1686 deletions
Show diff stats
classesphp/mapa_controle.php
@@ -1855,6 +1855,7 @@ switch (strtoupper($funcao)) | @@ -1855,6 +1855,7 @@ switch (strtoupper($funcao)) | ||
1855 | */ | 1855 | */ |
1856 | case "TEMASWMS": | 1856 | case "TEMASWMS": |
1857 | include_once("wmswfs.php"); | 1857 | include_once("wmswfs.php"); |
1858 | + error_reporting(0); | ||
1858 | $servico = $_pg["servico"]; | 1859 | $servico = $_pg["servico"]; |
1859 | restauraCon($map_file,$postgis_mapa); | 1860 | restauraCon($map_file,$postgis_mapa); |
1860 | $retorno = temaswms(); | 1861 | $retorno = temaswms(); |
classesphp/wmswfs.php
1 | -<?php | ||
2 | -/* | ||
3 | -Title: wmswfs.php | ||
4 | - | ||
5 | -Funções de uso geral para realizar a leitura e o processamento de Web Services nos padrões OGC. | ||
6 | -Atualmente, processa apenas serviços no padrão WMS. | ||
7 | - | ||
8 | -Licenca: | ||
9 | - | ||
10 | -GPL2 | ||
11 | - | ||
12 | - | ||
13 | -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
14 | - | ||
15 | -Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
16 | -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
17 | - | ||
18 | -Este programa é software livre; você pode redistribuí-lo | ||
19 | -e/ou modificá-lo sob os termos da Licença Pública Geral | ||
20 | -GNU conforme publicada pela Free Software Foundation; | ||
21 | - | ||
22 | -Este programa é distribuído na expectativa de que seja útil, | ||
23 | -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
24 | -de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
25 | -Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
26 | -Você deve ter recebido uma c�pia da Licença Pública Geral do | ||
27 | -GNU junto com este programa; se não, escreva para a | ||
28 | -Free Software Foundation, Inc., no endereço | ||
29 | -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
30 | - | ||
31 | -Arquivo: | ||
32 | - | ||
33 | -i3geo/classesphp/wmswfs.php | ||
34 | -*/ | ||
35 | -/* | ||
36 | -Function: gravaCacheWMS | ||
37 | - | ||
38 | -Lê o getcapabilities de um WMS e salva em disco se o mesmo não tiver sido salvo antes | ||
39 | - | ||
40 | -O arquivo é gravado no diretório temporário | ||
41 | - | ||
42 | -Parametros: | ||
43 | - | ||
44 | -$servico {string} - endereço do WMS | ||
45 | - | ||
46 | -Global: | ||
47 | - | ||
48 | -$dir_tmp {string} - (opcional) endereço do diretório temporário onde o cache será armazenado. Se não for definido, tenta obter das variáveis de configuração existentes em i3geo/ms_configura.php | ||
49 | - | ||
50 | -Return: | ||
51 | - | ||
52 | -{string} - Nome do arquivo criado. Retorna a palavra "erro" se tiver ocorrido um erro. | ||
53 | -*/ | ||
54 | -function gravaCacheWMS($servico) | ||
55 | -{ | ||
56 | - global $dir_tmp, $i3geo_proxy_server; | ||
57 | - if($dir_tmp == ""){ | ||
58 | - include(dirname(__FILE__)."/../ms_configura.php"); | ||
59 | - } | ||
60 | - //error_reporting(0); | ||
61 | - try{ | ||
62 | - $teste = explode("=",$servico); | ||
63 | - if ( count($teste) > 1 ){ | ||
64 | - $servico = $servico."&"; | ||
65 | - } | ||
66 | - else{ | ||
67 | - $teste = explode("?",$servico); | ||
68 | - if ( count($teste) == 1 ){ | ||
69 | - $servico = $servico."?"; | ||
70 | - } | ||
71 | - } | ||
72 | - $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WMS"; | ||
73 | - $teste = explode("version",strtolower($wms_service_request)); | ||
74 | - if(count($teste) == 1){ | ||
75 | - $wms_service_request .= "&VERSION=1.1.1"; | ||
76 | - } | ||
77 | - $nome = $dir_tmp."/wms".md5($servico).".xml"; | ||
78 | - //echo ($wms_service_request);exit; | ||
79 | - if(!file_exists($nome)){ | ||
80 | - //$wms_capabilities = file($wms_service_request); | ||
81 | - $curl = curl_init(); | ||
82 | - curl_setopt ($curl, CURLOPT_URL, $wms_service_request); | ||
83 | - curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); | ||
84 | - curl_setopt($curl, CURLOPT_HEADER, 0); | ||
85 | - if(isset($i3geo_proxy_server) && $i3geo_proxy_server != ""){ | ||
86 | - curl_setopt($curl, CURLOPT_PROXY, $i3geo_proxy_server); | ||
87 | - } | ||
88 | - $wms_capabilities = curl_exec($curl); | ||
89 | - curl_close ($curl); | ||
90 | - if( !$wms_capabilities || $wms_capabilities == ""){ | ||
91 | - return "erro"; | ||
92 | - } | ||
93 | - else{ | ||
94 | - $fp = fopen($nome, 'w'); | ||
95 | - //fwrite($fp, implode("",$wms_capabilities)); | ||
96 | - fwrite($fp,$wms_capabilities); | ||
97 | - fclose($fp); | ||
98 | - } | ||
99 | - } | ||
100 | - return $nome; | ||
101 | - } | ||
102 | - catch(Exception $e){return "erro";} | ||
103 | -} | ||
104 | -/* | ||
105 | -Function: existeTemaWFS | ||
106 | - | ||
107 | -Verifica se existe um tema em um servico WFS. | ||
108 | - | ||
109 | -Globais: | ||
110 | - | ||
111 | -$wfs {string} - endereço do serviço | ||
112 | - | ||
113 | -$tema {string} - tema (layer) que será verificado | ||
114 | - | ||
115 | -Retorno: | ||
116 | - | ||
117 | -{string} - sim|nao | ||
118 | -*/ | ||
119 | -function existeTemaWFS() | ||
120 | -{ | ||
121 | - global $wfs,$tema; | ||
122 | - $capabilities = implode("",$wfs); | ||
123 | - $dom = new DomDocument(); | ||
124 | - $dom->loadXML($capabilities); | ||
125 | - $xpath = new DOMXPath($dom); | ||
126 | - $query = '//WFS_Capabilities/FeatureTypeList/FeatureType'; | ||
127 | - $entries = $xpath->query($query); | ||
128 | - foreach($entries as $e) | ||
129 | - { | ||
130 | - $e->getElementsByTagName("Name"); | ||
131 | - $n = $e->nodeValue; | ||
132 | - if ($n == $tema) | ||
133 | - {return "sim";} | ||
134 | - } | ||
135 | - return "nao"; | ||
136 | -} | ||
137 | -/* | ||
138 | -Function: existeWFS | ||
139 | - | ||
140 | -Verifica se existe um servico WFS invocando o getcapabilities. | ||
141 | - | ||
142 | -Global: | ||
143 | - | ||
144 | -$servico {string} - endereço do serviço | ||
145 | - | ||
146 | -Retorno: | ||
147 | - | ||
148 | -{string} - nao|true | ||
149 | -*/ | ||
150 | -function existeWFS() | ||
151 | -{ | ||
152 | - global $servico; | ||
153 | - $teste = explode("=",$servico); | ||
154 | - if ( count($teste) > 1 ){$servico = $servico."&";} | ||
155 | - $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WFS"; | ||
156 | - # ------------------------------------------------------------- | ||
157 | - # Test that the capabilites file has successfully downloaded. | ||
158 | - # | ||
159 | - if( !($wfs_capabilities = file($wms_service_request)) ) { | ||
160 | - # Cannot download the capabilities file. | ||
161 | - return "nao"; | ||
162 | - } | ||
163 | - else | ||
164 | - {return $wfs_capabilities;} | ||
165 | -} | ||
166 | -/* | ||
167 | -Function: getcapabilities | ||
168 | - | ||
169 | -Chama a função getcapabilities e retorna o resultado. | ||
170 | - | ||
171 | -Global: | ||
172 | - | ||
173 | -$servico {string} - Endereço do web service. | ||
174 | - | ||
175 | -Retorno: | ||
176 | - | ||
177 | -{string} | ||
178 | -*/ | ||
179 | -function getcapabilities() | ||
180 | -{ | ||
181 | - global $servico; | ||
182 | - $teste = explode("=",$servico); | ||
183 | - if ( count($teste) > 1 ){$servico = $servico."&";} | ||
184 | - $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WMS&version=1.1.0"; | ||
185 | - # ------------------------------------------------------------- | ||
186 | - # Test that the capabilites file has successfully downloaded. | ||
187 | - # | ||
188 | - if( !($wms_capabilities = file($wms_service_request)) ) { | ||
189 | - # Cannot download the capabilities file. | ||
190 | - $cp->set_data("Erro de acesso"); | ||
191 | - return; | ||
192 | - } | ||
193 | - $wms_capabilities = implode("",$wms_capabilities); | ||
194 | - return(xml2html($wms_capabilities)); | ||
195 | -} | ||
196 | -/* | ||
197 | -function: getcapabilities2 | ||
198 | - | ||
199 | -Chama a função getcapabilities e retorna o resultado pré-formatado (WMS). | ||
200 | - | ||
201 | -Global: | ||
202 | - | ||
203 | -$servico {string} - Endereço do web service. | ||
204 | - | ||
205 | -Retorno: | ||
206 | - | ||
207 | -{string} | ||
208 | -*/ | ||
209 | -function getcapabilities2() | ||
210 | -{ | ||
211 | - global $servico; | ||
212 | - $teste = explode("=",$servico); | ||
213 | - if ( count($teste) > 1 ){$servico = $servico."&";} | ||
214 | - $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WMS"; | ||
215 | - $teste = explode("version",strtolower($wms_service_request)); | ||
216 | - if(count($teste) == 1) | ||
217 | - {$wms_service_request .= "&VERSION=1.1.1";} | ||
218 | - # ------------------------------------------------------------- | ||
219 | - # Test that the capabilites file has successfully downloaded. | ||
220 | - # | ||
221 | - if( !($wms_capabilities = file($wms_service_request)) ) { | ||
222 | - # Cannot download the capabilities file. | ||
223 | - $cp->set_data("Erro de acesso"); | ||
224 | - return; | ||
225 | - } | ||
226 | - $wms_capabilities = implode("",$wms_capabilities); | ||
227 | - $dom = new DomDocument(); | ||
228 | - $dom->loadXML($wms_capabilities); | ||
229 | - $xpath = new DOMXPath($dom); | ||
230 | - $retorno = ""; | ||
231 | - $query = '//WMT_MS_Capabilities/Service/Name'; | ||
232 | - $entries = $xpath->query($query); | ||
233 | - if($entries == FALSE || $entries->length == 0){ | ||
234 | - $rn = $xpath->registerNamespace("tag", "http://www.opengis.net/wms"); | ||
235 | - $entries = $xpath->query('/tag:WMS_Capabilities/tag:Service/tag:Name'); | ||
236 | - } | ||
237 | - | ||
238 | - $temp = ""; | ||
239 | - foreach ($entries as $entry){$temp .= $entry->nodeValue;} | ||
240 | - $retorno .= "<b>Nome: </b>".$temp; | ||
241 | - | ||
242 | - $query = '//WMT_MS_Capabilities/Service/Title'; | ||
243 | - $entries = $xpath->query($query); | ||
244 | - if($entries == FALSE || $entries->length == 0){ | ||
245 | - $entries = $xpath->query('/tag:WMS_Capabilities/tag:Service/tag:Title'); | ||
246 | - } | ||
247 | - $temp = ""; | ||
248 | - foreach ($entries as $entry){$temp .= $entry->nodeValue;} | ||
249 | - $retorno .= "<br><br><b>Título: </b>".$temp; | ||
250 | - | ||
251 | - $query = '//WMT_MS_Capabilities/Service/Abstract'; | ||
252 | - $entries = $xpath->query($query); | ||
253 | - if($entries == FALSE || $entries->length == 0){ | ||
254 | - $entries = $xpath->query('/tag:WMS_Capabilities/tag:Service/tag:Abstract'); | ||
255 | - } | ||
256 | - $temp = ""; | ||
257 | - foreach ($entries as $entry){$temp .= $entry->nodeValue;} | ||
258 | - $retorno .= "<br><br><b>Resumo: </b>".$temp; | ||
259 | - | ||
260 | - $query = '//WMT_MS_Capabilities/Service/KeywordList'; | ||
261 | - $entries = $xpath->query($query); | ||
262 | - if($entries == FALSE || $entries->length == 0){ | ||
263 | - $entries = $xpath->query('/tag:WMS_Capabilities/tag:Service/tag:KeywordList'); | ||
264 | - } | ||
265 | - $temp = ""; | ||
266 | - foreach ($entries as $entry){$temp .= $entry->nodeValue.".";} | ||
267 | - $retorno .= "<br><br><b>Palavras-chave: </b>".$temp; | ||
268 | - | ||
269 | - $query = '//WMT_MS_Capabilities/Service/ContactInformation'; | ||
270 | - $entries = $xpath->query($query); | ||
271 | - if($entries == FALSE || $entries->length == 0){ | ||
272 | - $entries = $xpath->query('/tag:WMS_Capabilities/tag:Service/tag:ContactInformation'); | ||
273 | - } | ||
274 | - $temp = ""; | ||
275 | - foreach ($entries as $entry){$temp .= $entry->nodeValue.".";} | ||
276 | - $retorno .= "<br><br><b>Contato: </b>".$temp; | ||
277 | - | ||
278 | - return($retorno); | ||
279 | -} | ||
280 | -/* | ||
281 | -getcapabilities3 | ||
282 | - | ||
283 | -Chama a função getcapabilities e retorna o resultado formatado (WFS). | ||
284 | - | ||
285 | -Global: | ||
286 | - | ||
287 | -$servico {string} - Endereço do web service. | ||
288 | - | ||
289 | - | ||
290 | -*/ | ||
291 | -function getcapabilities3() | ||
292 | -{ | ||
293 | - global $servico; | ||
294 | - $teste = explode("=",$servico); | ||
295 | - if ( count($teste) > 1 ){$servico = $servico."&";} | ||
296 | - $wms_service_request = $servico . "request=getcapabilities&service=wfs&version=1.0.0"; | ||
297 | - # ------------------------------------------------------------- | ||
298 | - # Test that the capabilites file has successfully downloaded. | ||
299 | - # | ||
300 | - if( !($wms_capabilities = file($wms_service_request)) ) { | ||
301 | - # Cannot download the capabilities file. | ||
302 | - $cp->set_data("Erro de acesso"); | ||
303 | - return; | ||
304 | - } | ||
305 | - $wms_capabilities = implode("",$wms_capabilities); | ||
306 | - $dom = new DomDocument(); | ||
307 | - $dom->loadXML($wms_capabilities); | ||
308 | - $retorno = ""; | ||
309 | - $services = $dom->getElementsByTagName("Service"); | ||
310 | - foreach ($services as $service) | ||
311 | - { | ||
312 | - $vs = $service->getElementsByTagName("Name"); | ||
313 | - $temp = ""; | ||
314 | - foreach ($vs as $v) | ||
315 | - {$temp .= $v->nodeValue;} | ||
316 | - $retorno .= "<b>Nome: </b>".$temp; | ||
317 | - $vs = $service->getElementsByTagName("Title"); | ||
318 | - $temp = ""; | ||
319 | - foreach ($vs as $v) | ||
320 | - {$temp .= $v->nodeValue;} | ||
321 | - $retorno .= "<br><br><b>Título: </b>".$temp; | ||
322 | - } | ||
323 | - return($retorno); | ||
324 | -} | ||
325 | -/* | ||
326 | -Function: temaswms | ||
327 | - | ||
328 | -Lista os temas de um web service WMS. | ||
329 | - | ||
330 | -Globais: | ||
331 | - | ||
332 | -$servico {string} - Endereço do web service. | ||
333 | - | ||
334 | -$id_ws {string} - (opcional) id do serviço registrado no sistema de administração do i3geo. Se definido, é feito o registro de tentativa de acesso ao serviço no sistema de administração | ||
335 | - | ||
336 | -Retorno: | ||
337 | - | ||
338 | -{html} - htaml formatado para permitir a escolha de uma camada | ||
339 | -*/ | ||
340 | -function temaswms() | ||
341 | -{ | ||
342 | - global $servico,$id_ws; | ||
343 | - //para admin1/cadastros/servicos/exec.php | ||
344 | - $_GET["funcao"] = "lista"; | ||
345 | - $wms_service_request = gravaCacheWMS($servico); | ||
346 | - # ------------------------------------------------------------- | ||
347 | - # Test that the capabilites file has successfully downloaded. | ||
348 | - # | ||
349 | - //$wms_service_request = "c://temp//teste.xml"; | ||
350 | - if(file_exists(dirname(__FILE__)."/../admin1/cadastros/servicos/exec.php")){ | ||
351 | - include_once(dirname(__FILE__)."/../admin1/cadastros/servicos/exec.php"); | ||
352 | - } | ||
353 | - else{ | ||
354 | - include_once(dirname(__FILE__)."/../admin/php/admin.php"); | ||
355 | - include_once(dirname(__FILE__)."/../admin/php/webservices.php"); | ||
356 | - } | ||
357 | - | ||
358 | - //error_reporting(0); | ||
359 | - if($wms_service_request == "erro") { | ||
360 | - # Cannot download the capabilities file. | ||
361 | - //registra a tentativa de acesso | ||
362 | - if(isset($id_ws)) | ||
363 | - { | ||
364 | - adicionaAcesso($id_ws,false); | ||
365 | - } | ||
366 | - $cp->set_data("Erro de acesso"); | ||
367 | - return; | ||
368 | - } | ||
369 | - elseif(isset($id_ws)) | ||
370 | - { | ||
371 | - if($id_ws != "") | ||
372 | - adicionaAcesso($id_ws,true); | ||
373 | - } | ||
374 | - $handle = fopen ($wms_service_request, "r"); | ||
375 | - $wms_capabilities = fread($handle, filesize($wms_service_request)); | ||
376 | - fclose ($handle); | ||
377 | - $dom = new DomDocument(); | ||
378 | - $dom->loadXML($wms_capabilities); | ||
379 | - | ||
380 | - //var_dump($dom);exit; | ||
381 | - //$layers = wms_layers($dom); | ||
382 | - $xpath = new DOMXPath($dom); | ||
383 | - //verifica sld | ||
384 | - $suporta = "nao"; | ||
385 | - $query = '//WMT_MS_Capabilities/Capability/UserDefinedSymbolization'; | ||
386 | - $entries = $xpath->query($query); | ||
387 | - if($entries->length == 0){ | ||
388 | - $suporta = "sim"; | ||
389 | - } | ||
390 | - else{ | ||
391 | - foreach($entries as $e) | ||
392 | - {$n = $e->getAttribute("SupportSLD");} | ||
393 | - if ($n == 1){$suporta = "sim";} | ||
394 | - } | ||
395 | - $xpath = new DOMXPath($dom); | ||
396 | - //var_dump($xpath);exit; | ||
397 | - $q = '//WMT_MS_Capabilities/Capability'; | ||
398 | - $query = $q.'/Layer'; | ||
399 | - $layers = $xpath->query($query); | ||
400 | - if($layers == FALSE || $layers->length == 0){ | ||
401 | - $teste = $xpath->registerNamespace("tag", "http://www.opengis.net/wms"); | ||
402 | - $q = '/tag:WMS_Capabilities/tag:Capability'; | ||
403 | - $query = $q.'/tag:Layer'; | ||
404 | - $layers = $xpath->query($query); | ||
405 | - } | ||
406 | - //var_dump($layers);exit; | ||
407 | - $retorna = array(); | ||
408 | - foreach ($layers as $layer) | ||
409 | - { | ||
410 | - $layers1 = $xpath->query('/Layer',$layer); | ||
411 | - if($layers1->length == 0) //v 1.3.0 | ||
412 | - {$layers1 = $layers;} | ||
413 | - else{ | ||
414 | - $r = pegaTag($layer); | ||
415 | - $retorna = imprimeTag($r,$retorna); | ||
416 | - } | ||
417 | - foreach ($layers1 as $layer1) | ||
418 | - { | ||
419 | - $layers2 = $xpath->query('Layer',$layer1); | ||
420 | - $r1 = pegaTag($layer1); | ||
421 | - $camada1 = $r1["nome"]; | ||
422 | - $titulocamada1 = $r1["titulo"]; | ||
423 | - $retorna = imprimeTag($r1,$retorna); | ||
424 | - if($r1["estilos"]) | ||
425 | - {$retorna = imprimeEstilos($r1["estilos"],$suporta,$retorna,$camada1,$titulocamada1);} | ||
426 | - else | ||
427 | - { | ||
428 | - if($layers2->length == 0) | ||
429 | - $retorna[] = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"tema\",\"" . $camada1 . "\",\"\",\"default\",\"".$camada1." ".$titulocamada1."\",\"".$suporta."\")' value='" . $camada1 . "'/> default<i>".$titulocamada1."</i></span><br>"; | ||
430 | - } | ||
431 | - foreach ($layers2 as $layer2) | ||
432 | - { | ||
433 | - $layers3 = $xpath->query('Layer',$layer2); | ||
434 | - $r2 = pegaTag($layer2); | ||
435 | - $camada2 = $r2["nome"]; | ||
436 | - $titulocamada2 = $r2["titulo"]; | ||
437 | - $retorna = imprimeTag($r2,$retorna); | ||
438 | - if($r2["estilos"]) | ||
439 | - {$retorna = imprimeEstilos($r2["estilos"],$suporta,$retorna,$camada2,$titulocamada2);} | ||
440 | - else | ||
441 | - { | ||
442 | - if($layers3->length == 0) | ||
443 | - $retorna[] = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"tema\",\"" . $camada2 . "\",\"\",\"default\",\"".$camada2." ".$titulocamada2."\",\"".$suporta."\")' value='" . $camada2 . "'/> default <i>".$titulocamada2."</i></span><br>"; | ||
444 | - } | ||
445 | - foreach ($layers3 as $layer3) | ||
446 | - { | ||
447 | - $r3 = pegaTag($layer3); | ||
448 | - $camada3 = $r3["nome"]; | ||
449 | - $titulocamada3 = $r3["titulo"]; | ||
450 | - $retorna = imprimeTag($r3,$retorna); | ||
451 | - if($r3["estilos"]) | ||
452 | - {$retorna = imprimeEstilos($r3["estilos"],$suporta,$retorna,$camada3,$titulocamada3);} | ||
453 | - else | ||
454 | - { | ||
455 | - $retorna[] = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"tema\",\"" . $camada3 . "\",\"\",\"default\",\"".$camada3." ".$titulocamada3."\",\"".$suporta."\")' value='" . $camada3 . "'/> default <i>".$titulocamada3."</i></span><br>"; | ||
456 | - } | ||
457 | - } | ||
458 | - } | ||
459 | - if(count($layers2) == 1){$retorna[] = "<hr>";} | ||
460 | - } | ||
461 | - } | ||
462 | - $retorna[] = "<p class='paragrafo'>Projeção:</p><div class='styled-select'><input type='text' id='proj' value='".implode(",",wms_srs($dom))."' /></div>"; | ||
463 | - $retorna[] = "<br><p class='paragrafo'>Formatos imagem:</p><div class='styled-select'><input type='text' id='formatos' value='".implode(",",wms_formats($dom))."' /></div>"; | ||
464 | - $retorna[] = "<br><p class='paragrafo'>Formatos de informação:</p><div class='styled-select'><input type='text' id='formatosinfo' value='".implode(",",wms_formatsinfo($dom))."' /></div>"; | ||
465 | - $retorna[] = "<br><p class='paragrafo'>Versão:</p><div class='styled-select'><input type='text' id='versao' value='".implode(",",wms_version($dom))."' /></div>"; | ||
466 | - $retorna[] = "<br><p class='paragrafo'>Suporta SLD:</p><div class='styled-select'><input type='text' id='suportasld' value='".$suporta."' /></div>"; | ||
467 | - return(implode($retorna)); | ||
468 | -} | ||
469 | -/* | ||
470 | -Function: listaLayersWMS | ||
471 | - | ||
472 | -Lista os temas de um web service WMS e retorna o resultado como um array. | ||
473 | - | ||
474 | -Globais: | ||
475 | - | ||
476 | -$servico {string} - Endereço do web service. | ||
477 | - | ||
478 | -$nivel - nível do layer na hierarquia existente no getcapabilities | ||
479 | - | ||
480 | -$nomelayer - nome do layer que contém os pr�ximos layers | ||
481 | - | ||
482 | -Retorno: | ||
483 | - | ||
484 | -{array} | ||
485 | -*/ | ||
486 | -function listaLayersWMS() | ||
487 | -{ | ||
488 | - global $servico,$nivel,$id_ws,$nomelayer,$tipo_ws; | ||
489 | - | ||
490 | - if(!isset($nomelayer)){ | ||
491 | - $nomelayer = "undefined"; | ||
492 | - } | ||
493 | - //para o caso do sistema de metadados estatisticos | ||
494 | - $wms_service_request = gravaCacheWMS($servico); | ||
495 | - include_once(dirname(__FILE__)."/../admin/php/admin.php"); | ||
496 | - include_once(dirname(__FILE__)."/../admin/php/webservices.php"); | ||
497 | - | ||
498 | - | ||
499 | - if($tipo_ws != "WMSMETAESTAT" && $nivel < 2){ | ||
500 | - if($wms_service_request == "erro") { | ||
501 | - //registra a tentativa de acesso | ||
502 | - if(isset($id_ws)){ | ||
503 | - adicionaAcesso($id_ws,false); | ||
504 | - } | ||
505 | - $cp->set_data("Erro de acesso"); | ||
506 | - return; | ||
507 | - } | ||
508 | - elseif(isset($id_ws)){ | ||
509 | - adicionaAcesso($id_ws,true); | ||
510 | - } | ||
511 | - } | ||
512 | - | ||
513 | - $handle = fopen ($wms_service_request, "r"); | ||
514 | - $wms_capabilities = fread ($handle, filesize ($wms_service_request)); | ||
515 | - fclose ($handle); | ||
516 | - | ||
517 | - $dom = new DomDocument(); | ||
518 | - $dom->loadXML($wms_capabilities); | ||
519 | - $xpath = new DOMXPath($dom); | ||
520 | - $q = '//WMT_MS_Capabilities/Capability'; | ||
521 | - $res = array(); | ||
522 | - if($nomelayer != "undefined"){ | ||
523 | - for($i=0; $i < $nivel-1 ; ++$i){ | ||
524 | - $q .= "/Layer"; | ||
525 | - } | ||
526 | - $layersanteriores = $xpath->query($q); | ||
527 | - foreach ($layersanteriores as $layeranterior){ | ||
528 | - $r1 = pegaTag($layeranterior); | ||
529 | - //echo "<pre>";var_dump($layeranterior); | ||
530 | - if($r1["nome"] == $nomelayer || $r1["titulo"] == $nomelayer) | ||
531 | - { | ||
532 | - $layers = $xpath->query('Layer',$layeranterior); | ||
533 | - foreach ($layers as $layer) | ||
534 | - { | ||
535 | - $r = pegaTag($layer); | ||
536 | - if(!$r["nome"]){$r["nome"] = $r["titulo"];} | ||
537 | - $res[] = array("nome"=>$r["nome"],"titulo"=>$r["titulo"],"estilos"=>$r["estilos"],"srs"=>wms_srs($dom),"formats"=>wms_formats($dom),"version"=>wms_version($dom),"formatsinfo"=>wms_formatsinfo($dom)); | ||
538 | - } | ||
539 | - if($layers->length == 0) | ||
540 | - { | ||
541 | - $res[] = array("nome"=>$r1["nome"],"titulo"=>$r1["titulo"],"estilos"=>(array(array("nome"=>"default","titulo"=>"default"))),"srs"=>wms_srs($dom),"formats"=>wms_formats($dom),"version"=>wms_version($dom),"formatsinfo"=>wms_formatsinfo($dom)); | ||
542 | - } | ||
543 | - } | ||
544 | - } | ||
545 | - } | ||
546 | - else{ | ||
547 | - // | ||
548 | - //pega os layers no primeiro nível | ||
549 | - // | ||
550 | - $q .= "/Layer"; | ||
551 | - $layers = $xpath->query($q); | ||
552 | - $res = array(); | ||
553 | - foreach ($layers as $layer){ | ||
554 | - $r = pegaTag($layer); | ||
555 | - //var_dump($r); | ||
556 | - if(!$r["nome"]){ | ||
557 | - $r["nome"] = $r["titulo"]; | ||
558 | - } | ||
559 | - if(array_search("Style",$r["tags"]) || array_search("Layer",$r["tags"])){ | ||
560 | - $res[] = array( | ||
561 | - "nome"=>$r["nome"], | ||
562 | - "titulo"=>$r["titulo"], | ||
563 | - "estilos"=>$r["estilos"], | ||
564 | - "srs"=>wms_srs($dom), | ||
565 | - "formats"=>wms_formats($dom), | ||
566 | - "version"=>wms_version($dom), | ||
567 | - "formatsinfo"=>wms_formatsinfo($dom) | 1 | +<?php |
2 | +/* | ||
3 | + * Title: wmswfs.php | ||
4 | + * | ||
5 | + * Funções de uso geral para realizar a leitura e o processamento de Web Services nos padrões OGC. | ||
6 | + * Atualmente, processa apenas serviços no padrão WMS. | ||
7 | + * | ||
8 | + * Licenca: | ||
9 | + * | ||
10 | + * GPL2 | ||
11 | + * | ||
12 | + * | ||
13 | + * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
14 | + * | ||
15 | + * Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
16 | + * Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
17 | + * | ||
18 | + * Este programa é software livre; você pode redistribuí-lo | ||
19 | + * e/ou modificá-lo sob os termos da Licença Pública Geral | ||
20 | + * GNU conforme publicada pela Free Software Foundation; | ||
21 | + * | ||
22 | + * Este programa é distribuído na expectativa de que seja útil, | ||
23 | + * porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
24 | + * de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
25 | + * Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
26 | + * Você deve ter recebido uma c�pia da Licença Pública Geral do | ||
27 | + * GNU junto com este programa; se não, escreva para a | ||
28 | + * Free Software Foundation, Inc., no endereço | ||
29 | + * 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
30 | + * | ||
31 | + * Arquivo: | ||
32 | + * | ||
33 | + * i3geo/classesphp/wmswfs.php | ||
34 | + */ | ||
35 | +/* | ||
36 | + * Function: gravaCacheWMS | ||
37 | + * | ||
38 | + * Lê o getcapabilities de um WMS e salva em disco se o mesmo não tiver sido salvo antes | ||
39 | + * | ||
40 | + * O arquivo é gravado no diretório temporário | ||
41 | + * | ||
42 | + * Parametros: | ||
43 | + * | ||
44 | + * $servico {string} - endereço do WMS | ||
45 | + * | ||
46 | + * Global: | ||
47 | + * | ||
48 | + * $dir_tmp {string} - (opcional) endereço do diretório temporário onde o cache será armazenado. Se não for definido, tenta obter das variáveis de configuração existentes em i3geo/ms_configura.php | ||
49 | + * | ||
50 | + * Return: | ||
51 | + * | ||
52 | + * {string} - Nome do arquivo criado. Retorna a palavra "erro" se tiver ocorrido um erro. | ||
53 | + */ | ||
54 | +function gravaCacheWMS($servico) { | ||
55 | + global $dir_tmp, $i3geo_proxy_server; | ||
56 | + if ($dir_tmp == "") { | ||
57 | + include (dirname ( __FILE__ ) . "/../ms_configura.php"); | ||
58 | + } | ||
59 | + // error_reporting(0); | ||
60 | + try { | ||
61 | + $teste = explode ( "=", $servico ); | ||
62 | + if (count ( $teste ) > 1) { | ||
63 | + $servico = $servico . "&"; | ||
64 | + } else { | ||
65 | + $teste = explode ( "?", $servico ); | ||
66 | + if (count ( $teste ) == 1) { | ||
67 | + $servico = $servico . "?"; | ||
68 | + } | ||
69 | + } | ||
70 | + $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WMS"; | ||
71 | + $teste = explode ( "version", strtolower ( $wms_service_request ) ); | ||
72 | + if (count ( $teste ) == 1) { | ||
73 | + $wms_service_request .= "&VERSION=1.1.1"; | ||
74 | + } | ||
75 | + $nome = $dir_tmp . "/wms" . md5 ( $servico ) . ".xml"; | ||
76 | + // echo ($wms_service_request);exit; | ||
77 | + if (! file_exists ( $nome )) { | ||
78 | + // $wms_capabilities = file($wms_service_request); | ||
79 | + $curl = curl_init (); | ||
80 | + curl_setopt ( $curl, CURLOPT_URL, $wms_service_request ); | ||
81 | + curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); | ||
82 | + curl_setopt ( $curl, CURLOPT_HEADER, 0 ); | ||
83 | + if (isset ( $i3geo_proxy_server ) && $i3geo_proxy_server != "") { | ||
84 | + curl_setopt ( $curl, CURLOPT_PROXY, $i3geo_proxy_server ); | ||
85 | + } | ||
86 | + $wms_capabilities = curl_exec ( $curl ); | ||
87 | + curl_close ( $curl ); | ||
88 | + if (! $wms_capabilities || $wms_capabilities == "") { | ||
89 | + return "erro"; | ||
90 | + } else { | ||
91 | + $fp = fopen ( $nome, 'w' ); | ||
92 | + // fwrite($fp, implode("",$wms_capabilities)); | ||
93 | + fwrite ( $fp, $wms_capabilities ); | ||
94 | + fclose ( $fp ); | ||
95 | + } | ||
96 | + } | ||
97 | + return $nome; | ||
98 | + } catch ( Exception $e ) { | ||
99 | + return "erro"; | ||
100 | + } | ||
101 | +} | ||
102 | +/* | ||
103 | + * Function: existeTemaWFS | ||
104 | + * | ||
105 | + * Verifica se existe um tema em um servico WFS. | ||
106 | + * | ||
107 | + * Globais: | ||
108 | + * | ||
109 | + * $wfs {string} - endereço do serviço | ||
110 | + * | ||
111 | + * $tema {string} - tema (layer) que será verificado | ||
112 | + * | ||
113 | + * Retorno: | ||
114 | + * | ||
115 | + * {string} - sim|nao | ||
116 | + */ | ||
117 | +function existeTemaWFS() { | ||
118 | + global $wfs, $tema; | ||
119 | + $capabilities = implode ( "", $wfs ); | ||
120 | + $dom = new DomDocument (); | ||
121 | + $dom->loadXML ( $capabilities ); | ||
122 | + $xpath = new DOMXPath ( $dom ); | ||
123 | + $query = '//WFS_Capabilities/FeatureTypeList/FeatureType'; | ||
124 | + $entries = $xpath->query ( $query ); | ||
125 | + foreach ( $entries as $e ) { | ||
126 | + $e->getElementsByTagName ( "Name" ); | ||
127 | + $n = $e->nodeValue; | ||
128 | + if ($n == $tema) { | ||
129 | + return "sim"; | ||
130 | + } | ||
131 | + } | ||
132 | + return "nao"; | ||
133 | +} | ||
134 | +/* | ||
135 | + * Function: existeWFS | ||
136 | + * | ||
137 | + * Verifica se existe um servico WFS invocando o getcapabilities. | ||
138 | + * | ||
139 | + * Global: | ||
140 | + * | ||
141 | + * $servico {string} - endereço do serviço | ||
142 | + * | ||
143 | + * Retorno: | ||
144 | + * | ||
145 | + * {string} - nao|true | ||
146 | + */ | ||
147 | +function existeWFS() { | ||
148 | + global $servico; | ||
149 | + $teste = explode ( "=", $servico ); | ||
150 | + if (count ( $teste ) > 1) { | ||
151 | + $servico = $servico . "&"; | ||
152 | + } | ||
153 | + $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WFS"; | ||
154 | + // ------------------------------------------------------------- | ||
155 | + // Test that the capabilites file has successfully downloaded. | ||
156 | + // | ||
157 | + if (! ($wfs_capabilities = file ( $wms_service_request ))) { | ||
158 | + // Cannot download the capabilities file. | ||
159 | + return "nao"; | ||
160 | + } else { | ||
161 | + return $wfs_capabilities; | ||
162 | + } | ||
163 | +} | ||
164 | +/* | ||
165 | + * Function: getcapabilities | ||
166 | + * | ||
167 | + * Chama a função getcapabilities e retorna o resultado. | ||
168 | + * | ||
169 | + * Global: | ||
170 | + * | ||
171 | + * $servico {string} - Endereço do web service. | ||
172 | + * | ||
173 | + * Retorno: | ||
174 | + * | ||
175 | + * {string} | ||
176 | + */ | ||
177 | +function getcapabilities() { | ||
178 | + global $servico; | ||
179 | + $teste = explode ( "=", $servico ); | ||
180 | + if (count ( $teste ) > 1) { | ||
181 | + $servico = $servico . "&"; | ||
182 | + } | ||
183 | + $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WMS&version=1.1.0"; | ||
184 | + // ------------------------------------------------------------- | ||
185 | + // Test that the capabilites file has successfully downloaded. | ||
186 | + // | ||
187 | + if (! ($wms_capabilities = file ( $wms_service_request ))) { | ||
188 | + // Cannot download the capabilities file. | ||
189 | + $cp->set_data ( "Erro de acesso" ); | ||
190 | + return; | ||
191 | + } | ||
192 | + $wms_capabilities = implode ( "", $wms_capabilities ); | ||
193 | + return (xml2html ( $wms_capabilities )); | ||
194 | +} | ||
195 | +/* | ||
196 | + * function: getcapabilities2 | ||
197 | + * | ||
198 | + * Chama a função getcapabilities e retorna o resultado pré-formatado (WMS). | ||
199 | + * | ||
200 | + * Global: | ||
201 | + * | ||
202 | + * $servico {string} - Endereço do web service. | ||
203 | + * | ||
204 | + * Retorno: | ||
205 | + * | ||
206 | + * {string} | ||
207 | + */ | ||
208 | +function getcapabilities2() { | ||
209 | + global $servico; | ||
210 | + $teste = explode ( "=", $servico ); | ||
211 | + if (count ( $teste ) > 1) { | ||
212 | + $servico = $servico . "&"; | ||
213 | + } | ||
214 | + $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WMS"; | ||
215 | + $teste = explode ( "version", strtolower ( $wms_service_request ) ); | ||
216 | + if (count ( $teste ) == 1) { | ||
217 | + $wms_service_request .= "&VERSION=1.1.1"; | ||
218 | + } | ||
219 | + // ------------------------------------------------------------- | ||
220 | + // Test that the capabilites file has successfully downloaded. | ||
221 | + // | ||
222 | + if (! ($wms_capabilities = file ( $wms_service_request ))) { | ||
223 | + // Cannot download the capabilities file. | ||
224 | + $cp->set_data ( "Erro de acesso" ); | ||
225 | + return; | ||
226 | + } | ||
227 | + $wms_capabilities = implode ( "", $wms_capabilities ); | ||
228 | + $dom = new DomDocument (); | ||
229 | + $dom->loadXML ( $wms_capabilities ); | ||
230 | + $xpath = new DOMXPath ( $dom ); | ||
231 | + $retorno = ""; | ||
232 | + $query = '//WMT_MS_Capabilities/Service/Name'; | ||
233 | + $entries = $xpath->query ( $query ); | ||
234 | + if ($entries == FALSE || $entries->length == 0) { | ||
235 | + $rn = $xpath->registerNamespace ( "tag", "http://www.opengis.net/wms" ); | ||
236 | + $entries = $xpath->query ( '/tag:WMS_Capabilities/tag:Service/tag:Name' ); | ||
237 | + } | ||
238 | + | ||
239 | + $temp = ""; | ||
240 | + foreach ( $entries as $entry ) { | ||
241 | + $temp .= $entry->nodeValue; | ||
242 | + } | ||
243 | + $retorno .= "<b>Nome: </b>" . $temp; | ||
244 | + | ||
245 | + $query = '//WMT_MS_Capabilities/Service/Title'; | ||
246 | + $entries = $xpath->query ( $query ); | ||
247 | + if ($entries == FALSE || $entries->length == 0) { | ||
248 | + $entries = $xpath->query ( '/tag:WMS_Capabilities/tag:Service/tag:Title' ); | ||
249 | + } | ||
250 | + $temp = ""; | ||
251 | + foreach ( $entries as $entry ) { | ||
252 | + $temp .= $entry->nodeValue; | ||
253 | + } | ||
254 | + $retorno .= "<br><br><b>Título: </b>" . $temp; | ||
255 | + | ||
256 | + $query = '//WMT_MS_Capabilities/Service/Abstract'; | ||
257 | + $entries = $xpath->query ( $query ); | ||
258 | + if ($entries == FALSE || $entries->length == 0) { | ||
259 | + $entries = $xpath->query ( '/tag:WMS_Capabilities/tag:Service/tag:Abstract' ); | ||
260 | + } | ||
261 | + $temp = ""; | ||
262 | + foreach ( $entries as $entry ) { | ||
263 | + $temp .= $entry->nodeValue; | ||
264 | + } | ||
265 | + $retorno .= "<br><br><b>Resumo: </b>" . $temp; | ||
266 | + | ||
267 | + $query = '//WMT_MS_Capabilities/Service/KeywordList'; | ||
268 | + $entries = $xpath->query ( $query ); | ||
269 | + if ($entries == FALSE || $entries->length == 0) { | ||
270 | + $entries = $xpath->query ( '/tag:WMS_Capabilities/tag:Service/tag:KeywordList' ); | ||
271 | + } | ||
272 | + $temp = ""; | ||
273 | + foreach ( $entries as $entry ) { | ||
274 | + $temp .= $entry->nodeValue . "."; | ||
275 | + } | ||
276 | + $retorno .= "<br><br><b>Palavras-chave: </b>" . $temp; | ||
277 | + | ||
278 | + $query = '//WMT_MS_Capabilities/Service/ContactInformation'; | ||
279 | + $entries = $xpath->query ( $query ); | ||
280 | + if ($entries == FALSE || $entries->length == 0) { | ||
281 | + $entries = $xpath->query ( '/tag:WMS_Capabilities/tag:Service/tag:ContactInformation' ); | ||
282 | + } | ||
283 | + $temp = ""; | ||
284 | + foreach ( $entries as $entry ) { | ||
285 | + $temp .= $entry->nodeValue . "."; | ||
286 | + } | ||
287 | + $retorno .= "<br><br><b>Contato: </b>" . $temp; | ||
288 | + | ||
289 | + return ($retorno); | ||
290 | +} | ||
291 | +/* | ||
292 | + * getcapabilities3 | ||
293 | + * | ||
294 | + * Chama a função getcapabilities e retorna o resultado formatado (WFS). | ||
295 | + * | ||
296 | + * Global: | ||
297 | + * | ||
298 | + * $servico {string} - Endereço do web service. | ||
299 | + * | ||
300 | + * | ||
301 | + */ | ||
302 | +function getcapabilities3() { | ||
303 | + global $servico; | ||
304 | + $teste = explode ( "=", $servico ); | ||
305 | + if (count ( $teste ) > 1) { | ||
306 | + $servico = $servico . "&"; | ||
307 | + } | ||
308 | + $wms_service_request = $servico . "request=getcapabilities&service=wfs&version=1.0.0"; | ||
309 | + // ------------------------------------------------------------- | ||
310 | + // Test that the capabilites file has successfully downloaded. | ||
311 | + // | ||
312 | + if (! ($wms_capabilities = file ( $wms_service_request ))) { | ||
313 | + // Cannot download the capabilities file. | ||
314 | + $cp->set_data ( "Erro de acesso" ); | ||
315 | + return; | ||
316 | + } | ||
317 | + $wms_capabilities = implode ( "", $wms_capabilities ); | ||
318 | + $dom = new DomDocument (); | ||
319 | + $dom->loadXML ( $wms_capabilities ); | ||
320 | + $retorno = ""; | ||
321 | + $services = $dom->getElementsByTagName ( "Service" ); | ||
322 | + foreach ( $services as $service ) { | ||
323 | + $vs = $service->getElementsByTagName ( "Name" ); | ||
324 | + $temp = ""; | ||
325 | + foreach ( $vs as $v ) { | ||
326 | + $temp .= $v->nodeValue; | ||
327 | + } | ||
328 | + $retorno .= "<b>Nome: </b>" . $temp; | ||
329 | + $vs = $service->getElementsByTagName ( "Title" ); | ||
330 | + $temp = ""; | ||
331 | + foreach ( $vs as $v ) { | ||
332 | + $temp .= $v->nodeValue; | ||
333 | + } | ||
334 | + $retorno .= "<br><br><b>Título: </b>" . $temp; | ||
335 | + } | ||
336 | + return ($retorno); | ||
337 | +} | ||
338 | +/* | ||
339 | + * Function: temaswms | ||
340 | + * | ||
341 | + * Lista os temas de um web service WMS. | ||
342 | + * | ||
343 | + * Globais: | ||
344 | + * | ||
345 | + * $servico {string} - Endereço do web service. | ||
346 | + * | ||
347 | + * $id_ws {string} - (opcional) id do serviço registrado no sistema de administração do i3geo. Se definido, é feito o registro de tentativa de acesso ao serviço no sistema de administração | ||
348 | + * | ||
349 | + * Retorno: | ||
350 | + * | ||
351 | + * {html} - htaml formatado para permitir a escolha de uma camada | ||
352 | + */ | ||
353 | +function temaswms() { | ||
354 | + global $servico, $id_ws; | ||
355 | + // para admin1/cadastros/servicos/exec.php | ||
356 | + $_GET ["funcao"] = "lista"; | ||
357 | + $wms_service_request = gravaCacheWMS ( $servico ); | ||
358 | + // ------------------------------------------------------------- | ||
359 | + // Test that the capabilites file has successfully downloaded. | ||
360 | + // | ||
361 | + // $wms_service_request = "c://temp//teste.xml"; | ||
362 | + if (file_exists ( dirname ( __FILE__ ) . "/../admin1/cadastros/servicos/exec.php" )) { | ||
363 | + include_once (dirname ( __FILE__ ) . "/../admin1/cadastros/servicos/exec.php"); | ||
364 | + } else { | ||
365 | + include_once (dirname ( __FILE__ ) . "/../admin/php/admin.php"); | ||
366 | + include_once (dirname ( __FILE__ ) . "/../admin/php/webservices.php"); | ||
367 | + } | ||
368 | + | ||
369 | + // error_reporting(0); | ||
370 | + if ($wms_service_request == "erro") { | ||
371 | + // Cannot download the capabilities file. | ||
372 | + // registra a tentativa de acesso | ||
373 | + if (isset ( $id_ws )) { | ||
374 | + adicionaAcesso ( $id_ws, false ); | ||
375 | + } | ||
376 | + $cp->set_data ( "Erro de acesso" ); | ||
377 | + return; | ||
378 | + } elseif (isset ( $id_ws )) { | ||
379 | + if ($id_ws != "") | ||
380 | + adicionaAcesso ( $id_ws, true ); | ||
381 | + } | ||
382 | + $handle = fopen ( $wms_service_request, "r" ); | ||
383 | + $wms_capabilities = fread ( $handle, filesize ( $wms_service_request ) ); | ||
384 | + fclose ( $handle ); | ||
385 | + $dom = new DomDocument (); | ||
386 | + $dom->loadXML ( $wms_capabilities ); | ||
387 | + | ||
388 | + // var_dump($dom);exit; | ||
389 | + // $layers = wms_layers($dom); | ||
390 | + $xpath = new DOMXPath ( $dom ); | ||
391 | + // verifica sld | ||
392 | + $suporta = "nao"; | ||
393 | + $query = '//WMT_MS_Capabilities/Capability/UserDefinedSymbolization'; | ||
394 | + $entries = $xpath->query ( $query ); | ||
395 | + if ($entries->length == 0) { | ||
396 | + $suporta = "sim"; | ||
397 | + } else { | ||
398 | + foreach ( $entries as $e ) { | ||
399 | + $n = $e->getAttribute ( "SupportSLD" ); | ||
400 | + } | ||
401 | + if ($n == 1) { | ||
402 | + $suporta = "sim"; | ||
403 | + } | ||
404 | + } | ||
405 | + $xpath = new DOMXPath ( $dom ); | ||
406 | + // var_dump($xpath);exit; | ||
407 | + $q = '//WMT_MS_Capabilities/Capability'; | ||
408 | + $query = $q . '/Layer'; | ||
409 | + $layers = $xpath->query ( $query ); | ||
410 | + if ($layers == FALSE || $layers->length == 0) { | ||
411 | + $teste = $xpath->registerNamespace ( "tag", "http://www.opengis.net/wms" ); | ||
412 | + $q = '/tag:WMS_Capabilities/tag:Capability'; | ||
413 | + $query = $q . '/tag:Layer'; | ||
414 | + $layers = $xpath->query ( $query ); | ||
415 | + } | ||
416 | + // var_dump($layers);exit; | ||
417 | + $retorna = array (); | ||
418 | + foreach ( $layers as $layer ) { | ||
419 | + $layers1 = $xpath->query ( '/Layer', $layer ); | ||
420 | + if ($layers1->length == 0) // v 1.3.0 | ||
421 | +{ | ||
422 | + $layers1 = $layers; | ||
423 | + } else { | ||
424 | + $r = pegaTag ( $layer ); | ||
425 | + $retorna = imprimeTag ( $r, $retorna ); | ||
426 | + } | ||
427 | + foreach ( $layers1 as $layer1 ) { | ||
428 | + $layers2 = $xpath->query ( 'Layer', $layer1 ); | ||
429 | + $r1 = pegaTag ( $layer1 ); | ||
430 | + $camada1 = $r1 ["nome"]; | ||
431 | + $titulocamada1 = $r1 ["titulo"]; | ||
432 | + $retorna = imprimeTag ( $r1, $retorna ); | ||
433 | + if ($r1 ["estilos"]) { | ||
434 | + $retorna = imprimeEstilos ( $r1 ["estilos"], $suporta, $retorna, $camada1, $titulocamada1 ); | ||
435 | + } else { | ||
436 | + if ($layers2->length == 0){ | ||
437 | + $retorna [] = imprimeEstilos2 ($camada1, $titulocamada1, $suporta); | ||
438 | + //$retorna [] = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"tema\",\"" . $camada1 . "\",\"\",\"default\",\"" . $camada1 . " " . $titulocamada1 . "\",\"" . $suporta . "\")' value='" . $camada1 . "'/> default<i>" . $titulocamada1 . "</i></span><br>"; | ||
439 | + } | ||
440 | + } | ||
441 | + foreach ( $layers2 as $layer2 ) { | ||
442 | + $layers3 = $xpath->query ( 'Layer', $layer2 ); | ||
443 | + $r2 = pegaTag ( $layer2 ); | ||
444 | + $camada2 = $r2 ["nome"]; | ||
445 | + $titulocamada2 = $r2 ["titulo"]; | ||
446 | + $retorna = imprimeTag ( $r2, $retorna ); | ||
447 | + if ($r2 ["estilos"]) { | ||
448 | + $retorna = imprimeEstilos ( $r2 ["estilos"], $suporta, $retorna, $camada2, $titulocamada2 ); | ||
449 | + } else { | ||
450 | + if ($layers3->length == 0) | ||
451 | + $retorna [] = imprimeEstilos2 ($camada2, $titulocamada2, $suporta); | ||
452 | + //$retorna [] = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"tema\",\"" . $camada2 . "\",\"\",\"default\",\"" . $camada2 . " " . $titulocamada2 . "\",\"" . $suporta . "\")' value='" . $camada2 . "'/> default <i>" . $titulocamada2 . "</i></span><br>"; | ||
453 | + } | ||
454 | + foreach ( $layers3 as $layer3 ) { | ||
455 | + $r3 = pegaTag ( $layer3 ); | ||
456 | + $camada3 = $r3 ["nome"]; | ||
457 | + $titulocamada3 = $r3 ["titulo"]; | ||
458 | + $retorna = imprimeTag ( $r3, $retorna ); | ||
459 | + if ($r3 ["estilos"]) { | ||
460 | + $retorna = imprimeEstilos ( $r3 ["estilos"], $suporta, $retorna, $camada3, $titulocamada3 ); | ||
461 | + } else { | ||
462 | + $retorna [] = imprimeEstilos2 ($camada3, $titulocamada3, $suporta); | ||
463 | + //$retorna [] = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"tema\",\"" . $camada3 . "\",\"\",\"default\",\"" . $camada3 . " " . $titulocamada3 . "\",\"" . $suporta . "\")' value='" . $camada3 . "'/> default <i>" . $titulocamada3 . "</i></span><br>"; | ||
464 | + } | ||
465 | + } | ||
466 | + } | ||
467 | + if (count ( $layers2 ) == 1) { | ||
468 | + $retorna [] = "<hr>"; | ||
469 | + } | ||
470 | + } | ||
471 | + } | ||
472 | + | ||
473 | + $retorna [] = "<div class='form-group label-fixed condensed' ><label class='control-label' for='proj'>Projeção</label><input class='form-control input-lg' type='text' id='proj' value='" . implode ( ",", wms_srs ( $dom ) ) . "' /></div>"; | ||
474 | + $retorna [] = "<div class='form-group label-fixed condensed' ><label class='control-label' for='formatos'>Formatos imagem</label><input class='form-control input-lg' type='text' id='formatos' value='" . implode ( ",", wms_formats ( $dom ) ) . "' /></div>"; | ||
475 | + $retorna [] = "<div class='form-group label-fixed condensed' ><label class='control-label' for='formatosinfo'>Formatos de informação</label><input class='form-control input-lg' type='text' id='formatosinfo' value='" . implode ( ",", wms_formatsinfo ( $dom ) ) . "' /></div>"; | ||
476 | + $retorna [] = "<div class='form-group label-fixed condensed' ><label class='control-label' for='versao'>Versão</label><input class='form-control input-lg' type='text' id='versao' value='" . implode ( ",", wms_version ( $dom ) ) . "' /></div>"; | ||
477 | + $retorna [] = "<div class='form-group label-fixed condensed' ><label class='control-label' for='suportasld'>Suporta SLD</label><input class='form-control input-lg' type='text' id='suportasld' value='" . $suporta . "' /></div>"; | ||
478 | + | ||
479 | + //$retorna [] = "<h5>Projeção:</h5><div class='styled-select'><input type='text' id='proj' value='" . implode ( ",", wms_srs ( $dom ) ) . "' /></div>"; | ||
480 | + //$retorna [] = "<br><p class='paragrafo'>Formatos imagem:</p><div class='styled-select'><input type='text' id='formatos' value='" . implode ( ",", wms_formats ( $dom ) ) . "' /></div>"; | ||
481 | + //$retorna [] = "<br><p class='paragrafo'>Formatos de informação:</p><div class='styled-select'><input type='text' id='formatosinfo' value='" . implode ( ",", wms_formatsinfo ( $dom ) ) . "' /></div>"; | ||
482 | + //$retorna [] = "<br><p class='paragrafo'>Versão:</p><div class='styled-select'><input type='text' id='versao' value='" . implode ( ",", wms_version ( $dom ) ) . "' /></div>"; | ||
483 | + //$retorna [] = "<br><p class='paragrafo'>Suporta SLD:</p><div class='styled-select'><input type='text' id='suportasld' value='" . $suporta . "' /></div>"; | ||
484 | + return (implode ( $retorna )); | ||
485 | +} | ||
486 | +/* | ||
487 | + * Function: listaLayersWMS | ||
488 | + * | ||
489 | + * Lista os temas de um web service WMS e retorna o resultado como um array. | ||
490 | + * | ||
491 | + * Globais: | ||
492 | + * | ||
493 | + * $servico {string} - Endereço do web service. | ||
494 | + * | ||
495 | + * $nivel - nível do layer na hierarquia existente no getcapabilities | ||
496 | + * | ||
497 | + * $nomelayer - nome do layer que contém os pr�ximos layers | ||
498 | + * | ||
499 | + * Retorno: | ||
500 | + * | ||
501 | + * {array} | ||
502 | + */ | ||
503 | +function listaLayersWMS() { | ||
504 | + global $servico, $nivel, $id_ws, $nomelayer, $tipo_ws; | ||
505 | + | ||
506 | + if (! isset ( $nomelayer )) { | ||
507 | + $nomelayer = "undefined"; | ||
508 | + } | ||
509 | + // para o caso do sistema de metadados estatisticos | ||
510 | + $wms_service_request = gravaCacheWMS ( $servico ); | ||
511 | + include_once (dirname ( __FILE__ ) . "/../admin/php/admin.php"); | ||
512 | + include_once (dirname ( __FILE__ ) . "/../admin/php/webservices.php"); | ||
513 | + | ||
514 | + if ($tipo_ws != "WMSMETAESTAT" && $nivel < 2) { | ||
515 | + if ($wms_service_request == "erro") { | ||
516 | + // registra a tentativa de acesso | ||
517 | + if (isset ( $id_ws )) { | ||
518 | + adicionaAcesso ( $id_ws, false ); | ||
519 | + } | ||
520 | + $cp->set_data ( "Erro de acesso" ); | ||
521 | + return; | ||
522 | + } elseif (isset ( $id_ws )) { | ||
523 | + adicionaAcesso ( $id_ws, true ); | ||
524 | + } | ||
525 | + } | ||
526 | + | ||
527 | + $handle = fopen ( $wms_service_request, "r" ); | ||
528 | + $wms_capabilities = fread ( $handle, filesize ( $wms_service_request ) ); | ||
529 | + fclose ( $handle ); | ||
530 | + | ||
531 | + $dom = new DomDocument (); | ||
532 | + $dom->loadXML ( $wms_capabilities ); | ||
533 | + $xpath = new DOMXPath ( $dom ); | ||
534 | + $q = '//WMT_MS_Capabilities/Capability'; | ||
535 | + $res = array (); | ||
536 | + if ($nomelayer != "undefined") { | ||
537 | + for($i = 0; $i < $nivel - 1; ++ $i) { | ||
538 | + $q .= "/Layer"; | ||
539 | + } | ||
540 | + $layersanteriores = $xpath->query ( $q ); | ||
541 | + foreach ( $layersanteriores as $layeranterior ) { | ||
542 | + $r1 = pegaTag ( $layeranterior ); | ||
543 | + // echo "<pre>";var_dump($layeranterior); | ||
544 | + if ($r1 ["nome"] == $nomelayer || $r1 ["titulo"] == $nomelayer) { | ||
545 | + $layers = $xpath->query ( 'Layer', $layeranterior ); | ||
546 | + foreach ( $layers as $layer ) { | ||
547 | + $r = pegaTag ( $layer ); | ||
548 | + if (! $r ["nome"]) { | ||
549 | + $r ["nome"] = $r ["titulo"]; | ||
550 | + } | ||
551 | + $res [] = array ( | ||
552 | + "nome" => $r ["nome"], | ||
553 | + "titulo" => $r ["titulo"], | ||
554 | + "estilos" => $r ["estilos"], | ||
555 | + "srs" => wms_srs ( $dom ), | ||
556 | + "formats" => wms_formats ( $dom ), | ||
557 | + "version" => wms_version ( $dom ), | ||
558 | + "formatsinfo" => wms_formatsinfo ( $dom ) | ||
559 | + ); | ||
560 | + } | ||
561 | + if ($layers->length == 0) { | ||
562 | + $res [] = array ( | ||
563 | + "nome" => $r1 ["nome"], | ||
564 | + "titulo" => $r1 ["titulo"], | ||
565 | + "estilos" => (array ( | ||
566 | + array ( | ||
567 | + "nome" => "default", | ||
568 | + "titulo" => "default" | ||
569 | + ) | ||
570 | + )), | ||
571 | + "srs" => wms_srs ( $dom ), | ||
572 | + "formats" => wms_formats ( $dom ), | ||
573 | + "version" => wms_version ( $dom ), | ||
574 | + "formatsinfo" => wms_formatsinfo ( $dom ) | ||
575 | + ); | ||
576 | + } | ||
577 | + } | ||
578 | + } | ||
579 | + } else { | ||
580 | + // | ||
581 | + // pega os layers no primeiro nível | ||
582 | + // | ||
583 | + $q .= "/Layer"; | ||
584 | + $layers = $xpath->query ( $q ); | ||
585 | + $res = array (); | ||
586 | + foreach ( $layers as $layer ) { | ||
587 | + $r = pegaTag ( $layer ); | ||
588 | + // var_dump($r); | ||
589 | + if (! $r ["nome"]) { | ||
590 | + $r ["nome"] = $r ["titulo"]; | ||
591 | + } | ||
592 | + if (array_search ( "Style", $r ["tags"] ) || array_search ( "Layer", $r ["tags"] )) { | ||
593 | + $res [] = array ( | ||
594 | + "nome" => $r ["nome"], | ||
595 | + "titulo" => $r ["titulo"], | ||
596 | + "estilos" => $r ["estilos"], | ||
597 | + "srs" => wms_srs ( $dom ), | ||
598 | + "formats" => wms_formats ( $dom ), | ||
599 | + "version" => wms_version ( $dom ), | ||
600 | + "formatsinfo" => wms_formatsinfo ( $dom ) | ||
601 | + ) | ||
602 | + ; | ||
603 | + } | ||
604 | + } | ||
605 | + } | ||
606 | + // exit; | ||
607 | + return ($res); | ||
608 | +} | ||
609 | +function imprimeEstilos($es, $suporta, $retorna, $tval, $tituloalternativo) { | ||
610 | + foreach ( $es as $e ) { | ||
611 | + $nomeestilo = $e ["nome"]; | ||
612 | + $nomecamada = $e ["titulo"]; | ||
613 | + $tituloestilo = $e ["titulo"]; | ||
614 | + $onclick = "seltema(\"estilo\",\"" . $tval . "\",\"\",\"" . $nomeestilo . "\",\"" . $tituloalternativo . " " . $nomecamada . " " . $tituloestilo . "\",\"" . $suporta . "\")"; | ||
615 | + | ||
616 | + $retorna [] = <<<EOT | ||
617 | +<div class="list-group condensed"> | ||
618 | +<div class="row-content text-left"> | ||
619 | +<a onclick='$onclick' role="button" class="btn btn-default btn-fab btn-fab-max" href="javascript:void(0)"> | ||
620 | +<span class="material-icons">visibility</span> | ||
621 | +</a> | ||
622 | +<label class="nomeTema" > | ||
623 | +<a onclick='$onclick' href="javascript:void(0)"><h4> | ||
624 | +$nomeestilo | ||
625 | +</h4></a> | ||
626 | +<h6>$tituloestilo</h6> | ||
627 | +</label> | ||
628 | +</div> | ||
629 | +</div> | ||
630 | +EOT; | ||
631 | + | ||
632 | + // $retorna[] = "<button class='btn btn-primary btn-sm btn-raised' onClick='".onclick."' value='" . $nomeestilo . "'/>" . $nomeestilo." <i>".$tituloestilo."</i></span><br>"; | ||
633 | + } | ||
634 | + return $retorna; | ||
635 | +} | ||
636 | +function imprimeEstilos2($camada1, $titulocamada1, $suporta) { | ||
637 | + $onclick = "seltema(\"tema\",\"" . $camada1 . "\",\"\",\"default\",\"" . $camada1 . " " . $titulocamada1 . "\",\"" . $suporta . "\")"; | ||
638 | + $retorna = <<<EOT | ||
639 | +<div class="list-group condensed"> | ||
640 | +<div class="row-content text-left"> | ||
641 | +<a onclick='$onclick' role="button" class="btn btn-default btn-fab btn-fab-max" href="javascript:void(0)"> | ||
642 | +<span class="material-icons">visibility</span> | ||
643 | +</a> | ||
644 | +<label class="nomeTema" > | ||
645 | +<a onclick='$onclick' href="javascript:void(0)"><h4> | ||
646 | +default | ||
647 | +</h4></a> | ||
648 | +<h6>$titulocamada1</h6> | ||
649 | +</label> | ||
650 | +</div> | ||
651 | +</div> | ||
652 | +EOT; | ||
653 | + | ||
654 | + return $retorna; | ||
655 | +} | ||
656 | + | ||
657 | +function imprimeTag($r, $retorna) { | ||
658 | + if (! $r ["nome"]) { | ||
659 | + $retorna [] = "<h4>" . $r ["titulo"] . "</h4>"; | ||
660 | + } else { | ||
661 | + $retorna [] = "<hr>"; | ||
662 | + $retorna [] = "<h3>" . $r ["nome"] . "</h3>"; | ||
663 | + //$retorna [] = "<h4>" . $r ["titulo"] . "</h4>"; | ||
664 | + $retorna [] = "<h5>" . $r ["resumo"] . "</h5>"; | ||
665 | + } | ||
666 | + return $retorna; | ||
667 | +} | ||
668 | +function pegaTag($layer) { | ||
669 | + // error_reporting(0); | ||
670 | + $noslayer = $layer->childNodes; | ||
671 | + $resultado = array ( | ||
672 | + "estiloas" => array (), | ||
673 | + "tags" => array () | ||
674 | + ); | ||
675 | + for($i = 0; $i < $noslayer->length; ++ $i) { | ||
676 | + $tnome = $noslayer->item ( $i )->tagName; | ||
677 | + $tvalor = $noslayer->item ( $i )->nodeValue; | ||
678 | + if ($tnome) { | ||
679 | + // echo "<br>".$tnome; | ||
680 | + if ($tnome == "Title") { | ||
681 | + $resultado ["titulo"] = $tvalor; | ||
682 | + } | ||
683 | + if ($tnome == "Name") { | ||
684 | + $resultado ["nome"] = $tvalor; | ||
685 | + } | ||
686 | + if ($tnome == "Abstract") { | ||
687 | + $resultado ["resumo"] = $tvalor; | ||
688 | + } | ||
689 | + | ||
690 | + if ($tnome == "Style") { | ||
691 | + $ss = $noslayer->item ( $i )->childNodes; | ||
692 | + $ssl = $ss->length; | ||
693 | + $n = ""; | ||
694 | + $t = ""; | ||
695 | + for($s = 0; $s < $ssl; $s ++) { | ||
696 | + $snome = $ss->item ( $s )->tagName; | ||
697 | + $svalor = $ss->item ( $s )->nodeValue; | ||
698 | + if ($snome) { | ||
699 | + if ($snome == "Title") { | ||
700 | + $t = $svalor; | ||
701 | + } | ||
702 | + if ($snome == "Name") { | ||
703 | + $n = $svalor; | ||
704 | + } | ||
705 | + } | ||
706 | + } | ||
707 | + // echo "<pre>";echo $n; | ||
708 | + if ($n != "") { | ||
709 | + array_push ( $resultado ["estilos"], array ( | ||
710 | + "nome" => $n, | ||
711 | + "titulo" => $t | ||
712 | + ) ); | ||
713 | + } | ||
714 | + } | ||
715 | + array_push ( $resultado ["tags"], $tnome ); | ||
716 | + // echo "<pre>";var_dump($resultado); | ||
717 | + } | ||
718 | + } | ||
719 | + return $resultado; | ||
720 | +} | ||
721 | + | ||
722 | +/* | ||
723 | + * temaswfs | ||
724 | + * | ||
725 | + * Lista os temas de um web service WFS. | ||
726 | + * | ||
727 | + * parameters: | ||
728 | + * $servico - Endereço do web service. | ||
729 | + * | ||
730 | + * $cp - Objeto CPAINT. | ||
731 | + */ | ||
732 | +function temaswfs() { | ||
733 | + global $servico, $cp; | ||
734 | + $teste = explode ( "=", $servico ); | ||
735 | + if (count ( $teste ) > 1) { | ||
736 | + $servico = $servico . "&"; | ||
737 | + } | ||
738 | + $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WFS"; | ||
739 | + // ------------------------------------------------------------- | ||
740 | + // Test that the capabilites file has successfully downloaded. | ||
741 | + // | ||
742 | + if (! ($wms_capabilities = file ( $wms_service_request ))) { | ||
743 | + // Cannot download the capabilities file. | ||
744 | + $cp->set_data ( "Erro de acesso" ); | ||
745 | + return; | ||
746 | + } | ||
747 | + $wms_capabilities = implode ( "", $wms_capabilities ); | ||
748 | + $dom = new DomDocument (); | ||
749 | + $dom->loadXML ( $wms_capabilities ); | ||
750 | + $services = $dom->getElementsByTagName ( "Service" ); | ||
751 | + foreach ( $services as $service ) { | ||
752 | + $vs = $service->getElementsByTagName ( "Name" ); | ||
753 | + $serv = ""; | ||
754 | + foreach ( $vs as $v ) { | ||
755 | + $serv .= $v->nodeValue; | ||
756 | + } | ||
757 | + } | ||
758 | + $layers = $dom->getElementsByTagName ( "FeatureType" ); | ||
759 | + foreach ( $layers as $layer ) { | ||
760 | + $vs = $layer->getElementsByTagName ( "Title" ); | ||
761 | + $temp1 = ""; | ||
762 | + foreach ( $vs as $v ) { | ||
763 | + $temp1 .= $v->nodeValue; | ||
764 | + } | ||
765 | + | ||
766 | + $vs = $layer->getElementsByTagName ( "Abstract" ); | ||
767 | + $temp2 = ""; | ||
768 | + foreach ( $vs as $v ) { | ||
769 | + $temp2 .= $v->nodeValue; | ||
770 | + } | ||
771 | + | ||
772 | + $vs = $layer->getElementsByTagName ( "SRS" ); | ||
773 | + $temp3 = array (); | ||
774 | + foreach ( $vs as $v ) { | ||
775 | + $temp3 [] = $v->nodeValue; | ||
776 | + } | ||
777 | + $temp3 = implode ( "#", $temp3 ); | ||
778 | + | ||
779 | + $vs = $layer->getElementsByTagName ( "Name" ); | ||
780 | + $temp = ""; | ||
781 | + foreach ( $vs as $v ) { | ||
782 | + $temp .= $v->nodeValue; | ||
783 | + } | ||
784 | + $temp = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"" . $temp . "\",\"" . $temp1 . "\",\"" . $temp3 . "\",\"" . $serv . "\")' /><span style=color:red >" . $temp . "</span><br>"; | ||
785 | + $retorno .= "<br>" . $temp . $temp1 . "<br>" . $temp2 . "<hr>"; | ||
786 | + } | ||
787 | + $cp->set_data ( $retorno ); | ||
788 | +} | ||
789 | +/* | ||
790 | + * Function: xml2html | ||
791 | + * | ||
792 | + * Converte caracteres XML em HTML. | ||
793 | + * | ||
794 | + * Parametro: | ||
795 | + * | ||
796 | + * $str {string} - Xml que será convertido | ||
797 | + * | ||
798 | + * Retorno: | ||
799 | + * | ||
800 | + * {string} | ||
801 | + */ | ||
802 | +function xml2html($str) { | ||
803 | + $str = ereg_replace ( "&", "&", $str ); | ||
804 | + $str = ereg_replace ( "<", "<", $str ); | ||
805 | + $str = ereg_replace ( ">", "><BR>", $str ); | ||
806 | + return $str; | ||
807 | +} | ||
808 | +/* | ||
809 | + * wms_descricao | ||
810 | + * | ||
811 | + * Retorna a descrição de um serviço (n�). | ||
812 | + */ | ||
813 | +function wms_descricao($dom, $xp) { | ||
814 | + $xpath = new DOMXPath ( $dom ); | ||
815 | + $query = $xp; | ||
816 | + $entries = $xpath->query ( $query ); | ||
817 | + $n = ""; | ||
818 | + foreach ( $entries as $entry ) { | ||
819 | + $n = $entry->nodeValue; | ||
820 | + } | ||
821 | + return $n; | ||
822 | +} | ||
823 | +/* | ||
824 | + * wms_descricaov | ||
825 | + * | ||
826 | + * Retorna a descrição de um serviço (atributo). | ||
827 | + */ | ||
828 | +function wms_descricaov($dom, $xp, $attrib) { | ||
829 | + $xpath = new DOMXPath ( $dom ); | ||
830 | + $query = $xp; | ||
831 | + $entries = $xpath->query ( $query ); | ||
832 | + $n = ""; | ||
833 | + foreach ( $entries as $entry ) { | ||
834 | + $n = $entry->getAttribute ( $attrib ); | ||
835 | + } | ||
836 | + return $n; | ||
837 | +} | ||
838 | +/* | ||
839 | + * wms_descricaon | ||
840 | + * | ||
841 | + * Retorna a descrição de um serviço (filho de um n�). | ||
842 | + */ | ||
843 | +function wms_descricaon($dom, $xp, $n) { | ||
844 | + $ctx = xpath_new_context ( $dom ); | ||
845 | + $xpnode = xpath_eval ( $ctx, $xp ); | ||
846 | + $dtnode = $xpnode->nodeset [$n]->first_child (); | ||
847 | + return $dtnode->content; | ||
848 | +} | ||
849 | +/* | ||
850 | + * wms_title | ||
851 | + * | ||
852 | + * Retorna o título de um WMS. | ||
853 | + */ | ||
854 | +function wms_title($dom) { | ||
855 | + // | ||
856 | + // Read the WMS service title and return it as text. | ||
857 | + // | ||
858 | + $xpath = new DOMXPath ( $dom ); | ||
859 | + $query = '//WMT_MS_Capabilities/Service/Title'; | ||
860 | + $entries = $xpath->query ( $query ); | ||
861 | + foreach ( $entries as $entry ) { | ||
862 | + $nomeserv = $entry->nodeValue; | ||
863 | + } | ||
864 | + return $nomeserv; | ||
865 | +} | ||
866 | +/* | ||
867 | + * wms_onlineresource | ||
868 | + * | ||
869 | + * Retorna o recurso on-line de um WMS. | ||
870 | + */ | ||
871 | +function wms_onlineresource($dom) { | ||
872 | + // | ||
873 | + // Read the WMS online resource URL and return it as text. | ||
874 | + // | ||
875 | + $xp = "/WMT_MS_Capabilities/Service/OnlineResource"; | ||
876 | + $ctx = xpath_new_context ( $dom ); | ||
877 | + $xpnode = xpath_eval ( $ctx, $xp ); | ||
878 | + return $xpnode->nodeset [0]->get_attribute ( "href" ); | ||
879 | +} | ||
880 | +/* | ||
881 | + * wms_formats | ||
882 | + * | ||
883 | + * Retorna os formatos de imagem de um WMS. | ||
884 | + */ | ||
885 | +function wms_formats($dom) { | ||
886 | + $xpath = new DOMXPath ( $dom ); | ||
887 | + $query = '//WMT_MS_Capabilities/Capability/Request/GetMap/Format'; | ||
888 | + $entries = $xpath->query ( $query ); | ||
889 | + if ($entries == FALSE || $entries->length == 0) { | ||
890 | + $teste = $xpath->registerNamespace ( "tag", "http://www.opengis.net/wms" ); | ||
891 | + $q = '/tag:WMS_Capabilities/tag:Capability/tag:Request/tag:GetMap/tag:Format'; | ||
892 | + $entries = $xpath->query ( $q ); | ||
893 | + } | ||
894 | + $arr = array (); | ||
895 | + foreach ( $entries as $entry ) { | ||
896 | + $arr [] = $entry->nodeValue; | ||
897 | + } | ||
898 | + return $arr; | ||
899 | +} | ||
900 | +/* | ||
901 | + * wms_formatsinfo | ||
902 | + * | ||
903 | + * Retorna os formatos existentes de retorno da opção getfeatureinfo. | ||
904 | + */ | ||
905 | +function wms_formatsinfo($dom) { | ||
906 | + $xpath = new DOMXPath ( $dom ); | ||
907 | + $query = '//WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/Format'; | ||
908 | + $entries = $xpath->query ( $query ); | ||
909 | + if ($entries == FALSE || $entries->length == 0) { | ||
910 | + $teste = $xpath->registerNamespace ( "tag", "http://www.opengis.net/wms" ); | ||
911 | + $q = '/tag:WMS_Capabilities/tag:Capability/tag:Request/tag:GetCapabilities/tag:Format'; | ||
912 | + $entries = $xpath->query ( $q ); | ||
913 | + } | ||
914 | + $arr = array (); | ||
915 | + foreach ( $entries as $entry ) { | ||
916 | + $arr [] = $entry->nodeValue; | ||
917 | + } | ||
918 | + return $arr; | ||
919 | +} | ||
920 | +/* | ||
921 | + * wms_estilos | ||
922 | + * | ||
923 | + * Retorna os estilos de um WMS. | ||
924 | + */ | ||
925 | +function wms_estilos($dom) { | ||
926 | + // | ||
927 | + // Read the WMS image formats and return them as an array. | ||
928 | + // | ||
929 | + // $xp = "/Style"; | ||
930 | + // $ctx = xpath_new_context($dom); | ||
931 | + // $xpnode = xpath_eval($ctx,$xp); | ||
932 | + // return $xpnode->nodeset; | ||
933 | + $return = $dom->getElementsByTagName ( "Style" ); | ||
934 | +} | ||
935 | +/* | ||
936 | + * wms_exceptions | ||
937 | + * | ||
938 | + * Retorna as exceptions de um WMS. | ||
939 | + */ | ||
940 | +function wms_exceptions($dom) { | ||
941 | + // | ||
942 | + // Read the WMS exception formats and return them as an array. | ||
943 | + // | ||
944 | + $xp = "/WMT_MS_Capabilities/Capability/Exception/Format"; | ||
945 | + $ctx = xpath_new_context ( $dom ); | ||
946 | + $xpnode = xpath_eval ( $ctx, $xp ); | ||
947 | + $arr = array (); | ||
948 | + for($i = 0; $i < sizeof ( $xpnode->nodeset ); ++ $i) { | ||
949 | + $dtnode = $xpnode->nodeset [0]->first_child (); | ||
950 | + array_push ( $arr, $dtnode->content ); | ||
951 | + } | ||
952 | + return $arr; | ||
953 | +} | ||
954 | +/* | ||
955 | + * wms_version | ||
956 | + * | ||
957 | + * Retorna a versao. | ||
958 | + */ | ||
959 | +function wms_version($dom) { | ||
960 | + $n = $dom->getElementsByTagName ( 'WMT_MS_Capabilities' ); | ||
961 | + $params = $dom->getElementsByTagName ( '*' ); | ||
962 | + | ||
963 | + foreach ( $params as $param ) { | ||
964 | + $v = $param->getAttribute ( 'version' ); | ||
965 | + break; | ||
966 | + } | ||
967 | + return $v; | ||
968 | +} | ||
969 | +/* | ||
970 | + * wms_layers | ||
971 | + * | ||
972 | + * Retorna os layers de um WMS. | ||
973 | + */ | ||
974 | +function wms_layers($dom) { | ||
975 | + // | ||
976 | + // Read the WMS first level layers and return an | ||
977 | + // array of nodes. | ||
978 | + // | ||
979 | + $xpath = new DOMXPath ( $dom ); | ||
980 | + $query = '//WMT_MS_Capabilities/Capability/Layer/Layer/Layer'; | ||
981 | + $entries = $xpath->query ( $query ); | ||
982 | + if ($entries->length == 0) { | ||
983 | + $query = '//WMT_MS_Capabilities/Capability/Layer'; | ||
984 | + $entries = $xpath->query ( $query ); | ||
985 | + } else { | ||
986 | + $query = '//WMT_MS_Capabilities/Capability/Layer/Layer'; | ||
987 | + $entries = $xpath->query ( $query ); | ||
988 | + } | ||
989 | + return $entries; | ||
990 | +} | ||
991 | +/* | ||
992 | + * wms_xpnode2content | ||
993 | + * | ||
994 | + * Read the content child node of an element tag node WMS. | ||
995 | + */ | ||
996 | +function wms_xpnode2content($xp_node) { | ||
997 | + // | ||
998 | + // Read the content child node of an element tag | ||
999 | + // node. | ||
1000 | + // | ||
1001 | + $content = ""; | ||
1002 | + if ($xp_node->nodeset [0]) { | ||
1003 | + $node = $xp_node->nodeset [0]->first_child (); | ||
1004 | + $content = $node->content; | ||
1005 | + } | ||
1006 | + return $content; | ||
1007 | +} | ||
1008 | +/* | ||
1009 | + * wms_srs | ||
1010 | + * | ||
1011 | + * Retorna os SRSs WMS. | ||
1012 | + */ | ||
1013 | +function wms_srs($dom) { | ||
1014 | + $xpath = new DOMXPath ( $dom ); | ||
1015 | + $query = '//WMT_MS_Capabilities/Capability/Layer/SRS'; | ||
1016 | + $entries = $xpath->query ( $query ); | ||
1017 | + if ($entries == FALSE || $entries->length == 0) { | ||
1018 | + $teste = $xpath->registerNamespace ( "tag", "http://www.opengis.net/wms" ); | ||
1019 | + $q = '/tag:WMS_Capabilities/tag:Capability/tag:Layer/tag:CRS'; | ||
1020 | + $entries = $xpath->query ( $q ); | ||
1021 | + } | ||
1022 | + | ||
1023 | + $srs = ""; | ||
1024 | + // utiliza apenas os epsg do Brasil | ||
1025 | + $single = array (); | ||
1026 | + foreach ( $entries as $entry ) { | ||
1027 | + $arr [] = $entry->nodeValue; | ||
1028 | + if ($entry->nodeValue == "CRS:84") { | ||
1029 | + $single [] = "CRS:84"; | ||
1030 | + } | ||
1031 | + if ($entry->nodeValue == "EPSG:4326") { | ||
1032 | + $single [] = "EPSG:4326"; | ||
1033 | + } | ||
1034 | + if ($entry->nodeValue == "EPSG:4618") { | ||
1035 | + $single [] = "EPSG:4618"; | ||
1036 | + } | ||
1037 | + } | ||
1038 | + if (count ( $single ) > 0) { | ||
1039 | + $arr = $single; | ||
1040 | + } | ||
1041 | + return $arr; | ||
1042 | +} | ||
1043 | +/* | ||
1044 | + * wms_bbox | ||
1045 | + * | ||
1046 | + * Retorna o BBOX de um WMS. | ||
1047 | + */ | ||
1048 | +function wms_bbox($dom) { | ||
1049 | + $xpath = new DOMXPath ( $dom ); | ||
1050 | + $query = '//WMT_MS_Capabilities/Capability/Layer/LatLonBoundingBox'; | ||
1051 | + $entries = $xpath->query ( $query ); | ||
1052 | + foreach ( $entries as $entry ) { | ||
1053 | + $bbox = $entry->nodeValue; | ||
1054 | + } | ||
1055 | + if ($bbox == '-1,-1,-1,-1') { | ||
1056 | + return '-180,-90,180,90'; | ||
1057 | + } else { | ||
1058 | + return wms_bbox2txt ( $bbox ); | ||
1059 | + } | ||
1060 | +} | ||
1061 | +/* | ||
1062 | + * wms_bbox2txt | ||
1063 | + * | ||
1064 | + * Convert a BoundingBox node into a text string de um wms. | ||
1065 | + */ | ||
1066 | +function wms_bbox2txt($node) { | ||
1067 | + // | ||
1068 | + // Convert a BoundingBox node into a text string. | ||
1069 | + // | ||
1070 | + if ($node) { | ||
1071 | + $txt .= 1 * $node->get_attribute ( "minx" ); | ||
1072 | + $txt .= ","; | ||
1073 | + $txt .= 1 * $node->get_attribute ( "miny" ); | ||
1074 | + $txt .= ","; | ||
1075 | + $txt .= 1 * $node->get_attribute ( "maxx" ); | ||
1076 | + $txt .= ","; | ||
1077 | + $txt .= 1 * $node->get_attribute ( "maxy" ); | ||
1078 | + } else { | ||
1079 | + $txt = "-180,-90,180,90"; | ||
1080 | + } | ||
1081 | + return $txt; | ||
1082 | +} | ||
1083 | +/* | ||
1084 | + * wms_layer2html | ||
1085 | + * | ||
1086 | + * Convert a Layer node into an HTML representation wms. | ||
1087 | + */ | ||
1088 | +function wms_layer2html($node, $tipo, $layer) { | ||
1089 | + // | ||
1090 | + // Convert a Layer node into an HTML representation. | ||
1091 | + // | ||
1092 | + $ctx = xpath_new_context ( $node ); | ||
1093 | + $xp_title = xpath_eval ( $ctx, "/Title" ); | ||
1094 | + $xp_name = xpath_eval ( $ctx, "/Name" ); | ||
1095 | + if (wms_xpnode2content ( $xp_name ) == "") { | ||
1096 | + $xp_name = xpath_eval ( $ctx, "/name" ); | ||
1097 | + } | ||
1098 | + $xp_srs = xpath_eval ( $ctx, "/SRS" ); | ||
1099 | + $xp_llbbox = xpath_eval ( $ctx, "/LatLonBoundingBox" ); | ||
1100 | + $xp_bbox = xpath_eval ( $ctx, "/BoundingBox" ); | ||
1101 | + $txt_title = wms_xpnode2content ( $xp_title ); | ||
1102 | + $txt_name = wms_xpnode2content ( $xp_name ); | ||
1103 | + $txt_srs = strtoupper ( wms_xpnode2content ( $xp_srs ) ); | ||
1104 | + $node_llbbox = $xp_llbbox->nodeset [0]; | ||
1105 | + $node_bbox = $xp_bbox->nodeset [0]; | ||
1106 | + $queryable = 0; | ||
1107 | + if ($node->get_attribute ( "queryable" )) { | ||
1108 | + $queryable = 1; | ||
1109 | + } | ||
1110 | + $opaque = 0; | ||
1111 | + if ($node->get_attribute ( "opaque" )) { | ||
1112 | + $opaque = 1; | ||
1113 | + } | ||
1114 | + // legenda | ||
1115 | + $xp_legenda = xpath_eval ( $ctx, "/LegendURL/OnlineResource" ); | ||
1116 | + $nodelegenda = $xp_legenda->nodeset [0]; | ||
1117 | + if ($nodelegenda) { | ||
1118 | + $legenda = $nodelegenda->get_attribute ( "href" ); | ||
1119 | + } | ||
1120 | + | ||
1121 | + $html = "<INPUT TYPE='radio' NAME='checks' VALUE='$txt_name' onClick='toggle(event,\"$tipo\",\"$layer\",\"$legenda\",\"$txt_title\")'>"; | ||
1122 | + $html .= " "; | ||
1123 | + $html .= $txt_title . "\n"; | ||
1124 | + $html .= wms_hidden ( "bbox_$txt_name", wms_bbox2txt ( $node_bbox ) ); | ||
1125 | + $html .= wms_hidden ( "llbox_$txt_name", wms_bbox2txt ( $node_llbbox ) ); | ||
1126 | + $html .= wms_hidden ( "srs_$txt_name", $txt_srs ); | ||
1127 | + $html .= wms_hidden ( "query_$txt_name", $queryable ); | ||
1128 | + $html .= wms_hidden ( "opaque_$txt_name", $opaque ); | ||
1129 | + $html .= "<BR>"; | ||
1130 | + return $html; | ||
1131 | +} | ||
1132 | +/* | ||
1133 | + * wms_layer3html | ||
1134 | + * | ||
1135 | + * Convert a Layer node into an HTML representation sem radio. | ||
1136 | + */ | ||
1137 | +function wms_layer3html($node) { | ||
1138 | + // | ||
1139 | + // Convert a Layer node into an HTML representation sem radio. | ||
1140 | + // | ||
1141 | + $ctx = xpath_new_context ( $node ); | ||
1142 | + $xp_title = xpath_eval ( $ctx, "/Title" ); | ||
1143 | + $xp_abs = xpath_eval ( $ctx, "/Abstract" ); | ||
1144 | + $txt_title = wms_xpnode2content ( $xp_title ); | ||
1145 | + $txt_abs = wms_xpnode2content ( $xp_abs ); | ||
1146 | + $html .= "<b>" . $txt_title . "</b><i style='color:gray'>" . "-" . $txt_abs . "</i>\n"; | ||
1147 | + $html .= "<BR>"; | ||
1148 | + return $html; | ||
1149 | +} | ||
1150 | +/* | ||
1151 | + * wms_layer4html | ||
1152 | + * | ||
1153 | + * Convert a Layer into an HTML WMS. | ||
1154 | + */ | ||
1155 | +function wms_layer4html($layer) { | ||
1156 | + $estilos = wms_estilos ( $layer ); | ||
1157 | + if (count ( $estilos ) > 0) { | ||
1158 | + $ctxl = xpath_new_context ( $layer ); | ||
1159 | + $xp_namel = xpath_eval ( $ctxl, "/Name" ); | ||
1160 | + if (wms_xpnode2content ( $xp_namel ) == "") { | ||
1161 | + $xp_namel = xpath_eval ( $ctxl, "/name" ); | ||
1162 | + } | ||
1163 | + $txt_namel = wms_xpnode2content ( $xp_namel ); | ||
1164 | + $html .= wms_layer3html ( $layer ); | ||
1165 | + foreach ( $estilos as $estilo ) { | ||
1166 | + $html .= wms_layer2html ( $estilo, "estilo", $txt_namel ); | ||
1167 | + } | ||
1168 | + } else { | ||
1169 | + $html .= wms_layer2html ( $layer, "tema", "" ); | ||
1170 | + } | ||
1171 | + return $html; | ||
1172 | +} | ||
568 | 1173 | ||
569 | - ); | ||
570 | - } | ||
571 | - } | ||
572 | - } | ||
573 | - //exit; | ||
574 | - return($res); | ||
575 | -} | ||
576 | - | ||
577 | -function imprimeEstilos($es,$suporta,$retorna,$tval,$tituloalternativo) | ||
578 | -{ | ||
579 | - foreach($es as $e) | ||
580 | - { | ||
581 | - //$tval = $e["titulo"]; | ||
582 | - $nomeestilo = $e["nome"]; | ||
583 | - $nomecamada = $e["titulo"]; | ||
584 | - //if($nomecamada == "default" || $nomecamada == "") | ||
585 | - //{$nomecamada = $tituloalternativo;} | ||
586 | - $tituloestilo = $e["titulo"]; | ||
587 | - $retorna[] = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"estilo\",\"" . $tval . "\",\"\",\"" . $nomeestilo . "\",\"".$tituloalternativo." ".$nomecamada." ".$tituloestilo."\",\"".$suporta."\")' value='" . $nomeestilo . "'/><span style=color:blue >" . $nomeestilo." <i>".$tituloestilo."</i></span><br>"; | ||
588 | - } | ||
589 | - return $retorna; | ||
590 | -} | ||
591 | -function imprimeTag($r,$retorna) | ||
592 | -{ | ||
593 | - if(!$r["nome"]) | ||
594 | - {$retorna[] = "<br><span style='color:brown;font-size:14pt' ><b>".$r["titulo"]."</b></span><br>";} | ||
595 | - else | ||
596 | - { | ||
597 | - $retorna[] = "<hr>"; | ||
598 | - $retorna[] = "<br><span style='color:brown;font-size:12pt' ><b>".$r["nome"]."</b></span><br>"; | ||
599 | - $retorna[] = "<br><span style='color:black;font-size:12pt' ><b>".$r["titulo"]."</b></span><br>"; | ||
600 | - $retorna[] = "<br><span style='color:gray;font-size:9pt' >".$r["resumo"]."</span><br>"; | ||
601 | - } | ||
602 | - return $retorna; | ||
603 | -} | ||
604 | -function pegaTag($layer) | ||
605 | -{ | ||
606 | - //error_reporting(0); | ||
607 | - $noslayer = $layer->childNodes; | ||
608 | - $resultado = array( | ||
609 | - "estiloas" => array(), | ||
610 | - "tags" => array() | ||
611 | - ); | ||
612 | - for ($i = 0; $i < $noslayer->length; ++$i){ | ||
613 | - $tnome = $noslayer->item($i)->tagName; | ||
614 | - $tvalor = $noslayer->item($i)->nodeValue; | ||
615 | - if($tnome){ | ||
616 | - //echo "<br>".$tnome; | ||
617 | - if ($tnome == "Title") | ||
618 | - {$resultado["titulo"] = $tvalor;} | ||
619 | - if ($tnome == "Name") | ||
620 | - {$resultado["nome"] = $tvalor;} | ||
621 | - if ($tnome == "Abstract") | ||
622 | - {$resultado["resumo"] = $tvalor;} | ||
623 | - | ||
624 | - if ($tnome == "Style"){ | ||
625 | - $ss = $noslayer->item($i)->childNodes; | ||
626 | - $ssl = $ss->length; | ||
627 | - $n = ""; | ||
628 | - $t = ""; | ||
629 | - for ($s = 0; $s < $ssl; $s++) | ||
630 | - { | ||
631 | - $snome = $ss->item($s)->tagName; | ||
632 | - $svalor = $ss->item($s)->nodeValue; | ||
633 | - if($snome) | ||
634 | - { | ||
635 | - if ($snome == "Title") | ||
636 | - {$t=$svalor;} | ||
637 | - if ($snome == "Name") | ||
638 | - {$n=$svalor;} | ||
639 | - } | ||
640 | - } | ||
641 | - //echo "<pre>";echo $n; | ||
642 | - if($n != ""){ | ||
643 | - array_push($resultado["estilos"],array("nome"=>$n,"titulo"=>$t)); | ||
644 | - } | ||
645 | - } | ||
646 | - array_push($resultado["tags"],$tnome); | ||
647 | - //echo "<pre>";var_dump($resultado); | ||
648 | - } | ||
649 | - } | ||
650 | - return $resultado; | ||
651 | -} | ||
652 | - | ||
653 | - | ||
654 | -/* | ||
655 | -temaswfs | ||
656 | - | ||
657 | -Lista os temas de um web service WFS. | ||
658 | - | ||
659 | -parameters: | ||
660 | -$servico - Endereço do web service. | ||
661 | - | ||
662 | -$cp - Objeto CPAINT. | ||
663 | -*/ | ||
664 | -function temaswfs() | ||
665 | -{ | ||
666 | - global $servico,$cp; | ||
667 | - $teste = explode("=",$servico); | ||
668 | - if ( count($teste) > 1 ){$servico = $servico."&";} | ||
669 | - $wms_service_request = $servico . "REQUEST=GetCapabilities&SERVICE=WFS"; | ||
670 | - # ------------------------------------------------------------- | ||
671 | - # Test that the capabilites file has successfully downloaded. | ||
672 | - # | ||
673 | - if( !($wms_capabilities = file($wms_service_request)) ) { | ||
674 | - # Cannot download the capabilities file. | ||
675 | - $cp->set_data("Erro de acesso"); | ||
676 | - return; | ||
677 | - } | ||
678 | - $wms_capabilities = implode("",$wms_capabilities); | ||
679 | - $dom = new DomDocument(); | ||
680 | - $dom->loadXML($wms_capabilities); | ||
681 | - $services = $dom->getElementsByTagName("Service"); | ||
682 | - foreach ($services as $service) | ||
683 | - { | ||
684 | - $vs = $service->getElementsByTagName("Name"); | ||
685 | - $serv = ""; | ||
686 | - foreach ($vs as $v) | ||
687 | - {$serv .= $v->nodeValue;} | ||
688 | - } | ||
689 | - $layers = $dom->getElementsByTagName("FeatureType"); | ||
690 | - foreach ($layers as $layer) | ||
691 | - { | ||
692 | - $vs = $layer->getElementsByTagName("Title"); | ||
693 | - $temp1 = ""; | ||
694 | - foreach ($vs as $v) | ||
695 | - {$temp1 .= $v->nodeValue;} | ||
696 | - | ||
697 | - $vs = $layer->getElementsByTagName("Abstract"); | ||
698 | - $temp2 = ""; | ||
699 | - foreach ($vs as $v) | ||
700 | - {$temp2 .= $v->nodeValue;} | ||
701 | - | ||
702 | - $vs = $layer->getElementsByTagName("SRS"); | ||
703 | - $temp3 = array(); | ||
704 | - foreach ($vs as $v) | ||
705 | - {$temp3[] = $v->nodeValue;} | ||
706 | - $temp3 = implode("#",$temp3); | ||
707 | - | ||
708 | - $vs = $layer->getElementsByTagName("Name"); | ||
709 | - $temp = ""; | ||
710 | - foreach ($vs as $v) | ||
711 | - {$temp .= $v->nodeValue;} | ||
712 | - $temp = "<input style='cursor:pointer' type=radio NAME='checks' onClick='seltema(\"" . $temp . "\",\"" .$temp1. "\",\"" . $temp3 . "\",\"" . $serv ."\")' /><span style=color:red >" . $temp . "</span><br>"; | ||
713 | - $retorno .= "<br>".$temp.$temp1."<br>".$temp2."<hr>"; | ||
714 | - } | ||
715 | - $cp->set_data($retorno); | ||
716 | -} | ||
717 | -/* | ||
718 | -Function: xml2html | ||
719 | - | ||
720 | -Converte caracteres XML em HTML. | ||
721 | - | ||
722 | -Parametro: | ||
723 | - | ||
724 | -$str {string} - Xml que será convertido | ||
725 | - | ||
726 | -Retorno: | ||
727 | - | ||
728 | -{string} | ||
729 | -*/ | ||
730 | -function xml2html ( $str ) | ||
731 | -{ | ||
732 | - $str = ereg_replace("&","&",$str); | ||
733 | - $str = ereg_replace("<","<",$str); | ||
734 | - $str = ereg_replace(">","><BR>",$str); | ||
735 | - return $str; | ||
736 | -} | ||
737 | -/* | ||
738 | -wms_descricao | ||
739 | - | ||
740 | -Retorna a descrição de um serviço (n�). | ||
741 | -*/ | ||
742 | -function wms_descricao ( $dom,$xp ) | ||
743 | -{ | ||
744 | - $xpath = new DOMXPath($dom); | ||
745 | - $query = $xp; | ||
746 | - $entries = $xpath->query($query); | ||
747 | - $n = ""; | ||
748 | - foreach ($entries as $entry) | ||
749 | - { | ||
750 | - $n = $entry->nodeValue; | ||
751 | - } | ||
752 | - return $n; | ||
753 | -} | ||
754 | -/* | ||
755 | -wms_descricaov | ||
756 | - | ||
757 | -Retorna a descrição de um serviço (atributo). | ||
758 | -*/ | ||
759 | -function wms_descricaov ( $dom,$xp,$attrib ) | ||
760 | -{ | ||
761 | - $xpath = new DOMXPath($dom); | ||
762 | - $query = $xp; | ||
763 | - $entries = $xpath->query($query); | ||
764 | - $n = ""; | ||
765 | - foreach ($entries as $entry) | ||
766 | - { | ||
767 | - $n = $entry->getAttribute($attrib); | ||
768 | - } | ||
769 | - return $n; | ||
770 | -} | ||
771 | -/* | ||
772 | -wms_descricaon | ||
773 | - | ||
774 | -Retorna a descrição de um serviço (filho de um n�). | ||
775 | -*/ | ||
776 | -function wms_descricaon ( $dom,$xp,$n ) { | ||
777 | - $ctx = xpath_new_context($dom); | ||
778 | - $xpnode = xpath_eval($ctx,$xp); | ||
779 | - $dtnode = $xpnode->nodeset[$n]->first_child(); | ||
780 | - return $dtnode->content; | ||
781 | -} | ||
782 | -/* | ||
783 | -wms_title | ||
784 | - | ||
785 | -Retorna o título de um WMS. | ||
786 | -*/ | ||
787 | -function wms_title ( $dom ) { | ||
788 | - # | ||
789 | - # Read the WMS service title and return it as text. | ||
790 | - # | ||
791 | - $xpath = new DOMXPath($dom); | ||
792 | - $query = '//WMT_MS_Capabilities/Service/Title'; | ||
793 | - $entries = $xpath->query($query); | ||
794 | - foreach ($entries as $entry){$nomeserv = $entry->nodeValue;} | ||
795 | - return $nomeserv; | ||
796 | -} | ||
797 | -/* | ||
798 | -wms_onlineresource | ||
799 | - | ||
800 | -Retorna o recurso on-line de um WMS. | ||
801 | -*/ | ||
802 | -function wms_onlineresource ( $dom ) { | ||
803 | - # | ||
804 | - # Read the WMS online resource URL and return it as text. | ||
805 | - # | ||
806 | - $xp = "/WMT_MS_Capabilities/Service/OnlineResource"; | ||
807 | - $ctx = xpath_new_context($dom); | ||
808 | - $xpnode = xpath_eval($ctx,$xp); | ||
809 | - return $xpnode->nodeset[0]->get_attribute("href"); | ||
810 | -} | ||
811 | -/* | ||
812 | -wms_formats | ||
813 | - | ||
814 | -Retorna os formatos de imagem de um WMS. | ||
815 | -*/ | ||
816 | -function wms_formats ( $dom ) | ||
817 | -{ | ||
818 | - $xpath = new DOMXPath($dom); | ||
819 | - $query = '//WMT_MS_Capabilities/Capability/Request/GetMap/Format'; | ||
820 | - $entries = $xpath->query($query); | ||
821 | - if($entries == FALSE || $entries->length == 0){ | ||
822 | - $teste = $xpath->registerNamespace("tag", "http://www.opengis.net/wms"); | ||
823 | - $q = '/tag:WMS_Capabilities/tag:Capability/tag:Request/tag:GetMap/tag:Format'; | ||
824 | - $entries = $xpath->query($q); | ||
825 | - } | ||
826 | - $arr = array(); | ||
827 | - foreach ($entries as $entry) | ||
828 | - { | ||
829 | - $arr[] = $entry->nodeValue; | ||
830 | - } | ||
831 | - return $arr; | ||
832 | -} | ||
833 | -/* | ||
834 | -wms_formatsinfo | ||
835 | - | ||
836 | -Retorna os formatos existentes de retorno da opção getfeatureinfo. | ||
837 | -*/ | ||
838 | -function wms_formatsinfo ( $dom ) | ||
839 | -{ | ||
840 | - $xpath = new DOMXPath($dom); | ||
841 | - $query = '//WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/Format'; | ||
842 | - $entries = $xpath->query($query); | ||
843 | - if($entries == FALSE || $entries->length == 0){ | ||
844 | - $teste = $xpath->registerNamespace("tag", "http://www.opengis.net/wms"); | ||
845 | - $q = '/tag:WMS_Capabilities/tag:Capability/tag:Request/tag:GetCapabilities/tag:Format'; | ||
846 | - $entries = $xpath->query($q); | ||
847 | - } | ||
848 | - $arr = array(); | ||
849 | - foreach ($entries as $entry) | ||
850 | - { | ||
851 | - $arr[] = $entry->nodeValue; | ||
852 | - } | ||
853 | - return $arr; | ||
854 | -} | ||
855 | -/* | ||
856 | -wms_estilos | ||
857 | - | ||
858 | -Retorna os estilos de um WMS. | ||
859 | -*/ | ||
860 | -function wms_estilos ( $dom ) { | ||
861 | - # | ||
862 | - # Read the WMS image formats and return them as an array. | ||
863 | - # | ||
864 | - //$xp = "/Style"; | ||
865 | - //$ctx = xpath_new_context($dom); | ||
866 | - //$xpnode = xpath_eval($ctx,$xp); | ||
867 | - //return $xpnode->nodeset; | ||
868 | - $return = $dom->getElementsByTagName("Style"); | ||
869 | - | ||
870 | -} | ||
871 | -/* | ||
872 | -wms_exceptions | ||
873 | - | ||
874 | -Retorna as exceptions de um WMS. | ||
875 | -*/ | ||
876 | -function wms_exceptions ( $dom ) { | ||
877 | - # | ||
878 | - # Read the WMS exception formats and return them as an array. | ||
879 | - # | ||
880 | - $xp = "/WMT_MS_Capabilities/Capability/Exception/Format"; | ||
881 | - $ctx = xpath_new_context($dom); | ||
882 | - $xpnode = xpath_eval($ctx,$xp); | ||
883 | - $arr = array(); | ||
884 | - for( $i = 0; $i < sizeof($xpnode->nodeset); ++$i ) { | ||
885 | - $dtnode = $xpnode->nodeset[0]->first_child(); | ||
886 | - array_push($arr,$dtnode->content); | ||
887 | - } | ||
888 | - return $arr; | ||
889 | -} | ||
890 | -/* | ||
891 | -wms_version | ||
892 | - | ||
893 | -Retorna a versao. | ||
894 | -*/ | ||
895 | -function wms_version ( $dom ) | ||
896 | -{ | ||
897 | - $n = $dom->getElementsByTagName('WMT_MS_Capabilities'); | ||
898 | - $params = $dom->getElementsByTagName('*'); | ||
899 | - | ||
900 | - foreach ($params as $param) { | ||
901 | - $v = $param -> getAttribute('version'); | ||
902 | - break; | ||
903 | - } | ||
904 | - return $v; | ||
905 | -} | ||
906 | -/* | ||
907 | -wms_layers | ||
908 | - | ||
909 | -Retorna os layers de um WMS. | ||
910 | -*/ | ||
911 | -function wms_layers ( $dom ) { | ||
912 | - # | ||
913 | - # Read the WMS first level layers and return an | ||
914 | - # array of nodes. | ||
915 | - # | ||
916 | - $xpath = new DOMXPath($dom); | ||
917 | - $query = '//WMT_MS_Capabilities/Capability/Layer/Layer/Layer'; | ||
918 | - $entries = $xpath->query($query); | ||
919 | - if ($entries->length == 0) | ||
920 | - { | ||
921 | - $query = '//WMT_MS_Capabilities/Capability/Layer'; | ||
922 | - $entries = $xpath->query($query); | ||
923 | - } | ||
924 | - else | ||
925 | - { | ||
926 | - $query = '//WMT_MS_Capabilities/Capability/Layer/Layer'; | ||
927 | - $entries = $xpath->query($query); | ||
928 | - } | ||
929 | - return $entries; | ||
930 | -} | ||
931 | -/* | ||
932 | -wms_xpnode2content | ||
933 | - | ||
934 | -Read the content child node of an element tag node WMS. | ||
935 | -*/ | ||
936 | -function wms_xpnode2content( $xp_node ) { | ||
937 | - # | ||
938 | - # Read the content child node of an element tag | ||
939 | - # node. | ||
940 | - # | ||
941 | - $content = ""; | ||
942 | - if( $xp_node->nodeset[0] ) { | ||
943 | - $node = $xp_node->nodeset[0]->first_child(); | ||
944 | - $content = $node->content; | ||
945 | - } | ||
946 | - return $content; | ||
947 | -} | ||
948 | -/* | ||
949 | -wms_srs | ||
950 | - | ||
951 | -Retorna os SRSs WMS. | ||
952 | -*/ | ||
953 | -function wms_srs( $dom ) | ||
954 | -{ | ||
955 | - $xpath = new DOMXPath($dom); | ||
956 | - $query = '//WMT_MS_Capabilities/Capability/Layer/SRS'; | ||
957 | - $entries = $xpath->query($query); | ||
958 | - if($entries == FALSE || $entries->length == 0){ | ||
959 | - $teste = $xpath->registerNamespace("tag", "http://www.opengis.net/wms"); | ||
960 | - $q = '/tag:WMS_Capabilities/tag:Capability/tag:Layer/tag:CRS'; | ||
961 | - $entries = $xpath->query($q); | ||
962 | - } | ||
963 | - | ||
964 | - $srs = ""; | ||
965 | - //utiliza apenas os epsg do Brasil | ||
966 | - $single = array(); | ||
967 | - foreach ($entries as $entry) | ||
968 | - { | ||
969 | - $arr[] = $entry->nodeValue; | ||
970 | - if ($entry->nodeValue == "CRS:84") | ||
971 | - {$single[] = "CRS:84";} | ||
972 | - if ($entry->nodeValue == "EPSG:4326") | ||
973 | - {$single[] = "EPSG:4326";} | ||
974 | - if ($entry->nodeValue == "EPSG:4618") | ||
975 | - {$single[] = "EPSG:4618";} | ||
976 | - } | ||
977 | - if (count($single) > 0) | ||
978 | - {$arr = $single;} | ||
979 | - return $arr; | ||
980 | -} | ||
981 | -/* | ||
982 | -wms_bbox | ||
983 | - | ||
984 | -Retorna o BBOX de um WMS. | ||
985 | -*/ | ||
986 | -function wms_bbox( $dom ) | ||
987 | -{ | ||
988 | - $xpath = new DOMXPath($dom); | ||
989 | - $query = '//WMT_MS_Capabilities/Capability/Layer/LatLonBoundingBox'; | ||
990 | - $entries = $xpath->query($query); | ||
991 | - foreach ($entries as $entry){$bbox = $entry->nodeValue;} | ||
992 | - if ($bbox == '-1,-1,-1,-1') | ||
993 | - {return '-180,-90,180,90';} | ||
994 | - else | ||
995 | - {return wms_bbox2txt($bbox);} | ||
996 | -} | ||
997 | -/* | ||
998 | -wms_bbox2txt | ||
999 | - | ||
1000 | -Convert a BoundingBox node into a text string de um wms. | ||
1001 | -*/ | ||
1002 | -function wms_bbox2txt( $node ) { | ||
1003 | - # | ||
1004 | - # Convert a BoundingBox node into a text string. | ||
1005 | - # | ||
1006 | - if( $node ) { | ||
1007 | - $txt .= 1 * $node->get_attribute("minx"); | ||
1008 | - $txt .= ","; | ||
1009 | - $txt .= 1 * $node->get_attribute("miny"); | ||
1010 | - $txt .= ","; | ||
1011 | - $txt .= 1 * $node->get_attribute("maxx"); | ||
1012 | - $txt .= ","; | ||
1013 | - $txt .= 1 * $node->get_attribute("maxy"); | ||
1014 | - } | ||
1015 | - else { | ||
1016 | - $txt = "-180,-90,180,90"; | ||
1017 | - } | ||
1018 | - return $txt; | ||
1019 | -} | ||
1020 | -/* | ||
1021 | -wms_layer2html | ||
1022 | - | ||
1023 | -Convert a Layer node into an HTML representation wms. | ||
1024 | -*/ | ||
1025 | -function wms_layer2html( $node, $tipo , $layer ) { | ||
1026 | - # | ||
1027 | - # Convert a Layer node into an HTML representation. | ||
1028 | - # | ||
1029 | - $ctx = xpath_new_context($node); | ||
1030 | - $xp_title = xpath_eval($ctx,"/Title"); | ||
1031 | - $xp_name = xpath_eval($ctx,"/Name"); | ||
1032 | - if (wms_xpnode2content($xp_name) == ""){$xp_name = xpath_eval($ctx,"/name");} | ||
1033 | - $xp_srs = xpath_eval($ctx,"/SRS"); | ||
1034 | - $xp_llbbox = xpath_eval($ctx,"/LatLonBoundingBox"); | ||
1035 | - $xp_bbox = xpath_eval($ctx,"/BoundingBox"); | ||
1036 | - $txt_title = wms_xpnode2content($xp_title); | ||
1037 | - $txt_name = wms_xpnode2content($xp_name); | ||
1038 | - $txt_srs = strtoupper(wms_xpnode2content($xp_srs)); | ||
1039 | - $node_llbbox = $xp_llbbox->nodeset[0]; | ||
1040 | - $node_bbox = $xp_bbox->nodeset[0]; | ||
1041 | - $queryable = 0; | ||
1042 | - if ( $node->get_attribute("queryable") ) { | ||
1043 | - $queryable = 1; | ||
1044 | - } | ||
1045 | - $opaque = 0; | ||
1046 | - if ( $node->get_attribute("opaque") ) { | ||
1047 | - $opaque = 1; | ||
1048 | - } | ||
1049 | - //legenda | ||
1050 | - $xp_legenda = xpath_eval($ctx,"/LegendURL/OnlineResource"); | ||
1051 | - $nodelegenda = $xp_legenda->nodeset[0]; | ||
1052 | - if($nodelegenda) | ||
1053 | - { $legenda = $nodelegenda->get_attribute("href");} | ||
1054 | - | ||
1055 | - $html = "<INPUT TYPE='radio' NAME='checks' VALUE='$txt_name' onClick='toggle(event,\"$tipo\",\"$layer\",\"$legenda\",\"$txt_title\")'>"; | ||
1056 | - $html .= " "; | ||
1057 | - $html .= $txt_title . "\n"; | ||
1058 | - $html .= wms_hidden("bbox_$txt_name", wms_bbox2txt($node_bbox)); | ||
1059 | - $html .= wms_hidden("llbox_$txt_name", wms_bbox2txt($node_llbbox)); | ||
1060 | - $html .= wms_hidden("srs_$txt_name", $txt_srs); | ||
1061 | - $html .= wms_hidden("query_$txt_name", $queryable ); | ||
1062 | - $html .= wms_hidden("opaque_$txt_name", $opaque ); | ||
1063 | - $html .= "<BR>"; | ||
1064 | - return $html; | ||
1065 | -} | ||
1066 | -/* | ||
1067 | -wms_layer3html | ||
1068 | - | ||
1069 | -Convert a Layer node into an HTML representation sem radio. | ||
1070 | -*/ | ||
1071 | -function wms_layer3html( $node ) { | ||
1072 | - # | ||
1073 | - # Convert a Layer node into an HTML representation sem radio. | ||
1074 | - # | ||
1075 | - $ctx = xpath_new_context($node); | ||
1076 | - $xp_title = xpath_eval($ctx,"/Title"); | ||
1077 | - $xp_abs = xpath_eval($ctx,"/Abstract"); | ||
1078 | - $txt_title = wms_xpnode2content($xp_title); | ||
1079 | - $txt_abs = wms_xpnode2content($xp_abs); | ||
1080 | - $html .= "<b>".$txt_title . "</b><i style='color:gray'>" . "-" . $txt_abs . "</i>\n"; | ||
1081 | - $html .= "<BR>"; | ||
1082 | - return $html; | ||
1083 | -} | ||
1084 | -/* | ||
1085 | -wms_layer4html | ||
1086 | - | ||
1087 | -Convert a Layer into an HTML WMS. | ||
1088 | -*/ | ||
1089 | -function wms_layer4html( $layer ) { | ||
1090 | - $estilos = wms_estilos($layer); | ||
1091 | - if (count($estilos) > 0) | ||
1092 | - { | ||
1093 | - $ctxl = xpath_new_context($layer); | ||
1094 | - $xp_namel = xpath_eval($ctxl,"/Name"); | ||
1095 | - if (wms_xpnode2content($xp_namel) == ""){$xp_namel = xpath_eval($ctxl,"/name");} | ||
1096 | - $txt_namel = wms_xpnode2content($xp_namel); | ||
1097 | - $html .= wms_layer3html($layer); | ||
1098 | - foreach ($estilos as $estilo) | ||
1099 | - { | ||
1100 | - $html .= wms_layer2html($estilo,"estilo",$txt_namel); | ||
1101 | - } | ||
1102 | - } | ||
1103 | - else | ||
1104 | - { | ||
1105 | - $html .= wms_layer2html($layer,"tema",""); | ||
1106 | - } | ||
1107 | - return $html; | ||
1108 | -} | ||
1109 | - | ||
1110 | ?> | 1174 | ?> |
ferramentas/conectargeorss/dicionario.js
@@ -31,7 +31,7 @@ i3GEOF.conectargeorss.dicionario = { | @@ -31,7 +31,7 @@ i3GEOF.conectargeorss.dicionario = { | ||
31 | es : "" | 31 | es : "" |
32 | } ], | 32 | } ], |
33 | 'sel' : [ { | 33 | 'sel' : [ { |
34 | - pt : "Digite o endereço do serviço ou escolha da lista abaixo. Utilize as guias acima para ver o resultado da conexão", | 34 | + pt : "Digite o endereço do serviço ou escolha da lista abaixo", |
35 | en : "", | 35 | en : "", |
36 | es : "" | 36 | es : "" |
37 | } ] | 37 | } ] |
ferramentas/conectargeorss/index.js
@@ -168,8 +168,12 @@ i3GEOF.conectargeorss = { | @@ -168,8 +168,12 @@ i3GEOF.conectargeorss = { | ||
168 | if (retorno.data != undefined){ | 168 | if (retorno.data != undefined){ |
169 | retorno = retorno.data; | 169 | retorno = retorno.data; |
170 | for (i=0;i<retorno.length; i++){ | 170 | for (i=0;i<retorno.length; i++){ |
171 | - ins += "<div class='list-group condensed'><div class='row-content text-left'>" + | ||
172 | - "<label class='nomeTema'><a onclick='i3GEOF.conectargeorss.adiciona(\""+i+"\");return false;' href='javascript:void(0)'><h4>" + retorno[i].title + "</h4></a></label></div></div>"; | 171 | + ins += "<div class='list-group condensed'><div class='row-content text-left'>" |
172 | + + "<a onclick='i3GEOF.conectargeorss.adiciona(\""+i+"\");return false;' role='button' class='btn btn-default btn-fab btn-fab-max' href='javascript:void(0)'>" | ||
173 | + + "<span class='material-icons'>visibility</span></a><label style='width:200px;' class='nomeTema' >" | ||
174 | + + "<a onclick='i3GEOF.conectargeorss.adiciona(\""+i+"\");return false;' href='javascript:void(0)'><h4>" | ||
175 | + + retorno[i].title + | ||
176 | + + "</h4></a></label></div></div>"; | ||
173 | } | 177 | } |
174 | $i("resultadoget").innerHTML = ins; | 178 | $i("resultadoget").innerHTML = ins; |
175 | } | 179 | } |
ferramentas/conectarservicos/index.js
@@ -75,26 +75,10 @@ i3GEOF.conectarservicos = | @@ -75,26 +75,10 @@ i3GEOF.conectarservicos = | ||
75 | ); | 75 | ); |
76 | }, | 76 | }, |
77 | wms: function(){ | 77 | wms: function(){ |
78 | - i3GEO.janela.cria( | ||
79 | - "440px", | ||
80 | - "400px", | ||
81 | - i3GEO.configura.locaplic + "/ferramentas/conectarwms/index.htm", | ||
82 | - "", | ||
83 | - "", | ||
84 | - "<span class='i3GeoTituloJanelaBsNolink' >" + $trad("a4") + "</span></div>", | ||
85 | - "i3GEO.conectarwms", | ||
86 | - false, | ||
87 | - "hd", | ||
88 | - "", | ||
89 | - "", | ||
90 | - "", | ||
91 | - false, | ||
92 | - "", | ||
93 | - "", | ||
94 | - "nao", | ||
95 | - "", | ||
96 | - "28" | ||
97 | - ); | 78 | + i3GEO.util.scriptTag(i3GEO.configura.locaplic |
79 | + + "/ferramentas/conectarwms/dependencias.php", | ||
80 | + "i3GEOF.conectarwms.iniciaJanelaFlutuante()", | ||
81 | + "i3GEOF.conectarwms_script"); | ||
98 | }, | 82 | }, |
99 | kml: function() { | 83 | kml: function() { |
100 | i3GEO.util.scriptTag(i3GEO.configura.locaplic | 84 | i3GEO.util.scriptTag(i3GEO.configura.locaplic |
@@ -0,0 +1,24 @@ | @@ -0,0 +1,24 @@ | ||
1 | +<?php | ||
2 | +include(dirname(__FILE__)."/../blacklist.php"); | ||
3 | +verificaBlFerramentas(basename(dirname(__FILE__))); | ||
4 | + | ||
5 | + | ||
6 | +/** | ||
7 | + * Carrega os programas javascript necessarios para a ferramenta | ||
8 | + * Esse programa e usado na tag <script> ou com a funcao scripttag do i3Geo | ||
9 | + * Alem de carregar os scripts, carrega tambem o template no formato MUSTACHE, definindo a variavel | ||
10 | + * javascript i3GEOF.carregakml.MUSTACHE | ||
11 | + * O template e substituido pelos valores definidos em index.js no momento da inicializacao da ferramenta | ||
12 | + */ | ||
13 | +if(extension_loaded('zlib')){ | ||
14 | + ob_start('ob_gzhandler'); | ||
15 | +} | ||
16 | +header("Content-type: text/javascript"); | ||
17 | +include("index.js"); | ||
18 | +include("dicionario.js"); | ||
19 | +echo "\n"; | ||
20 | + | ||
21 | +if(extension_loaded('zlib')){ | ||
22 | + ob_end_flush(); | ||
23 | +} | ||
24 | +?> | ||
0 | \ No newline at end of file | 25 | \ No newline at end of file |
ferramentas/conectarwms/dicionario.js
@@ -20,6 +20,16 @@ i3GEOF.conectarwms.dicionario = { | @@ -20,6 +20,16 @@ i3GEOF.conectarwms.dicionario = { | ||
20 | en : "", | 20 | en : "", |
21 | es : "Servicio no definido" | 21 | es : "Servicio no definido" |
22 | } ], | 22 | } ], |
23 | + 'listaLayers' : [ { | ||
24 | + pt : "Lista as camadas do WMS", | ||
25 | + en : "", | ||
26 | + es : "" | ||
27 | + } ], | ||
28 | + 'sel' : [ { | ||
29 | + pt : "Digite o endereço do serviço ou escolha da lista abaixo", | ||
30 | + en : "", | ||
31 | + es : "" | ||
32 | + } ], | ||
23 | 5 : [ { | 33 | 5 : [ { |
24 | pt : "Ooops! Problemas ao acessar o serviço.", | 34 | pt : "Ooops! Problemas ao acessar o serviço.", |
25 | en : "", | 35 | en : "", |
@@ -0,0 +1,34 @@ | @@ -0,0 +1,34 @@ | ||
1 | +<?php | ||
2 | +include_once(dirname(__FILE__)."/../safe.php"); | ||
3 | +verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false); | ||
4 | +// | ||
5 | +//faz a busca da função que deve ser executada | ||
6 | +// | ||
7 | +$retorno = ""; //string que será retornada ao browser via JSON | ||
8 | +switch (strtoupper($funcao)){ | ||
9 | +/* | ||
10 | +Valor: ADICIONATEMAGEORSS | ||
11 | + | ||
12 | +Adiciona um tema baseado em um RSS. | ||
13 | + | ||
14 | +<Mapa->adicionaTemaGeoRSS> | ||
15 | +*/ | ||
16 | + case "ADICIONATEMAGEORSS": | ||
17 | + include_once(dirname(__FILE__)."/../../classesphp/classe_mapa.php"); | ||
18 | + $m = new Mapa($map_file); | ||
19 | + $retorno = $m->adicionaTemaGeoRSS($_GET["servico"],$dir_tmp,$locaplic,$_GET["canal"]); | ||
20 | + if ($retorno != "erro"){ | ||
21 | + $m->salva(); | ||
22 | + $_SESSION["contadorsalva"]++; | ||
23 | + redesenhaMapa(); | ||
24 | + } | ||
25 | + else{ | ||
26 | + $retorno = "erro.Nenhum dado espacializado foi encontrado."; | ||
27 | + } | ||
28 | + break; | ||
29 | +} | ||
30 | +if(isset($map_file) && isset($postgis_mapa) && $map_file != ""){ | ||
31 | + restauraCon($map_file,$postgis_mapa); | ||
32 | +} | ||
33 | +cpjson($retorno); | ||
34 | +?> | ||
0 | \ No newline at end of file | 35 | \ No newline at end of file |
ferramentas/conectarwms/imagens/rss.gif
1.48 KB
ferramentas/conectarwms/index.htm
@@ -1,141 +0,0 @@ | @@ -1,141 +0,0 @@ | ||
1 | -<!DOCTYPE html> | ||
2 | -<html> | ||
3 | -<head> | ||
4 | -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> | ||
5 | -<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0"> | ||
6 | -<script src="../../js/i3geo.js"></script> | ||
7 | -<link rel="stylesheet" type="text/css" href="../../pacotes/bootstrap/css/bootstrap.min.css"> | ||
8 | -<link rel="stylesheet" type="text/css" href="../../pacotes/bootstrap-material-design/dist/css/bootstrap-material-design.min.css"> | ||
9 | -<link rel="stylesheet" type="text/css" href="../../css/default.css"> | ||
10 | -</head> | ||
11 | -<body id="i3geo" style='background-color: #477596; height: 400px; visibility:visible' class="yui-skin-sam bd"> | ||
12 | - <div class='yui-navset' style='top: 0px; cursor: pointer; left: 0px; margin-left: 2px;'> | ||
13 | - <ul class="yui-nav" style="border-width: 0pt 0pt 0px; border-color: rgb(240, 240, 240); border-bottom-color: white;"> | ||
14 | - <li> | ||
15 | - <div id='guia1' style='text-align: center; left: 0px;'> | ||
16 | - <a> | ||
17 | - <em>Serviços</em> | ||
18 | - </a> | ||
19 | - </div> | ||
20 | - </li> | ||
21 | - <li> | ||
22 | - <div id='guia2' style='text-align: center; left: 0px;'> | ||
23 | - <a> | ||
24 | - <em>Metadados</em> | ||
25 | - </a> | ||
26 | - </div> | ||
27 | - </li> | ||
28 | - <li> | ||
29 | - <div id='guia3' style='text-align: center; left: 0px;'> | ||
30 | - <a> | ||
31 | - <em>Lista de temas</em> | ||
32 | - </a> | ||
33 | - </div> | ||
34 | - </li> | ||
35 | - </ul> | ||
36 | - </div> | ||
37 | - | ||
38 | - <div class='container-fluid bd' id="guia1obj"> | ||
39 | - <h5> | ||
40 | - <a href="../../documentacao/ajuda/The_ArcIMS_OGC_WMS_Connector.pdf" target=blank>Veja como criar web services no ARCIMS</a> | ||
41 | - </h5> | ||
42 | - <h5> | ||
43 | - <a href="../../documentacao/ajuda/ArcGIS9.x.html" target=blank>Veja como utilizar web services no ARCGIS</a> | ||
44 | - </h5> | ||
45 | - <h5>Digite o endereço do serviço ou escolha da lista abaixo. Utilize as guias acima para ver o resultado da conexão. Por padrão, utiliza-se a versão | ||
46 | - 1.1.0 do GetCapabilities. Você pode adicionar um outro, bastando incluir no endereço do serviço "&version=1.3.0" por exemplo.</h5> | ||
47 | - | ||
48 | - <div class='form-group label-fixed condensed'> | ||
49 | - <input class="form-control input-lg" type='text' id='servico' value='' /> | ||
50 | - </div> | ||
51 | - | ||
52 | - <div style="width: 100%;" class='form-group label-fixed condensed'> | ||
53 | - <div id=RSSwms class="input-group"></div> | ||
54 | - </div> | ||
55 | - <br> | ||
56 | - <div id=RSSbt style="text-align: left;"></div> | ||
57 | - </div> | ||
58 | - <div class='container-fluid' id="guia2obj"> | ||
59 | - <p class=paragrafo> | ||
60 | - <input type=button id="getCapabilities" value="Descrição do WMS" /> | ||
61 | - </p> | ||
62 | - <div id=resultadoget style="display: block; position: relative; top: 5px; left: 1px" class=paragrafo></div> | ||
63 | - </div> | ||
64 | - <div class='container-fluid' id="guia3obj"> | ||
65 | - <p class=paragrafo> | ||
66 | - Após a conexão ser estabelecida e surgir a lista de temas, selecione a camada que será adicionada ao mapa. | ||
67 | - <br> | ||
68 | - </p> | ||
69 | - <div id=textoSLD style="display: none; font-size: 10px"> | ||
70 | - <p class=paragrafo> | ||
71 | - Opcionalmente vc pode indicar o tipo de representação que será utilizada. | ||
72 | - <br> | ||
73 | - Não altere o tipo de representação se a camada escolhida for uma imagem (dados raster) ou se você tiver dúvidas sobre ela. | ||
74 | - <br> | ||
75 | - </p> | ||
76 | - <div class=styled-select> | ||
77 | - <select id=tiporep> | ||
78 | - <option value="">---</option> | ||
79 | - <option value="poligonal">poligonal</option> | ||
80 | - <option value="linear">linear</option> | ||
81 | - <option value="pontual">pontual</option> | ||
82 | - </select> | ||
83 | - </div> | ||
84 | - </div> | ||
85 | - <div id=listatemas class=paragrafo></div> | ||
86 | - </div> | ||
87 | - | ||
88 | - <div id="aguarde">Aguarde...</div> | ||
89 | - | ||
90 | - <script type="text/javascript" src="index.js"></script> | ||
91 | - <script type="text/javascript"> | ||
92 | - $.material.init(); | ||
93 | - var b = new YAHOO.widget.Button("getCapabilities", { | ||
94 | - onclick : { | ||
95 | - fn : getcapabilities | ||
96 | - } | ||
97 | - }); | ||
98 | - b.addClass("rodar"); | ||
99 | - g_locaplic = "../.."; | ||
100 | - iniciaListaWS(); | ||
101 | - function iniciaListaWS() { | ||
102 | - g_RSSwms = new Array(""); | ||
103 | - aguarde("block"); | ||
104 | - | ||
105 | - if (document.getElementById("RSSwms")) { | ||
106 | - if (g_RSSwms.length > 0) { | ||
107 | - var p = g_locaplic | ||
108 | - + "/classesphp/wscliente.php?funcao=listaRSSwsARRAY&rss=" | ||
109 | - + g_RSSwms.join("|") + "&tipo=WMS"; | ||
110 | - var cp = new cpaint(); | ||
111 | - //cp.set_debug(2) | ||
112 | - cp.set_response_type("JSON"); | ||
113 | - cp.call(p, "listaRSSwsARRAY", mostraRetornowmsRSS); | ||
114 | - } | ||
115 | - } | ||
116 | - } | ||
117 | - function mostraRetornowmsRSS(retorno) { | ||
118 | - var reg = /Erro/gi; | ||
119 | - if (retorno.data.rss.search(reg) != -1) { | ||
120 | - i3GEO.janela.tempoMsg("OOps! Ocorreu um erro\n" + retorno.data); | ||
121 | - return; | ||
122 | - } | ||
123 | - var canais = retorno.data.canais; | ||
124 | - var ncanais = canais.length; | ||
125 | - $i("RSSbt").innerHTML = retorno.data.rss; | ||
126 | - var i, ins = ""; | ||
127 | - ins += "<select class='form-control' size='5' onchange='registraws(this.value)' style='width:100%;' >"; | ||
128 | - for (i = 0; i < ncanais; i++) { | ||
129 | - var caso = canais[i]; | ||
130 | - var valor = "'" + caso.link + "','" + caso.id_ws + "','" | ||
131 | - + caso.tipo_ws + "'"; | ||
132 | - ins += "<option value=" + valor + " >" + caso.title | ||
133 | - + "</option>"; | ||
134 | - } | ||
135 | - ins += "</select>"; | ||
136 | - document.getElementById("RSSwms").innerHTML = ins; | ||
137 | - aguarde("none"); | ||
138 | - } | ||
139 | - </script> | ||
140 | -</body> | ||
141 | -</html> |
ferramentas/conectarwms/index.js
1 | -/* | ||
2 | -Title: Conexão com WMS | ||
3 | - | ||
4 | -Acrescenta ao mapa um novo tema com base em um endereço de WMS | ||
5 | - | ||
6 | -O usuário pode indicar o endereço ou escolher de uma lista. A lista é pré-definida por meio do sistema de administração | ||
7 | -do i3Geo. | ||
8 | - | ||
9 | -Veja: | ||
10 | - | ||
11 | -<ADICIONATEMAWMS> | ||
12 | - | ||
13 | -Arquivo: | ||
14 | - | ||
15 | -i3geo/ferramentas/conectarwms/index.js | ||
16 | - | ||
17 | -Licenca: | ||
18 | - | ||
19 | -GPL2 | ||
20 | - | ||
21 | -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
22 | - | ||
23 | -Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
24 | -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
25 | - | ||
26 | -Este programa é software livre; você pode redistribuí-lo | ||
27 | -e/ou modificá-lo sob os termos da Licença Pública Geral | ||
28 | -GNU conforme publicada pela Free Software Foundation; | ||
29 | - | ||
30 | -Este programa é distribuído na expectativa de que seja útil, | ||
31 | -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
32 | -de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
33 | -Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
34 | -Você deve ter recebido uma cópia da Licença Pública Geral do | ||
35 | -GNU junto com este programa; se não, escreva para a | ||
36 | -Free Software Foundation, Inc., no endereço | ||
37 | -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
38 | -*/ | ||
39 | -//variaveis globais | ||
40 | -g_tipo = ""; //tipo de tema | ||
41 | -g_tema = ""; //tema selecionado do ws | ||
42 | -g_legenda = ""; //legenda do tema | ||
43 | -g_nometema = ""; //nome do tema | ||
44 | -g_idws = ""; | ||
45 | -g_sid = window.parent.i3GEO.configura.sid; | ||
46 | -var g_tipows = "";//obtido do mapfile | ||
47 | -//ativaGuias(""); | ||
48 | -//mostraGuia("guia1"); | ||
49 | -i3GEO.guias.mostraGuiaFerramenta("guia1"); | ||
50 | -if($i("guia1")){ | ||
51 | - $i("guia1").onclick = function(){ | ||
52 | - //mostraGuia("guia1"); | ||
53 | - i3GEO.guias.mostraGuiaFerramenta("guia1"); | ||
54 | - $i("resultadoget").innerHTML = ""; | ||
55 | - }; | 1 | +if(typeof(i3GEOF) === 'undefined'){ |
2 | + var i3GEOF = {}; | ||
56 | } | 3 | } |
57 | -if($i("guia2")){ | ||
58 | - $i("guia2").onclick = function(){clickGuia2();}; | ||
59 | -} | ||
60 | -if($i("guia3")){ | ||
61 | - $i("guia3").onclick = function(){clickGuia3();}; | ||
62 | -} | ||
63 | -function aguarde(valor){ | ||
64 | - if(document.getElementById("aguarde")) | ||
65 | - document.getElementById("aguarde").style.display = valor; | ||
66 | -} | ||
67 | -/* | ||
68 | -Function: listaRSS | ||
69 | - | ||
70 | -Monta a lista de serviços WMS cadastrados no sistema de administração do i3Geo | ||
71 | - | ||
72 | -Veja: | ||
73 | - | ||
74 | -<LISTARSSWSARRAY> | ||
75 | 4 | ||
76 | -Parametros: | ||
77 | - | ||
78 | -g_RSS {Array} - array com a lista de RSS que contém a lista de WMS cadastrados. Se for um array com um único elemento vazio, | ||
79 | -será utilizado o endereço default do i3GEO (g_RSS = new Array("")) | ||
80 | - | ||
81 | -onde {Stribg} - id do elemento HTML que receberá a lista de endereços formatada | ||
82 | -*/ | ||
83 | -function listaRSS(g_RSS,onde) | ||
84 | -{ | ||
85 | - var mostraRetornoRSS = function(retorno){ | ||
86 | - aguarde("none"); | ||
87 | - var reg = /Erro/gi; | ||
88 | - if (retorno.data.rss.search(reg) != -1) | ||
89 | - { | ||
90 | - i3GEO.janela.tempoMsg($trad('erro',i3GEOF.conectarwms.dicionario)+"\n"+retorno.data); | ||
91 | - return; | ||
92 | - } | ||
93 | - var canais = retorno.data.canais; | ||
94 | - var ncanais = canais.length; | ||
95 | - var ins = "<br>"+retorno.data.rss; | ||
96 | - for (var i=0;i<ncanais; i++) | ||
97 | - { | ||
98 | - var caso = canais[i]; | ||
99 | - ins += "\<p class=clique onclick=\"registraws('"+caso.link+"','"+caso.id_ws+"','"+caso.tipo_ws+"')\" \>\<b\>"+caso.title+"\<\/b\> "+caso.description+" ("+caso.author+")"; | ||
100 | - if(caso.nacessos > 0) | ||
101 | - { | ||
102 | - var pc = (parseInt(caso.nacessosok) * 100) / parseInt(caso.nacessos); | ||
103 | - ins += " \<span style=color:gray \>("+$trad('disponibilidade',i3GEOF.conectarwms.dicionario)+": "+pc+"%, "+$trad('acessos',i3GEOF.conectarwms.dicionario)+": "+caso.nacessos+")\<\/span>\<\/p\>"; | 5 | +/* |
6 | +Classe: i3GEOF.conectarwmsi3GEOF.conectarwms | ||
7 | + */ | ||
8 | +i3GEOF.conectarwms = { | ||
9 | + IDWS: "", | ||
10 | + TIPO: "", | ||
11 | + TIPOWS: "WMS", | ||
12 | + TEMA: "", | ||
13 | + LEGENDA: "", | ||
14 | + NOMETEMA: "", | ||
15 | + /* | ||
16 | + Variavel: aguarde | ||
17 | + | ||
18 | + Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. | ||
19 | + */ | ||
20 | + aguarde: "", | ||
21 | + /** | ||
22 | + * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php | ||
23 | + */ | ||
24 | + MUSTACHE : "", | ||
25 | + /** | ||
26 | + * Susbtitutos para o template | ||
27 | + */ | ||
28 | + mustacheHash : function() { | ||
29 | + var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.conectarwms.dicionario); | ||
30 | + return dicionario; | ||
31 | + }, | ||
32 | + /* | ||
33 | + Function: inicia | ||
34 | + | ||
35 | + Inicia a ferramenta. É chamado por criaJanelaFlutuante | ||
36 | + | ||
37 | + Parametro: | ||
38 | + | ||
39 | + iddiv {String} - id do div que receberá o conteudo HTML da ferramenta | ||
40 | + */ | ||
41 | + inicia: function(iddiv){ | ||
42 | + if(i3GEOF.conectarwms.MUSTACHE == ""){ | ||
43 | + $.get(i3GEO.configura.locaplic + "/ferramentas/conectarwms/template_mst.html", function(template) { | ||
44 | + i3GEOF.conectarwms.MUSTACHE = template; | ||
45 | + i3GEOF.conectarwms.inicia(iddiv); | ||
46 | + }); | ||
47 | + return; | ||
104 | } | 48 | } |
105 | - } | ||
106 | - document.getElementById(onde).innerHTML = ins+"<br><br>"; | ||
107 | - }; | ||
108 | - if (document.getElementById(onde)) | ||
109 | - { | ||
110 | - if (g_RSS.length > 0) | ||
111 | - { | ||
112 | - var p = "../../classesphp/wscliente.php?funcao=listaRSSwsARRAY&rss="+g_RSS.join("|")+"&tipo=GEORSS"; | 49 | + $i(iddiv).innerHTML = i3GEOF.conectarwms.html(); |
50 | + var b, monta = function(retorno){ | ||
51 | + if (retorno.data.rss.search(/Erro/gi) != -1){ | ||
52 | + i3GEO.janela.tempoMsg("OOps! Ocorreu um erro\n"+retorno.data); | ||
53 | + return; | ||
54 | + } | ||
55 | + var canais = retorno.data.canais; | ||
56 | + var ncanais = canais.length; | ||
57 | + var i, ins = ""; | ||
58 | + ins += "<select class='form-control' onchange='i3GEOF.conectarwms.registraws(this.value)' style='width:100%;' >"; | ||
59 | + ins += "<option value='' >---</option>"; | ||
60 | + for (i = 0; i < ncanais; i++) { | ||
61 | + var caso = canais[i]; | ||
62 | + var valor = "'" + caso.link + "','" + caso.id_ws + "'"; | ||
63 | + ins += "<option value=" + valor + " >"+caso.title+"</option>"; | ||
64 | + } | ||
65 | + ins += "</select>"; | ||
66 | + document.getElementById("RSSgeo").innerHTML = ins; | ||
67 | + }; | ||
68 | + | ||
69 | + var p = i3GEO.configura.locaplic + "/classesphp/wscliente.php?funcao=listaRSSwsARRAY&rss=&tipo=WMS"; | ||
113 | var cp = new cpaint(); | 70 | var cp = new cpaint(); |
114 | - //cp.set_debug(2) | ||
115 | cp.set_response_type("JSON"); | 71 | cp.set_response_type("JSON"); |
116 | - cp.call(p,"listaRSSwsARRAY",mostraRetornoRSS); | ||
117 | - } | ||
118 | - } | ||
119 | -} | ||
120 | -/* | ||
121 | -Function: getcapabilities | ||
122 | - | ||
123 | -Abre uma nova janela com o resultado da chamada GETCAPABILITIES sobre o WMS escolhido | ||
124 | -*/ | ||
125 | -function getcapabilities() | ||
126 | -{ | ||
127 | - if ($i("servico").value == ""){i3GEO.janela.tempoMsg($trad('servico',i3GEOF.conectarwms.dicionario));} | ||
128 | - else | ||
129 | - {window.open($i("servico").value+"&service=wms&request=getcapabilities&version=1.1.1");} | ||
130 | -} | ||
131 | -/* | ||
132 | -Function: clickGuia2 | ||
133 | - | ||
134 | -Mostra as principais informações sobre o WMS escolhido tendo como fonte o getcapabilities | ||
135 | - | ||
136 | -Veja: | ||
137 | - | ||
138 | -<GETCAPABILITIES2> | ||
139 | -*/ | ||
140 | -function clickGuia2() | ||
141 | -{ | ||
142 | - //mostraGuia("guia2"); | ||
143 | - i3GEO.guias.mostraGuiaFerramenta("guia2"); | ||
144 | - if ($i("servico").value == ""){i3GEO.janela.tempoMsg($trad('servico',i3GEOF.conectarwms.dicionario));} | ||
145 | - else | ||
146 | - { | ||
147 | - var metadados = function(retorno){ | ||
148 | - if (retorno.data != undefined) | ||
149 | - { | ||
150 | - aguarde("none"); | ||
151 | - $i("resultadoget").innerHTML = retorno.data; | 72 | + cp.call(p,"listaRSSwsARRAY",monta); |
73 | + }, | ||
74 | + /* | ||
75 | + Function: html | ||
76 | + | ||
77 | + Gera o código html para apresentação das opções da ferramenta | ||
78 | + | ||
79 | + Retorno: | ||
80 | + | ||
81 | + String com o código html | ||
82 | + */ | ||
83 | + html:function() { | ||
84 | + var ins = Mustache.render(i3GEOF.conectarwms.MUSTACHE, i3GEOF.conectarwms.mustacheHash()); | ||
85 | + return ins; | ||
86 | + }, | ||
87 | + /* | ||
88 | + Function: iniciaJanelaFlutuante | ||
89 | + | ||
90 | + Cria a janela flutuante para controle da ferramenta. | ||
91 | + */ | ||
92 | + iniciaJanelaFlutuante: function(){ | ||
93 | + var minimiza,cabecalho,janela,divid,titulo; | ||
94 | + if($i("i3GEOF.conectarwms")){ | ||
95 | + return; | ||
152 | } | 96 | } |
153 | - else | ||
154 | - { | ||
155 | - aguarde("none"); | ||
156 | - $i("resultadoget").innerHTML = "<p style=color:red >"+$trad('erro',i3GEOF.conectarwms.dicionario)+"<br>"; | 97 | + //cria a janela flutuante |
98 | + minimiza = function(){ | ||
99 | + i3GEO.janela.minimiza("i3GEOF.conectarwms",200); | ||
100 | + }; | ||
101 | + titulo = "<span class='i3GeoTituloJanelaBsNolink' >" + $trad("a4") + "</span></div>"; | ||
102 | + janela = i3GEO.janela.cria( | ||
103 | + "600px", | ||
104 | + "500px", | ||
105 | + "", | ||
106 | + "", | ||
107 | + "", | ||
108 | + titulo, | ||
109 | + "i3GEOF.conectarwms", | ||
110 | + false, | ||
111 | + "hd", | ||
112 | + "", | ||
113 | + minimiza, | ||
114 | + "", | ||
115 | + true, | ||
116 | + "", | ||
117 | + "", | ||
118 | + "", | ||
119 | + "", | ||
120 | + "28" | ||
121 | + ); | ||
122 | + divid = janela[2].id; | ||
123 | + i3GEOF.conectarwms.aguarde = $i("i3GEOF.conectarwms_imagemCabecalho").style; | ||
124 | + $i("i3GEOF.conectarwms_corpo").style.backgroundColor = "white"; | ||
125 | + i3GEOF.conectarwms.inicia(divid); | ||
126 | + }, | ||
127 | + adiciona: function(id){ | ||
128 | + var url, temp, cp, p; | ||
129 | + if(i3GEOF.conectarwms.aguarde.visibility === "visible"){ | ||
130 | + return; | ||
157 | } | 131 | } |
158 | - }; | ||
159 | - $i("guia2obj").style.display="block"; | ||
160 | - aguarde("block"); | ||
161 | - var p = "../../classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=getcapabilities2&servico="+$i("servico").value; | ||
162 | - var cp = new cpaint(); | ||
163 | - //cp.set_debug(2) | ||
164 | - cp.set_response_type("JSON"); | ||
165 | - cp.call(p,"getcapabilities2",metadados); | ||
166 | - } | ||
167 | -} | ||
168 | -/* | ||
169 | -Function: clickGuia3 | ||
170 | - | ||
171 | -Lista as camadas existentes no WMS escolhido. | ||
172 | - | ||
173 | -O resultado da chamada em PHP é uma string HTML já formatada. O "radio" aponta para a função "adiciona" | ||
174 | - | ||
175 | -Veja: | ||
176 | - | ||
177 | -<TEMASWMS> | ||
178 | -*/ | ||
179 | -function clickGuia3(codLayer) | ||
180 | -{ | ||
181 | - //mostraGuia("guia3"); | ||
182 | - i3GEO.guias.mostraGuiaFerramenta("guia3"); | ||
183 | - var listatemas = function(retorno){ | ||
184 | - g_idws = ""; | ||
185 | - aguarde("none"); | ||
186 | - if ((retorno.data != "erro") && (retorno.data != undefined)){ | ||
187 | - $i("listatemas").innerHTML = retorno.data; | ||
188 | - g_tipo = ""; //tipo de tema | ||
189 | - g_tema = ""; //tema selecionado do ws | ||
190 | - g_legenda = ""; //legenda do tema | ||
191 | - g_nometema = ""; //nome do tema | ||
192 | - g_sld = ""; | ||
193 | - if ($i("suportasld")){ | ||
194 | - if ($i("suportasld").value != "nao") { | ||
195 | - if ($i("textoSLD")) | ||
196 | - $i("textoSLD").style.display = "block"; | 132 | + if($i("servicoWms").value !== ""){ |
133 | + i3GEOF.conectarwms.aguarde.visibility = "visible"; | ||
134 | + temp = function(retorno){ | ||
135 | + i3GEOF.conectarwms.aguarde.visibility = "hidden"; | ||
136 | + i3GEO.atualiza(); | ||
137 | + }; | ||
138 | + cp = new cpaint(); | ||
139 | + cp.set_response_type("JSON"); | ||
140 | + p = i3GEO.configura.locaplic+"/ferramentas/conectarwms/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=adicionaTemaGeoRSS&canal="+id+"&servico="+$i("servicoWms").value; | ||
141 | + cp.call(p,"foo",temp); | ||
142 | + } | ||
143 | + }, | ||
144 | + listaLayers: function(codLayer){ | ||
145 | + if(i3GEOF.conectarwms.aguarde.visibility === "visible"){ | ||
146 | + return; | ||
147 | + } | ||
148 | + var listatemas = function(retorno){ | ||
149 | + i3GEOF.conectarwms.aguarde.visibility = "hidden"; | ||
150 | + i3GEOF.conectarwms.IDWS = ""; | ||
151 | + if ((retorno.data != "erro") && (retorno.data != undefined)){ | ||
152 | + $i("resultadoget").innerHTML = retorno.data; | ||
153 | + i3GEOF.conectarwms.TIPO = ""; //tipo de tema | ||
154 | + i3GEOF.conectarwms.TEMA = ""; //tema selecionado do ws | ||
155 | + i3GEOF.conectarwms.LEGENDA = ""; //legenda do tema | ||
156 | + i3GEOF.conectarwms.NOMETEMA = ""; //nome do tema | ||
157 | + g_sld = ""; | ||
158 | + if ($i("suportasld")){ | ||
159 | + if ($i("suportasld").value != "nao") { | ||
160 | + if ($i("textoSLD")) | ||
161 | + $i("textoSLD").style.display = "block"; | ||
162 | + } | ||
163 | + } | ||
164 | + //ativa um layer caso tenha sido enviado como um parametro no inicio da ferramenta | ||
165 | + i3GEOF.conectarwms.ativaAutoLayer(codLayer); | ||
166 | + } | ||
167 | + else{ | ||
168 | + $i("resultadoget").innerHTML = "<h5 class='alert alert-danger'>"+$trad('erro',i3GEOF.conectarwms.dicionario)+"</h5>"; | ||
197 | } | 169 | } |
170 | + }; | ||
171 | + if ($i("servicoWms").value == ""){ | ||
172 | + i3GEO.janela.tempoMsg($trad('servico',i3GEOF.conectarwms.dicionario)); | ||
198 | } | 173 | } |
199 | - //ativa um layer caso tenha sido enviado como um parametro no inicio da ferramenta | ||
200 | - ativaAutoLayer(codLayer); | ||
201 | - } | ||
202 | - else{ | ||
203 | - //$i("listatemas").innerHTML = "erro"; | ||
204 | - } | ||
205 | - }; | ||
206 | - if ($i("servico").value == ""){ | ||
207 | - i3GEO.janela.tempoMsg($trad('servico',i3GEOF.conectarwms.dicionario)); | ||
208 | - } | ||
209 | - else | ||
210 | - { | ||
211 | - $i("listatemas").innerHTML = ""; | ||
212 | - aguarde("block"); | ||
213 | - var p = "../../classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=temaswms&id_ws="+g_idws+"&servico="+$i("servico").value; | ||
214 | - var cp = new cpaint(); | ||
215 | - //cp.set_debug(2) | ||
216 | - cp.set_response_type("JSON"); | ||
217 | - cp.call(p,"temaswms",listatemas); | ||
218 | - } | ||
219 | -} | ||
220 | -function ativaAutoLayer(codLayer){ | ||
221 | - if(codLayer && codLayer != ""){ | ||
222 | - var container, rs, nrs, i, r, codLayer1; | ||
223 | - codLayer1 = codLayer.split(":"); | ||
224 | - if(codLayer1.length > 0){ | ||
225 | - codLayer1 = codLayer1[1]; | ||
226 | - } | ||
227 | - else{ | ||
228 | - codLayer1 = codLayer1[0]; | ||
229 | - } | ||
230 | - container = $i("listatemas"); | ||
231 | - if(container){ | ||
232 | - rs = container.getElementsByTagName("input"); | ||
233 | - nrs = rs.length; | ||
234 | - | ||
235 | - for(i = 0; i < nrs; i++){ | ||
236 | - r = rs[i]; | ||
237 | - if(r.type === "radio" && (r.value === codLayer || r.value === codLayer1)){ | ||
238 | - r.onclick.call(); | ||
239 | - r.checked = true; | ||
240 | - r.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.scrollIntoView(true); | 174 | + else{ |
175 | + $i("resultadoget").innerHTML = ""; | ||
176 | + i3GEOF.conectarwms.aguarde.visibility = "visible"; | ||
177 | + var p = i3GEO.configura.locaplic + "/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=temaswms&id_ws="+i3GEOF.conectarwms.IDWS+"&servico="+$i("servicoWms").value; | ||
178 | + var cp = new cpaint(); | ||
179 | + cp.set_response_type("JSON"); | ||
180 | + cp.call(p,"temaswms",listatemas); | ||
181 | + } | ||
182 | + }, | ||
183 | + registraws: function(nome,id_ws,tipo){ | ||
184 | + $i("servicoWms").value = nome; | ||
185 | + if(arguments.length == 2){ | ||
186 | + i3GEOF.conectarwms.IDWS = id_ws; | ||
187 | + } | ||
188 | + else { | ||
189 | + i3GEOF.conectarwms.IDWS = ""; | ||
190 | + } | ||
191 | + i3GEOF.conectarwms.listaLayers(); | ||
192 | + | ||
193 | + i3GEOF.conectarwms.TIPO = ""; //tipo de tema | ||
194 | + i3GEOF.conectarwms.TIPOWS = "WMS"; //tipo de servico | ||
195 | + i3GEOF.conectarwms.TEMA = ""; //tema selecionado do ws | ||
196 | + i3GEOF.conectarwms.LEGENDA = ""; //legenda do tema | ||
197 | + i3GEOF.conectarwms.NOMETEMA = ""; //nome do tema | ||
198 | + if(tipo){ | ||
199 | + i3GEOF.conectarwms.TIPOWS = tipo; | ||
200 | + } | ||
201 | + i3GEOF.conectarwms.listaLayers(); | ||
202 | + }, | ||
203 | + montaCanais: function(retorno){ | ||
204 | + var i,ins = "<h5>"+ $trad('selecionaItem',i3GEOF.conectarwms.dicionario)+"</h5>"; | ||
205 | + i3GEOF.conectarwms.aguarde.visibility = "hidden"; | ||
206 | + if (retorno.data != undefined){ | ||
207 | + retorno = retorno.data; | ||
208 | + for (i=0;i<retorno.length; i++){ | ||
209 | + ins += "<div class='list-group condensed'><div class='row-content text-left'>" + | ||
210 | + "<label class='nomeTema'><a onclick='i3GEOF.conectarwms.adiciona(\""+i+"\");return false;' href='javascript:void(0)'><h4>" + retorno[i].title + "</h4></a></label></div></div>"; | ||
211 | + } | ||
212 | + $i("resultadoget").innerHTML = ins; | ||
213 | + } | ||
214 | + else{ | ||
215 | + $i("resultadoget").innerHTML = "<h5 class='alert alert-danger'>"+$trad('erro',i3GEOF.conectarwms.dicionario)+"</h5>"; | ||
216 | + } | ||
217 | + }, | ||
218 | + ativaAutoLayer: function (codLayer){ | ||
219 | + if(codLayer && codLayer != ""){ | ||
220 | + var container, rs, nrs, i, r, codLayer1; | ||
221 | + codLayer1 = codLayer.split(":"); | ||
222 | + if(codLayer1.length > 0){ | ||
223 | + codLayer1 = codLayer1[1]; | ||
224 | + } | ||
225 | + else{ | ||
226 | + codLayer1 = codLayer1[0]; | ||
227 | + } | ||
228 | + container = $i("resultadoget"); | ||
229 | + if(container){ | ||
230 | + rs = container.getElementsByTagName("input"); | ||
231 | + nrs = rs.length; | ||
232 | + | ||
233 | + for(i = 0; i < nrs; i++){ | ||
234 | + r = rs[i]; | ||
235 | + if(r.type === "radio" && (r.value === codLayer || r.value === codLayer1)){ | ||
236 | + r.onclick.call(); | ||
237 | + r.checked = true; | ||
238 | + r.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.scrollIntoView(true); | ||
239 | + } | ||
240 | + } | ||
241 | + } | ||
242 | + } | ||
243 | + }, | ||
244 | + seltema: function(tipo,tema,legenda,nometema,nomecamada,sldflag){ | ||
245 | + i3GEOF.conectarwms.TIPO = tipo; //tipo de tema | ||
246 | + i3GEOF.conectarwms.TIPOWS = "WMS"; //tipo de servico | ||
247 | + i3GEOF.conectarwms.TEMA = tema; //tema selecionado do ws | ||
248 | + i3GEOF.conectarwms.LEGENDA = legenda; //legenda do tema | ||
249 | + | ||
250 | + if (tema != ""){ | ||
251 | + var retorno = function(retorno){ | ||
252 | + i3GEOF.conectarwms.aguarde.visibility = "hidden"; | ||
253 | + if(retorno.data != "ok"){ | ||
254 | + i3GEO.janela.tempoMsg($trad('erro2',i3GEOF.conectarwms.dicionario));aguarde("none"); | ||
255 | + } | ||
256 | + else{ | ||
257 | + i3GEO.atualiza(); | ||
258 | + } | ||
259 | + }; | ||
260 | + i3GEOF.conectarwms.aguarde.visibility = "visible"; | ||
261 | + var tiporep = ""; | ||
262 | + if($i("tiporep")){ | ||
263 | + tiporep = $i("tiporep").value; | ||
264 | + } | ||
265 | + var url = i3GEO.configura.locaplic + "/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid; | ||
266 | + if($i("servicoWms").value.split("?").length === 1){ | ||
267 | + $i("servicoWms").value = $i("servicoWms").value+"?"; | ||
268 | + } | ||
269 | + if($i("proj").value === ""){ | ||
270 | + $i("proj").value = "EPSG:4326"; | ||
271 | + } | ||
272 | + var p = "&funcao=adicionatemawms&servico="+$i("servicoWms").value+"&tema="+i3GEOF.conectarwms.tema+"&nome="+nometema+"&proj="+$i("proj").value+"&formato="+$i("formatos").value+"&tipo="+tipo+"&versao="+$i("versao").value+"&nomecamada="+nomecamada+"&tiporep="+tiporep+"&suportasld="+sldflag+"&formatosinfo="+$i("formatosinfo").value; | ||
273 | + if(g_tipows == "WMS-Tile"){ | ||
274 | + p += "&tile=1"; | ||
275 | + } | ||
276 | + else{ | ||
277 | + p += "&tile=0"; | ||
241 | } | 278 | } |
279 | + var cp = new cpaint(); | ||
280 | + cp.set_transfer_mode("POST"); | ||
281 | + cp.set_response_type("JSON"); | ||
282 | + cp.call(url,"adicionatemawms",retorno,p); | ||
242 | } | 283 | } |
243 | } | 284 | } |
244 | - } | ||
245 | -} | ||
246 | - | ||
247 | -/* | ||
248 | -Function: registraws | ||
249 | - | ||
250 | -Armazena em variáveis locais os parametros do WMS escolhido e ativa a guia 3, mostrando a lista de camadas disponíveis | ||
251 | - | ||
252 | -Parametros: | ||
253 | - | ||
254 | -nome {string} - nome do WMS | ||
255 | - | ||
256 | -id_ws {String} - id do WMS | ||
257 | -*/ | ||
258 | -function registraws(nome,id_ws,tipo) | ||
259 | -{ | ||
260 | - $i("servico").value = nome; | ||
261 | - g_tipo = ""; //tipo de tema | ||
262 | - g_tipows = "WMS"; //tipo de servico | ||
263 | - g_tema = ""; //tema selecionado do ws | ||
264 | - g_legenda = ""; //legenda do tema | ||
265 | - g_nometema = ""; //nome do tema | ||
266 | - if(arguments.length == 2) | ||
267 | - g_idws = id_ws; | ||
268 | - else | ||
269 | - g_idws = ""; | ||
270 | - if(tipo){ | ||
271 | - g_tipows = tipo; | ||
272 | - } | ||
273 | - clickGuia3(); | ||
274 | -} | ||
275 | -/* | ||
276 | -Function: seltema | ||
277 | - | ||
278 | -Inclui um LAYER, escolhido de um WMS, no mapa atual | ||
279 | - | ||
280 | -Veja: | ||
281 | - | ||
282 | -<ADICIONATEMAWMS> | ||
283 | - | ||
284 | -*/ | ||
285 | -function seltema(tipo,tema,legenda,nometema,nomecamada,sldflag) | ||
286 | -{ | ||
287 | - g_tipo = tipo; //tipo de tema | ||
288 | - g_tema = tema; //tema selecionado do ws | ||
289 | - g_legenda = legenda; //legenda do tema | ||
290 | - g_nometema = nometema; //nome do tema | ||
291 | - g_nomecamada = nomecamada; //nome que vai na legenda | ||
292 | - g_sld = sldflag; //suporta ou nao sld | ||
293 | - if (g_tema != "") | ||
294 | - { | ||
295 | - var retorno = function(retorno) | ||
296 | - { | ||
297 | - aguarde("none"); | ||
298 | - if(retorno.data != "ok") | ||
299 | - {i3GEO.janela.tempoMsg($trad('erro2',i3GEOF.conectarwms.dicionario));aguarde("none");} | ||
300 | - else | ||
301 | - {window.parent.i3GEO.atualiza();} | 285 | +}; |
286 | +function seltema (tipo,tema,legenda,nometema,nomecamada,sldflag){ | ||
287 | + i3GEOF.conectarwms.TIPO = tipo; //tipo de tema | ||
288 | + i3GEOF.conectarwms.TEMA = tema; //tema selecionado do ws | ||
289 | + i3GEOF.conectarwms.LEGENDA = legenda; //legenda do tema | ||
290 | + | ||
291 | + if (tema != ""){ | ||
292 | + var retorno = function(retorno) { | ||
293 | + if(retorno.data != "ok"){ | ||
294 | + i3GEO.janela.tempoMsg($trad('erro2',i3GEOF.conectarwms.dicionario)); | ||
295 | + } | ||
296 | + else{ | ||
297 | + i3GEO.atualiza(); | ||
298 | + } | ||
302 | }; | 299 | }; |
303 | - aguarde("block"); | 300 | + |
304 | var tiporep = ""; | 301 | var tiporep = ""; |
305 | if($i("tiporep")){ | 302 | if($i("tiporep")){ |
306 | tiporep = $i("tiporep").value; | 303 | tiporep = $i("tiporep").value; |
307 | } | 304 | } |
308 | - var url = "../../classesphp/mapa_controle.php?g_sid="+g_sid; | ||
309 | - if($i("servico").value.split("?").length === 1){ | ||
310 | - $i("servico").value = $i("servico").value+"?"; | 305 | + var url = i3GEO.configura.locaplic + "/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid; |
306 | + if($i("servicoWms").value.split("?").length === 1){ | ||
307 | + $i("servicoWms").value = $i("servicoWms").value+"?"; | ||
311 | } | 308 | } |
312 | if($i("proj").value === ""){ | 309 | if($i("proj").value === ""){ |
313 | $i("proj").value = "EPSG:4326"; | 310 | $i("proj").value = "EPSG:4326"; |
314 | } | 311 | } |
315 | - var p = "&funcao=adicionatemawms&servico="+$i("servico").value+"&tema="+g_tema+"&nome="+g_nometema+"&proj="+$i("proj").value+"&formato="+$i("formatos").value+"&tipo="+g_tipo+"&versao="+$i("versao").value+"&nomecamada="+g_nomecamada+"&tiporep="+tiporep+"&suportasld="+g_sld+"&formatosinfo="+$i("formatosinfo").value; | ||
316 | - if(g_tipows == "WMS-Tile"){ | 312 | + var p = "&funcao=adicionatemawms&servico="+$i("servicoWms").value+"&tema="+tema+"&nome="+nometema |
313 | + +"&proj="+$i("proj").value+"&formato="+$i("formatos").value | ||
314 | + +"&tipo="+tipo+"&versao="+$i("versao").value | ||
315 | + +"&nomecamada="+nomecamada+"&tiporep="+tiporep+"&suportasld="+sldflag+"&formatosinfo="+$i("formatosinfo").value; | ||
316 | + if(i3GEOF.conectarwms.TIPOWS == "WMS-Tile"){ | ||
317 | p += "&tile=1"; | 317 | p += "&tile=1"; |
318 | } | 318 | } |
319 | else{ | 319 | else{ |
@@ -321,41 +321,7 @@ function seltema(tipo,tema,legenda,nometema,nomecamada,sldflag) | @@ -321,41 +321,7 @@ function seltema(tipo,tema,legenda,nometema,nomecamada,sldflag) | ||
321 | } | 321 | } |
322 | var cp = new cpaint(); | 322 | var cp = new cpaint(); |
323 | cp.set_transfer_mode("POST"); | 323 | cp.set_transfer_mode("POST"); |
324 | - //cp.set_debug(2) | ||
325 | cp.set_response_type("JSON"); | 324 | cp.set_response_type("JSON"); |
326 | cp.call(url,"adicionatemawms",retorno,p); | 325 | cp.call(url,"adicionatemawms",retorno,p); |
327 | } | 326 | } |
328 | -} | ||
329 | -/* | ||
330 | -Function abrejanelaIframe | ||
331 | - | ||
332 | -Abre uma janela flutuante contendo um iframe | ||
333 | - | ||
334 | -Parametros: | ||
335 | - | ||
336 | -w {string} - largura | ||
337 | - | ||
338 | -h {string} - altura | ||
339 | - | ||
340 | -s {string} - src do iframe | ||
341 | -*/ | ||
342 | -function abrejanelaIframe(){ | ||
343 | - var s = "../../admin/html/webservices.html?tipo=wms"; | ||
344 | - var janelaeditor = i3GEO.janela.cria( | ||
345 | - "1000", | ||
346 | - "500", | ||
347 | - s, | ||
348 | - parseInt(Math.random()*100,10), | ||
349 | - 10, | ||
350 | - s, | ||
351 | - "janela"+window.parent.i3GEO.util.randomRGB(), | ||
352 | - false, | ||
353 | - "hd", | ||
354 | - "", | ||
355 | - "", | ||
356 | - "", | ||
357 | - true, | ||
358 | - window.parent.i3GEO.configura.locaplic+"/imagens/oxygen/16x16/application-x-smb-workgroup.png" | ||
359 | - ); | ||
360 | - YAHOO.util.Event.addListener(janelaeditor[0].close, "click", iniciaListaWS,janelaeditor[0].panel,{id:janelaeditor[0].id},true); | ||
361 | -} | ||
362 | \ No newline at end of file | 327 | \ No newline at end of file |
328 | +}; | ||
363 | \ No newline at end of file | 329 | \ No newline at end of file |
ferramentas/conectarwms/listalayers.php
@@ -1,84 +0,0 @@ | @@ -1,84 +0,0 @@ | ||
1 | -<?php | ||
2 | -/** | ||
3 | - * Este programa e utilizado pela ferramenta buscainde | ||
4 | - * E uma copia da ferramenta conctarwms sem mostrar as guias de esolha de servico | ||
5 | - * Isso pq o endereco do servico e um parametro obtido em $_GET["servico"] | ||
6 | - */ | ||
7 | -include (dirname(__FILE__)."/../../classesphp/sani_request.php"); | ||
8 | -include(dirname(__FILE__)."../../ms_configura.php"); | ||
9 | -include(dirname(__FILE__)."../blacklist.php"); | ||
10 | -verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,true); | ||
11 | -?> | ||
12 | -<html> | ||
13 | - | ||
14 | -<head> | ||
15 | -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> | ||
16 | -<link rel="stylesheet" type="text/css" href="../../css/i3geo_ferramentas6.css"> | ||
17 | -<title></title> | ||
18 | -<style type="text/css" >button{background:url(../../imagens/tic.png) 98% 50% no-repeat;}</style> | ||
19 | -<link rel="stylesheet" type="text/css" href="../../pacotes/yui290/build/button/assets/skins/sam/button.css"/> | ||
20 | -<style type="text/css"> | ||
21 | -body { | ||
22 | - margin:0; | ||
23 | - padding:0;border:0px; | ||
24 | -} | ||
25 | -p{ | ||
26 | - text-align: left; | ||
27 | -} | ||
28 | -.guiaobj { | ||
29 | - background-color: white; | ||
30 | - display: block; | ||
31 | - height: 97%; | ||
32 | - left: 0; | ||
33 | - overflow: auto; | ||
34 | - text-align: left; | ||
35 | - top: 0; | ||
36 | - width: 98%; | ||
37 | -} | ||
38 | -</style> | ||
39 | -</head> | ||
40 | -<body class="yui-skin-sam" style="background-color: white;"> | ||
41 | - | ||
42 | - <div class=guiaobj id="guia3obj" style="left:0px;display:block;"> | ||
43 | - <div id=listatemas style="display:block;position:relative;top:10px;left:0px;"> | ||
44 | - Aguarde... | ||
45 | - </div> | ||
46 | - </div> | ||
47 | - | ||
48 | -<input type=hidden id=servico value="<?php echo $_GET["servico"];?>" /> | ||
49 | - | ||
50 | -<script type="text/javascript" src="../../classesjs/i3geo.js"></script> | ||
51 | -<script type="text/javascript" src="index.js"></script> | ||
52 | - | ||
53 | -<script type="text/javascript" > | ||
54 | -// | ||
55 | -//tenta pegar o codigo do layer do endereco do servico | ||
56 | -// | ||
57 | -var buscarEm = ["LAYER","LAYERS","layer","layers","tema","typename","typeName"], | ||
58 | - n = buscarEm.length, | ||
59 | - i,s,partes, | ||
60 | - b = [], | ||
61 | - codLayer = "", | ||
62 | - u = window.location.href; | ||
63 | - | ||
64 | -//acrescenta novas strings | ||
65 | -for(i = 0; i < n; i++){ | ||
66 | - b.push("&" + buscarEm[i] + "="); | ||
67 | - b.push("?" + buscarEm[i] + "="); | ||
68 | -} | ||
69 | -n = b.length; | ||
70 | -//quebra as strings pra achar o padrao | ||
71 | -for(i = 0; i < n; i++){ | ||
72 | - s = b[i]; | ||
73 | - partes = u.split(s); | ||
74 | - if(partes.length > 1){ | ||
75 | - partes = partes[1].split("&"); | ||
76 | - codLayer = partes[0]; | ||
77 | - } | ||
78 | -} | ||
79 | -g_locaplic = "../.."; | ||
80 | -//console.info(codLayer) | ||
81 | -clickGuia3(codLayer); | ||
82 | -</script> | ||
83 | -</body> | ||
84 | -</html> |
@@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
1 | +<div class="container-fluid"> | ||
2 | + <div class='form-group label-fixed condensed'> | ||
3 | + <label class="control-label" for="servicoWms">{{{sel}}}</label> | ||
4 | + <input class="form-control input-lg" type='text' id='servicoWms' value='' /> | ||
5 | + </div> | ||
6 | + <div class='form-group label-fixed condensed'> | ||
7 | + <div style="width: 100%;" class="input-group" id='RSSgeo'></div> | ||
8 | + </div> | ||
9 | + <button onclick="i3GEOF.conectarwms.listaLayers()" class='btn btn-primary btn-sm btn-raised'>{{{listaLayers}}}</button> | ||
10 | + <div id="resultadoget" ></div> | ||
11 | +</div> | ||
0 | \ No newline at end of file | 12 | \ No newline at end of file |
@@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
1 | +//+$trad(1,i3GEOF.conectarwms.dicionario)+ | ||
2 | +i3GEOF.conectarwms.dicionario = { | ||
3 | + 'erro' : [ { | ||
4 | + pt : "Oops! Ocorreu um erro", | ||
5 | + en : "", | ||
6 | + es : "¡Oops! Ocurrió un error" | ||
7 | + } ], | ||
8 | + 'disponibilidade' : [ { | ||
9 | + pt : "disponibilidade", | ||
10 | + en : "", | ||
11 | + es : "disponibilidad" | ||
12 | + } ], | ||
13 | + 'acessos' : [ { | ||
14 | + pt : "acessos considerados", | ||
15 | + en : "", | ||
16 | + es : "Accesos considerados" | ||
17 | + } ], | ||
18 | + 'servico' : [ { | ||
19 | + pt : "Serviço não definido", | ||
20 | + en : "", | ||
21 | + es : "Servicio no definido" | ||
22 | + } ], | ||
23 | + 5 : [ { | ||
24 | + pt : "Ooops! Problemas ao acessar o serviço.", | ||
25 | + en : "", | ||
26 | + es : "¡Oops! Problemas para acceder al servicio." | ||
27 | + } ] | ||
28 | +}; | ||
0 | \ No newline at end of file | 29 | \ No newline at end of file |
1.48 KB
@@ -0,0 +1,141 @@ | @@ -0,0 +1,141 @@ | ||
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> | ||
5 | +<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0"> | ||
6 | +<script src="../../js/i3geo.js"></script> | ||
7 | +<link rel="stylesheet" type="text/css" href="../../pacotes/bootstrap/css/bootstrap.min.css"> | ||
8 | +<link rel="stylesheet" type="text/css" href="../../pacotes/bootstrap-material-design/dist/css/bootstrap-material-design.min.css"> | ||
9 | +<link rel="stylesheet" type="text/css" href="../../css/default.css"> | ||
10 | +</head> | ||
11 | +<body id="i3geo" style='background-color: #477596; height: 400px; visibility:visible' class="yui-skin-sam bd"> | ||
12 | + <div class='yui-navset' style='top: 0px; cursor: pointer; left: 0px; margin-left: 2px;'> | ||
13 | + <ul class="yui-nav" style="border-width: 0pt 0pt 0px; border-color: rgb(240, 240, 240); border-bottom-color: white;"> | ||
14 | + <li> | ||
15 | + <div id='guia1' style='text-align: center; left: 0px;'> | ||
16 | + <a> | ||
17 | + <em>Serviços</em> | ||
18 | + </a> | ||
19 | + </div> | ||
20 | + </li> | ||
21 | + <li> | ||
22 | + <div id='guia2' style='text-align: center; left: 0px;'> | ||
23 | + <a> | ||
24 | + <em>Metadados</em> | ||
25 | + </a> | ||
26 | + </div> | ||
27 | + </li> | ||
28 | + <li> | ||
29 | + <div id='guia3' style='text-align: center; left: 0px;'> | ||
30 | + <a> | ||
31 | + <em>Lista de temas</em> | ||
32 | + </a> | ||
33 | + </div> | ||
34 | + </li> | ||
35 | + </ul> | ||
36 | + </div> | ||
37 | + | ||
38 | + <div class='container-fluid bd' id="guia1obj"> | ||
39 | + <h5> | ||
40 | + <a href="../../documentacao/ajuda/The_ArcIMS_OGC_WMS_Connector.pdf" target=blank>Veja como criar web services no ARCIMS</a> | ||
41 | + </h5> | ||
42 | + <h5> | ||
43 | + <a href="../../documentacao/ajuda/ArcGIS9.x.html" target=blank>Veja como utilizar web services no ARCGIS</a> | ||
44 | + </h5> | ||
45 | + <h5>Digite o endereço do serviço ou escolha da lista abaixo. Utilize as guias acima para ver o resultado da conexão. Por padrão, utiliza-se a versão | ||
46 | + 1.1.0 do GetCapabilities. Você pode adicionar um outro, bastando incluir no endereço do serviço "&version=1.3.0" por exemplo.</h5> | ||
47 | + | ||
48 | + <div class='form-group label-fixed condensed'> | ||
49 | + <input class="form-control input-lg" type='text' id='servico' value='' /> | ||
50 | + </div> | ||
51 | + | ||
52 | + <div style="width: 100%;" class='form-group label-fixed condensed'> | ||
53 | + <div id=RSSwms class="input-group"></div> | ||
54 | + </div> | ||
55 | + <br> | ||
56 | + <div id=RSSbt style="text-align: left;"></div> | ||
57 | + </div> | ||
58 | + <div class='container-fluid' id="guia2obj"> | ||
59 | + <p class=paragrafo> | ||
60 | + <input type=button id="getCapabilities" value="Descrição do WMS" /> | ||
61 | + </p> | ||
62 | + <div id=resultadoget style="display: block; position: relative; top: 5px; left: 1px" class=paragrafo></div> | ||
63 | + </div> | ||
64 | + <div class='container-fluid' id="guia3obj"> | ||
65 | + <p class=paragrafo> | ||
66 | + Após a conexão ser estabelecida e surgir a lista de temas, selecione a camada que será adicionada ao mapa. | ||
67 | + <br> | ||
68 | + </p> | ||
69 | + <div id=textoSLD style="display: none; font-size: 10px"> | ||
70 | + <p class=paragrafo> | ||
71 | + Opcionalmente vc pode indicar o tipo de representação que será utilizada. | ||
72 | + <br> | ||
73 | + Não altere o tipo de representação se a camada escolhida for uma imagem (dados raster) ou se você tiver dúvidas sobre ela. | ||
74 | + <br> | ||
75 | + </p> | ||
76 | + <div class=styled-select> | ||
77 | + <select id=tiporep> | ||
78 | + <option value="">---</option> | ||
79 | + <option value="poligonal">poligonal</option> | ||
80 | + <option value="linear">linear</option> | ||
81 | + <option value="pontual">pontual</option> | ||
82 | + </select> | ||
83 | + </div> | ||
84 | + </div> | ||
85 | + <div id=listatemas class=paragrafo></div> | ||
86 | + </div> | ||
87 | + | ||
88 | + <div id="aguarde">Aguarde...</div> | ||
89 | + | ||
90 | + <script type="text/javascript" src="index.js"></script> | ||
91 | + <script type="text/javascript"> | ||
92 | + $.material.init(); | ||
93 | + var b = new YAHOO.widget.Button("getCapabilities", { | ||
94 | + onclick : { | ||
95 | + fn : getcapabilities | ||
96 | + } | ||
97 | + }); | ||
98 | + b.addClass("rodar"); | ||
99 | + g_locaplic = "../.."; | ||
100 | + iniciaListaWS(); | ||
101 | + function iniciaListaWS() { | ||
102 | + g_RSSwms = new Array(""); | ||
103 | + aguarde("block"); | ||
104 | + | ||
105 | + if (document.getElementById("RSSwms")) { | ||
106 | + if (g_RSSwms.length > 0) { | ||
107 | + var p = g_locaplic | ||
108 | + + "/classesphp/wscliente.php?funcao=listaRSSwsARRAY&rss=" | ||
109 | + + g_RSSwms.join("|") + "&tipo=WMS"; | ||
110 | + var cp = new cpaint(); | ||
111 | + //cp.set_debug(2) | ||
112 | + cp.set_response_type("JSON"); | ||
113 | + cp.call(p, "listaRSSwsARRAY", mostraRetornowmsRSS); | ||
114 | + } | ||
115 | + } | ||
116 | + } | ||
117 | + function mostraRetornowmsRSS(retorno) { | ||
118 | + var reg = /Erro/gi; | ||
119 | + if (retorno.data.rss.search(reg) != -1) { | ||
120 | + i3GEO.janela.tempoMsg("OOps! Ocorreu um erro\n" + retorno.data); | ||
121 | + return; | ||
122 | + } | ||
123 | + var canais = retorno.data.canais; | ||
124 | + var ncanais = canais.length; | ||
125 | + $i("RSSbt").innerHTML = retorno.data.rss; | ||
126 | + var i, ins = ""; | ||
127 | + ins += "<select class='form-control' size='5' onchange='registraws(this.value)' style='width:100%;' >"; | ||
128 | + for (i = 0; i < ncanais; i++) { | ||
129 | + var caso = canais[i]; | ||
130 | + var valor = "'" + caso.link + "','" + caso.id_ws + "','" | ||
131 | + + caso.tipo_ws + "'"; | ||
132 | + ins += "<option value=" + valor + " >" + caso.title | ||
133 | + + "</option>"; | ||
134 | + } | ||
135 | + ins += "</select>"; | ||
136 | + document.getElementById("RSSwms").innerHTML = ins; | ||
137 | + aguarde("none"); | ||
138 | + } | ||
139 | + </script> | ||
140 | +</body> | ||
141 | +</html> |
@@ -0,0 +1,361 @@ | @@ -0,0 +1,361 @@ | ||
1 | +/* | ||
2 | +Title: Conexão com WMS | ||
3 | + | ||
4 | +Acrescenta ao mapa um novo tema com base em um endereço de WMS | ||
5 | + | ||
6 | +O usuário pode indicar o endereço ou escolher de uma lista. A lista é pré-definida por meio do sistema de administração | ||
7 | +do i3Geo. | ||
8 | + | ||
9 | +Veja: | ||
10 | + | ||
11 | +<ADICIONATEMAWMS> | ||
12 | + | ||
13 | +Arquivo: | ||
14 | + | ||
15 | +i3geo/ferramentas/conectarwms/index.js | ||
16 | + | ||
17 | +Licenca: | ||
18 | + | ||
19 | +GPL2 | ||
20 | + | ||
21 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
22 | + | ||
23 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
24 | +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
25 | + | ||
26 | +Este programa é software livre; você pode redistribuí-lo | ||
27 | +e/ou modificá-lo sob os termos da Licença Pública Geral | ||
28 | +GNU conforme publicada pela Free Software Foundation; | ||
29 | + | ||
30 | +Este programa é distribuído na expectativa de que seja útil, | ||
31 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
32 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
33 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
34 | +Você deve ter recebido uma cópia da Licença Pública Geral do | ||
35 | +GNU junto com este programa; se não, escreva para a | ||
36 | +Free Software Foundation, Inc., no endereço | ||
37 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
38 | +*/ | ||
39 | +//variaveis globais | ||
40 | +g_tipo = ""; //tipo de tema | ||
41 | +g_tema = ""; //tema selecionado do ws | ||
42 | +g_legenda = ""; //legenda do tema | ||
43 | +g_nometema = ""; //nome do tema | ||
44 | +g_idws = ""; | ||
45 | +g_sid = window.parent.i3GEO.configura.sid; | ||
46 | +var g_tipows = "";//obtido do mapfile | ||
47 | +//ativaGuias(""); | ||
48 | +//mostraGuia("guia1"); | ||
49 | +i3GEO.guias.mostraGuiaFerramenta("guia1"); | ||
50 | +if($i("guia1")){ | ||
51 | + $i("guia1").onclick = function(){ | ||
52 | + //mostraGuia("guia1"); | ||
53 | + i3GEO.guias.mostraGuiaFerramenta("guia1"); | ||
54 | + $i("resultadoget").innerHTML = ""; | ||
55 | + }; | ||
56 | +} | ||
57 | +if($i("guia2")){ | ||
58 | + $i("guia2").onclick = function(){clickGuia2();}; | ||
59 | +} | ||
60 | +if($i("guia3")){ | ||
61 | + $i("guia3").onclick = function(){clickGuia3();}; | ||
62 | +} | ||
63 | +function aguarde(valor){ | ||
64 | + if(document.getElementById("aguarde")) | ||
65 | + document.getElementById("aguarde").style.display = valor; | ||
66 | +} | ||
67 | +/* | ||
68 | +Function: listaRSS | ||
69 | + | ||
70 | +Monta a lista de serviços WMS cadastrados no sistema de administração do i3Geo | ||
71 | + | ||
72 | +Veja: | ||
73 | + | ||
74 | +<LISTARSSWSARRAY> | ||
75 | + | ||
76 | +Parametros: | ||
77 | + | ||
78 | +g_RSS {Array} - array com a lista de RSS que contém a lista de WMS cadastrados. Se for um array com um único elemento vazio, | ||
79 | +será utilizado o endereço default do i3GEO (g_RSS = new Array("")) | ||
80 | + | ||
81 | +onde {Stribg} - id do elemento HTML que receberá a lista de endereços formatada | ||
82 | +*/ | ||
83 | +function listaRSS(g_RSS,onde) | ||
84 | +{ | ||
85 | + var mostraRetornoRSS = function(retorno){ | ||
86 | + aguarde("none"); | ||
87 | + var reg = /Erro/gi; | ||
88 | + if (retorno.data.rss.search(reg) != -1) | ||
89 | + { | ||
90 | + i3GEO.janela.tempoMsg($trad('erro',i3GEOF.conectarwms.dicionario)+"\n"+retorno.data); | ||
91 | + return; | ||
92 | + } | ||
93 | + var canais = retorno.data.canais; | ||
94 | + var ncanais = canais.length; | ||
95 | + var ins = "<br>"+retorno.data.rss; | ||
96 | + for (var i=0;i<ncanais; i++) | ||
97 | + { | ||
98 | + var caso = canais[i]; | ||
99 | + ins += "\<p class=clique onclick=\"registraws('"+caso.link+"','"+caso.id_ws+"','"+caso.tipo_ws+"')\" \>\<b\>"+caso.title+"\<\/b\> "+caso.description+" ("+caso.author+")"; | ||
100 | + if(caso.nacessos > 0) | ||
101 | + { | ||
102 | + var pc = (parseInt(caso.nacessosok) * 100) / parseInt(caso.nacessos); | ||
103 | + ins += " \<span style=color:gray \>("+$trad('disponibilidade',i3GEOF.conectarwms.dicionario)+": "+pc+"%, "+$trad('acessos',i3GEOF.conectarwms.dicionario)+": "+caso.nacessos+")\<\/span>\<\/p\>"; | ||
104 | + } | ||
105 | + } | ||
106 | + document.getElementById(onde).innerHTML = ins+"<br><br>"; | ||
107 | + }; | ||
108 | + if (document.getElementById(onde)) | ||
109 | + { | ||
110 | + if (g_RSS.length > 0) | ||
111 | + { | ||
112 | + var p = "../../classesphp/wscliente.php?funcao=listaRSSwsARRAY&rss="+g_RSS.join("|")+"&tipo=GEORSS"; | ||
113 | + var cp = new cpaint(); | ||
114 | + //cp.set_debug(2) | ||
115 | + cp.set_response_type("JSON"); | ||
116 | + cp.call(p,"listaRSSwsARRAY",mostraRetornoRSS); | ||
117 | + } | ||
118 | + } | ||
119 | +} | ||
120 | +/* | ||
121 | +Function: getcapabilities | ||
122 | + | ||
123 | +Abre uma nova janela com o resultado da chamada GETCAPABILITIES sobre o WMS escolhido | ||
124 | +*/ | ||
125 | +function getcapabilities() | ||
126 | +{ | ||
127 | + if ($i("servico").value == ""){i3GEO.janela.tempoMsg($trad('servico',i3GEOF.conectarwms.dicionario));} | ||
128 | + else | ||
129 | + {window.open($i("servico").value+"&service=wms&request=getcapabilities&version=1.1.1");} | ||
130 | +} | ||
131 | +/* | ||
132 | +Function: clickGuia2 | ||
133 | + | ||
134 | +Mostra as principais informações sobre o WMS escolhido tendo como fonte o getcapabilities | ||
135 | + | ||
136 | +Veja: | ||
137 | + | ||
138 | +<GETCAPABILITIES2> | ||
139 | +*/ | ||
140 | +function clickGuia2() | ||
141 | +{ | ||
142 | + //mostraGuia("guia2"); | ||
143 | + i3GEO.guias.mostraGuiaFerramenta("guia2"); | ||
144 | + if ($i("servico").value == ""){i3GEO.janela.tempoMsg($trad('servico',i3GEOF.conectarwms.dicionario));} | ||
145 | + else | ||
146 | + { | ||
147 | + var metadados = function(retorno){ | ||
148 | + if (retorno.data != undefined) | ||
149 | + { | ||
150 | + aguarde("none"); | ||
151 | + $i("resultadoget").innerHTML = retorno.data; | ||
152 | + } | ||
153 | + else | ||
154 | + { | ||
155 | + aguarde("none"); | ||
156 | + $i("resultadoget").innerHTML = "<p style=color:red >"+$trad('erro',i3GEOF.conectarwms.dicionario)+"<br>"; | ||
157 | + } | ||
158 | + }; | ||
159 | + $i("guia2obj").style.display="block"; | ||
160 | + aguarde("block"); | ||
161 | + var p = "../../classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=getcapabilities2&servico="+$i("servico").value; | ||
162 | + var cp = new cpaint(); | ||
163 | + //cp.set_debug(2) | ||
164 | + cp.set_response_type("JSON"); | ||
165 | + cp.call(p,"getcapabilities2",metadados); | ||
166 | + } | ||
167 | +} | ||
168 | +/* | ||
169 | +Function: clickGuia3 | ||
170 | + | ||
171 | +Lista as camadas existentes no WMS escolhido. | ||
172 | + | ||
173 | +O resultado da chamada em PHP é uma string HTML já formatada. O "radio" aponta para a função "adiciona" | ||
174 | + | ||
175 | +Veja: | ||
176 | + | ||
177 | +<TEMASWMS> | ||
178 | +*/ | ||
179 | +function clickGuia3(codLayer) | ||
180 | +{ | ||
181 | + //mostraGuia("guia3"); | ||
182 | + i3GEO.guias.mostraGuiaFerramenta("guia3"); | ||
183 | + var listatemas = function(retorno){ | ||
184 | + g_idws = ""; | ||
185 | + aguarde("none"); | ||
186 | + if ((retorno.data != "erro") && (retorno.data != undefined)){ | ||
187 | + $i("listatemas").innerHTML = retorno.data; | ||
188 | + g_tipo = ""; //tipo de tema | ||
189 | + g_tema = ""; //tema selecionado do ws | ||
190 | + g_legenda = ""; //legenda do tema | ||
191 | + g_nometema = ""; //nome do tema | ||
192 | + g_sld = ""; | ||
193 | + if ($i("suportasld")){ | ||
194 | + if ($i("suportasld").value != "nao") { | ||
195 | + if ($i("textoSLD")) | ||
196 | + $i("textoSLD").style.display = "block"; | ||
197 | + } | ||
198 | + } | ||
199 | + //ativa um layer caso tenha sido enviado como um parametro no inicio da ferramenta | ||
200 | + ativaAutoLayer(codLayer); | ||
201 | + } | ||
202 | + else{ | ||
203 | + //$i("listatemas").innerHTML = "erro"; | ||
204 | + } | ||
205 | + }; | ||
206 | + if ($i("servico").value == ""){ | ||
207 | + i3GEO.janela.tempoMsg($trad('servico',i3GEOF.conectarwms.dicionario)); | ||
208 | + } | ||
209 | + else | ||
210 | + { | ||
211 | + $i("listatemas").innerHTML = ""; | ||
212 | + aguarde("block"); | ||
213 | + var p = "../../classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=temaswms&id_ws="+g_idws+"&servico="+$i("servico").value; | ||
214 | + var cp = new cpaint(); | ||
215 | + //cp.set_debug(2) | ||
216 | + cp.set_response_type("JSON"); | ||
217 | + cp.call(p,"temaswms",listatemas); | ||
218 | + } | ||
219 | +} | ||
220 | +function ativaAutoLayer(codLayer){ | ||
221 | + if(codLayer && codLayer != ""){ | ||
222 | + var container, rs, nrs, i, r, codLayer1; | ||
223 | + codLayer1 = codLayer.split(":"); | ||
224 | + if(codLayer1.length > 0){ | ||
225 | + codLayer1 = codLayer1[1]; | ||
226 | + } | ||
227 | + else{ | ||
228 | + codLayer1 = codLayer1[0]; | ||
229 | + } | ||
230 | + container = $i("listatemas"); | ||
231 | + if(container){ | ||
232 | + rs = container.getElementsByTagName("input"); | ||
233 | + nrs = rs.length; | ||
234 | + | ||
235 | + for(i = 0; i < nrs; i++){ | ||
236 | + r = rs[i]; | ||
237 | + if(r.type === "radio" && (r.value === codLayer || r.value === codLayer1)){ | ||
238 | + r.onclick.call(); | ||
239 | + r.checked = true; | ||
240 | + r.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.scrollIntoView(true); | ||
241 | + } | ||
242 | + } | ||
243 | + } | ||
244 | + } | ||
245 | +} | ||
246 | + | ||
247 | +/* | ||
248 | +Function: registraws | ||
249 | + | ||
250 | +Armazena em variáveis locais os parametros do WMS escolhido e ativa a guia 3, mostrando a lista de camadas disponíveis | ||
251 | + | ||
252 | +Parametros: | ||
253 | + | ||
254 | +nome {string} - nome do WMS | ||
255 | + | ||
256 | +id_ws {String} - id do WMS | ||
257 | +*/ | ||
258 | +function registraws(nome,id_ws,tipo) | ||
259 | +{ | ||
260 | + $i("servico").value = nome; | ||
261 | + g_tipo = ""; //tipo de tema | ||
262 | + g_tipows = "WMS"; //tipo de servico | ||
263 | + g_tema = ""; //tema selecionado do ws | ||
264 | + g_legenda = ""; //legenda do tema | ||
265 | + g_nometema = ""; //nome do tema | ||
266 | + if(arguments.length == 2) | ||
267 | + g_idws = id_ws; | ||
268 | + else | ||
269 | + g_idws = ""; | ||
270 | + if(tipo){ | ||
271 | + g_tipows = tipo; | ||
272 | + } | ||
273 | + clickGuia3(); | ||
274 | +} | ||
275 | +/* | ||
276 | +Function: seltema | ||
277 | + | ||
278 | +Inclui um LAYER, escolhido de um WMS, no mapa atual | ||
279 | + | ||
280 | +Veja: | ||
281 | + | ||
282 | +<ADICIONATEMAWMS> | ||
283 | + | ||
284 | +*/ | ||
285 | +function seltema(tipo,tema,legenda,nometema,nomecamada,sldflag) | ||
286 | +{ | ||
287 | + g_tipo = tipo; //tipo de tema | ||
288 | + g_tema = tema; //tema selecionado do ws | ||
289 | + g_legenda = legenda; //legenda do tema | ||
290 | + g_nometema = nometema; //nome do tema | ||
291 | + g_nomecamada = nomecamada; //nome que vai na legenda | ||
292 | + g_sld = sldflag; //suporta ou nao sld | ||
293 | + if (g_tema != "") | ||
294 | + { | ||
295 | + var retorno = function(retorno) | ||
296 | + { | ||
297 | + aguarde("none"); | ||
298 | + if(retorno.data != "ok") | ||
299 | + {i3GEO.janela.tempoMsg($trad('erro2',i3GEOF.conectarwms.dicionario));aguarde("none");} | ||
300 | + else | ||
301 | + {window.parent.i3GEO.atualiza();} | ||
302 | + }; | ||
303 | + aguarde("block"); | ||
304 | + var tiporep = ""; | ||
305 | + if($i("tiporep")){ | ||
306 | + tiporep = $i("tiporep").value; | ||
307 | + } | ||
308 | + var url = "../../classesphp/mapa_controle.php?g_sid="+g_sid; | ||
309 | + if($i("servico").value.split("?").length === 1){ | ||
310 | + $i("servico").value = $i("servico").value+"?"; | ||
311 | + } | ||
312 | + if($i("proj").value === ""){ | ||
313 | + $i("proj").value = "EPSG:4326"; | ||
314 | + } | ||
315 | + var p = "&funcao=adicionatemawms&servico="+$i("servico").value+"&tema="+g_tema+"&nome="+g_nometema+"&proj="+$i("proj").value+"&formato="+$i("formatos").value+"&tipo="+g_tipo+"&versao="+$i("versao").value+"&nomecamada="+g_nomecamada+"&tiporep="+tiporep+"&suportasld="+g_sld+"&formatosinfo="+$i("formatosinfo").value; | ||
316 | + if(g_tipows == "WMS-Tile"){ | ||
317 | + p += "&tile=1"; | ||
318 | + } | ||
319 | + else{ | ||
320 | + p += "&tile=0"; | ||
321 | + } | ||
322 | + var cp = new cpaint(); | ||
323 | + cp.set_transfer_mode("POST"); | ||
324 | + //cp.set_debug(2) | ||
325 | + cp.set_response_type("JSON"); | ||
326 | + cp.call(url,"adicionatemawms",retorno,p); | ||
327 | + } | ||
328 | +} | ||
329 | +/* | ||
330 | +Function abrejanelaIframe | ||
331 | + | ||
332 | +Abre uma janela flutuante contendo um iframe | ||
333 | + | ||
334 | +Parametros: | ||
335 | + | ||
336 | +w {string} - largura | ||
337 | + | ||
338 | +h {string} - altura | ||
339 | + | ||
340 | +s {string} - src do iframe | ||
341 | +*/ | ||
342 | +function abrejanelaIframe(){ | ||
343 | + var s = "../../admin/html/webservices.html?tipo=wms"; | ||
344 | + var janelaeditor = i3GEO.janela.cria( | ||
345 | + "1000", | ||
346 | + "500", | ||
347 | + s, | ||
348 | + parseInt(Math.random()*100,10), | ||
349 | + 10, | ||
350 | + s, | ||
351 | + "janela"+window.parent.i3GEO.util.randomRGB(), | ||
352 | + false, | ||
353 | + "hd", | ||
354 | + "", | ||
355 | + "", | ||
356 | + "", | ||
357 | + true, | ||
358 | + window.parent.i3GEO.configura.locaplic+"/imagens/oxygen/16x16/application-x-smb-workgroup.png" | ||
359 | + ); | ||
360 | + YAHOO.util.Event.addListener(janelaeditor[0].close, "click", iniciaListaWS,janelaeditor[0].panel,{id:janelaeditor[0].id},true); | ||
361 | +} | ||
0 | \ No newline at end of file | 362 | \ No newline at end of file |
@@ -0,0 +1,84 @@ | @@ -0,0 +1,84 @@ | ||
1 | +<?php | ||
2 | +/** | ||
3 | + * Este programa e utilizado pela ferramenta buscainde | ||
4 | + * E uma copia da ferramenta conctarwms sem mostrar as guias de esolha de servico | ||
5 | + * Isso pq o endereco do servico e um parametro obtido em $_GET["servico"] | ||
6 | + */ | ||
7 | +include (dirname(__FILE__)."/../../classesphp/sani_request.php"); | ||
8 | +include(dirname(__FILE__)."../../ms_configura.php"); | ||
9 | +include(dirname(__FILE__)."../blacklist.php"); | ||
10 | +verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,true); | ||
11 | +?> | ||
12 | +<html> | ||
13 | + | ||
14 | +<head> | ||
15 | +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> | ||
16 | +<link rel="stylesheet" type="text/css" href="../../css/i3geo_ferramentas6.css"> | ||
17 | +<title></title> | ||
18 | +<style type="text/css" >button{background:url(../../imagens/tic.png) 98% 50% no-repeat;}</style> | ||
19 | +<link rel="stylesheet" type="text/css" href="../../pacotes/yui290/build/button/assets/skins/sam/button.css"/> | ||
20 | +<style type="text/css"> | ||
21 | +body { | ||
22 | + margin:0; | ||
23 | + padding:0;border:0px; | ||
24 | +} | ||
25 | +p{ | ||
26 | + text-align: left; | ||
27 | +} | ||
28 | +.guiaobj { | ||
29 | + background-color: white; | ||
30 | + display: block; | ||
31 | + height: 97%; | ||
32 | + left: 0; | ||
33 | + overflow: auto; | ||
34 | + text-align: left; | ||
35 | + top: 0; | ||
36 | + width: 98%; | ||
37 | +} | ||
38 | +</style> | ||
39 | +</head> | ||
40 | +<body class="yui-skin-sam" style="background-color: white;"> | ||
41 | + | ||
42 | + <div class=guiaobj id="guia3obj" style="left:0px;display:block;"> | ||
43 | + <div id=listatemas style="display:block;position:relative;top:10px;left:0px;"> | ||
44 | + Aguarde... | ||
45 | + </div> | ||
46 | + </div> | ||
47 | + | ||
48 | +<input type=hidden id=servico value="<?php echo $_GET["servico"];?>" /> | ||
49 | + | ||
50 | +<script type="text/javascript" src="../../classesjs/i3geo.js"></script> | ||
51 | +<script type="text/javascript" src="index.js"></script> | ||
52 | + | ||
53 | +<script type="text/javascript" > | ||
54 | +// | ||
55 | +//tenta pegar o codigo do layer do endereco do servico | ||
56 | +// | ||
57 | +var buscarEm = ["LAYER","LAYERS","layer","layers","tema","typename","typeName"], | ||
58 | + n = buscarEm.length, | ||
59 | + i,s,partes, | ||
60 | + b = [], | ||
61 | + codLayer = "", | ||
62 | + u = window.location.href; | ||
63 | + | ||
64 | +//acrescenta novas strings | ||
65 | +for(i = 0; i < n; i++){ | ||
66 | + b.push("&" + buscarEm[i] + "="); | ||
67 | + b.push("?" + buscarEm[i] + "="); | ||
68 | +} | ||
69 | +n = b.length; | ||
70 | +//quebra as strings pra achar o padrao | ||
71 | +for(i = 0; i < n; i++){ | ||
72 | + s = b[i]; | ||
73 | + partes = u.split(s); | ||
74 | + if(partes.length > 1){ | ||
75 | + partes = partes[1].split("&"); | ||
76 | + codLayer = partes[0]; | ||
77 | + } | ||
78 | +} | ||
79 | +g_locaplic = "../.."; | ||
80 | +//console.info(codLayer) | ||
81 | +clickGuia3(codLayer); | ||
82 | +</script> | ||
83 | +</body> | ||
84 | +</html> |
pacotes/yui290/build/container/container_compacto.js
100644 → 100755
pacotes/yui290/build/container/container_core_compacto.js
100644 → 100755
pacotes/yui290/build/utilities/utilities_compacto.js
100644 → 100755