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 | ... | ... |