Commit 4d9dab6075374b17ee947d14fcd0b4362c9cdab8
1 parent
95c5de02
Exists in
master
and in
7 other branches
Correções no leitor de camadas WMS
Showing
2 changed files
with
123 additions
and
16 deletions
Show diff stats
classesphp/classe_mapa.php
... | ... | @@ -939,7 +939,9 @@ Endereço do WMS |
939 | 939 | $this->mapa->setmetadata("wms_srs","EPSG:4291"); |
940 | 940 | foreach ($this->layers as $layer) |
941 | 941 | { |
942 | - $layer->setmetadata("wms_title",pegaNome($layer)); | |
942 | + $n = pegaNome($layer); | |
943 | + $layer->setmetadata("wms_title",$n); | |
944 | + $layer->setmetadata("wms_name",$n); | |
943 | 945 | $layer->setmetadata("wms_srs","EPSG:4291 EPSG:4326"); |
944 | 946 | $layer->setmetadata("WMS_INCLUDE_ITEMS","all"); |
945 | 947 | $layer->set("status","ON"); | ... | ... |
classesphp/wmswfs.php
... | ... | @@ -234,6 +234,7 @@ function temaswms() |
234 | 234 | # ------------------------------------------------------------- |
235 | 235 | # Test that the capabilites file has successfully downloaded. |
236 | 236 | # |
237 | + //$wms_service_request = "c://temp//teste.xml"; | |
237 | 238 | if( !($wms_capabilities = file($wms_service_request)) ) { |
238 | 239 | # Cannot download the capabilities file. |
239 | 240 | $cp->set_data("Erro de acesso"); |
... | ... | @@ -251,15 +252,121 @@ function temaswms() |
251 | 252 | {$n = $e->getAttribute("SupportSLD");} |
252 | 253 | $suporta = "nao"; |
253 | 254 | if ($n == 1){$suporta = "sim";} |
254 | - | |
255 | - $query = '//WMT_MS_Capabilities/Capability/Layer/Layer/Style'; | |
256 | - $entries = $xpath->query($query); | |
257 | - $nums = $entries->length; | |
258 | - if ($entries->length > 0) | |
255 | + $xpath = new DOMXPath($dom); | |
256 | + $q = '//WMT_MS_Capabilities/Capability'; | |
257 | + $query = $q.'/Layer'; | |
258 | + $layers = $xpath->query($query); | |
259 | + $retorna = array(); | |
260 | + foreach ($layers as $layer) | |
261 | + { | |
262 | + $r = pegaTag($layer); | |
263 | + $retorna = imprimeTag($r,$retorna); | |
264 | + $query = $q.'/Layer/Layer'; | |
265 | + $layers1 = $xpath->query($query); | |
266 | + foreach ($layers1 as $layer1) | |
267 | + { | |
268 | + $r1 = pegaTag($layer1); | |
269 | + $camada1 = $r1["nome"]; | |
270 | + $titulocamada1 = $r1["titulo"]; | |
271 | + $retorna = imprimeTag($r1,$retorna); | |
272 | + if($r1["estilos"]) | |
273 | + {$retorna = imprimeEstilos($r1["estilos"],$suporta,$retorna,$camada1,$titulocamada1);} | |
274 | + else | |
275 | + {$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>";} | |
276 | + | |
277 | + $query = $q.'/Layer/Layer/Layer'; | |
278 | + $layers2 = $xpath->query($query); | |
279 | + foreach ($layers2 as $layer2) | |
280 | + { | |
281 | + $r2 = pegaTag($layer2); | |
282 | + $camada2 = $r2["nome"]; | |
283 | + $titulocamada2 = $r2["titulo"]; | |
284 | + $retorna = imprimeTag($r2,$retorna); | |
285 | + if($r2["estilos"]) | |
286 | + {$retorna = imprimeEstilos($r2["estilos"],$suporta,$retorna,$camada2,$titulocamada2);} | |
287 | + else | |
288 | + {$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>";} | |
289 | + | |
290 | + } | |
291 | + } | |
292 | + | |
293 | + } | |
294 | + $retorna[] = "<br>Proj.:<input size=30 id=proj type=text class=digitar value='".implode(",",wms_srs($dom))."'/><br>"; | |
295 | + $retorna[] = "<br>Formatos imagem:<input size=30 id=formatos type=text class=digitar value='".implode(",",wms_formats($dom))."'/><br><br>"; | |
296 | + $retorna[] = "<br>Formatos info:<input size=30 id=formatosinfo type=text class=digitar value='".implode(",",wms_formatsinfo($dom))."'/><br><br>"; | |
297 | + $retorna[] = "<br>Versao:<input size=30 id=versao type=text class=digitar value='".(wms_version($dom))."'/><br><br>"; | |
298 | + $retorna[] = "<br>Suporta SLD:<input size=30 id=suportasld type=text class=digitar value='".$suporta."'/><br><br><br>"; | |
299 | + //echo "<pre>"; | |
300 | + //var_dump($retorna); | |
301 | + $cp->set_data(implode($retorna)); | |
302 | +} | |
303 | +function imprimeEstilos($es,$suporta,$retorna,$tval,$tituloalternativo) | |
304 | +{ | |
305 | + foreach($es as $e) | |
259 | 306 | { |
260 | - $query = '//WMT_MS_Capabilities/Capability/Layer'; | |
261 | - $entries = $xpath->query($query); | |
307 | + //$tval = $e["titulo"]; | |
308 | + $nomeestilo = $e["nome"]; | |
309 | + $nomecamada = $e["titulo"]; | |
310 | + //if($nomecamada == "default" || $nomecamada == "") | |
311 | + //{$nomecamada = $tituloalternativo;} | |
312 | + $tituloestilo = $e["titulo"]; | |
313 | + $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>"; | |
262 | 314 | } |
315 | + return $retorna; | |
316 | +} | |
317 | +function imprimeTag($r,$retorna) | |
318 | +{ | |
319 | + if(!$r["nome"]) | |
320 | + {$retorna[] = "<br><span style='color:brown;font-size:14pt' ><b>".$r["titulo"]."</b></span><br>";} | |
321 | + else | |
322 | + { | |
323 | + $retorna[] = "<hr>"; | |
324 | + $retorna[] = "<br><span style='color:brown;font-size:12pt' ><b>".$r["nome"]."</b></span><br>"; | |
325 | + $retorna[] = "<br><span style='color:black;font-size:12pt' ><b>".$r["titulo"]."</b></span><br>"; | |
326 | + $retorna[] = "<br><span style='color:gray;font-size:9pt' >".$r["resumo"]."</span><br>"; | |
327 | + } | |
328 | + return $retorna; | |
329 | +} | |
330 | +function pegaTag($layer) | |
331 | +{ | |
332 | + $noslayer = $layer->childNodes; | |
333 | + $resultado = array(); | |
334 | + for ($i = 0; $i < $noslayer->length; $i++) | |
335 | + { | |
336 | + $tnome = $noslayer->item($i)->tagName; | |
337 | + $tvalor = $noslayer->item($i)->nodeValue; | |
338 | + //$tvalor = mb_convert_encoding($tvalor,"AUTO","AUTO"); | |
339 | + if($tnome) | |
340 | + { | |
341 | + if ($tnome == "Title") | |
342 | + {$resultado["titulo"] = $tvalor;} | |
343 | + if ($tnome == "Name") | |
344 | + {$resultado["nome"] = $tvalor;} | |
345 | + if ($tnome == "Abstract") | |
346 | + {$resultado["resumo"] = $tvalor;} | |
347 | + if ($tnome == "Style") | |
348 | + { | |
349 | + $ss = $noslayer->item($i)->childNodes; | |
350 | + for ($s = 0; $s < $ss->length; $s++) | |
351 | + { | |
352 | + $snome = $ss->item($s)->tagName; | |
353 | + $svalor = $ss->item($s)->nodeValue; | |
354 | + if($snome) | |
355 | + { | |
356 | + if ($snome == "Title") | |
357 | + {$t=$svalor;} | |
358 | + if ($snome == "Name") | |
359 | + {$n=$svalor;} | |
360 | + } | |
361 | + } | |
362 | + $resultado["estilos"][] = array("nome"=>$n,"titulo"=>$t); | |
363 | + } | |
364 | + $resultado["tags"][] = $tnome; | |
365 | + } | |
366 | + } | |
367 | + return $resultado; | |
368 | + | |
369 | + /* | |
263 | 370 | $tval = ""; |
264 | 371 | foreach ($layers as $layer) |
265 | 372 | { |
... | ... | @@ -268,8 +375,8 @@ function temaswms() |
268 | 375 | { |
269 | 376 | $tnome = $noslayer->item($i)->tagName; |
270 | 377 | $tvalor = $noslayer->item($i)->nodeValue; |
271 | - if ($tnome == "Title") | |
272 | - {$retorna[] = "<b>Titulo da camada: ".$tvalor."</b><br><br>Sub-camadas:<br><br>";} | |
378 | + | |
379 | + | |
273 | 380 | if ($tnome == "Layer") |
274 | 381 | { |
275 | 382 | $retorna[] = "<hr>"; |
... | ... | @@ -278,6 +385,7 @@ function temaswms() |
278 | 385 | { |
279 | 386 | $tnome = $sublayers->item($j)->tagName; |
280 | 387 | $tvalor = $sublayers->item($j)->nodeValue; |
388 | + | |
281 | 389 | if ($tnome != "Style") |
282 | 390 | { |
283 | 391 | $ns = ""; |
... | ... | @@ -322,14 +430,11 @@ function temaswms() |
322 | 430 | } |
323 | 431 | } |
324 | 432 | } |
325 | - $retorna[] = "<br>Proj.:<input size=30 id=proj type=text class=digitar value='".implode(",",wms_srs($dom))."'/><br>"; | |
326 | - $retorna[] = "<br>Formatos imagem:<input size=30 id=formatos type=text class=digitar value='".implode(",",wms_formats($dom))."'/><br><br>"; | |
327 | - $retorna[] = "<br>Formatos info:<input size=30 id=formatosinfo type=text class=digitar value='".implode(",",wms_formatsinfo($dom))."'/><br><br>"; | |
328 | - $retorna[] = "<br>Versao:<input size=30 id=versao type=text class=digitar value='".(wms_version($dom))."'/><br><br>"; | |
329 | - $retorna[] = "<br>Suporta SLD:<input size=30 id=suportasld type=text class=digitar value='".$suporta."'/><br><br><br>"; | |
330 | - $cp->set_data(implode($retorna)); | |
433 | + */ | |
434 | + | |
331 | 435 | } |
332 | 436 | |
437 | + | |
333 | 438 | /* |
334 | 439 | function: temaswfs |
335 | 440 | ... | ... |