Commit ef39184d1376bdd5dc72e39ef9c8ca33061c17ad
1 parent
02c67b0c
Exists in
master
--no commit message
Showing
8 changed files
with
420 additions
and
330 deletions
Show diff stats
classesphp/classe_mapa.php
| ... | ... | @@ -270,7 +270,8 @@ class Mapa |
| 270 | 270 | "colunaidunico", |
| 271 | 271 | "cortepixels", |
| 272 | 272 | "plugini3geo", |
| 273 | - "link_tema" | |
| 273 | + "link_tema", | |
| 274 | + "ferramentas" | |
| 274 | 275 | ); |
| 275 | 276 | foreach ($this->layers as $oLayer){ |
| 276 | 277 | $sel = "nao"; |
| ... | ... | @@ -430,6 +431,19 @@ class Mapa |
| 430 | 431 | if($link_tema == "" && $oLayer->getmetadata("link_tema") != ""){ |
| 431 | 432 | $link_tema = $oLayer->getmetadata("link_tema"); |
| 432 | 433 | } |
| 434 | + //TODO colocar aqui os parametros da linha do tempo??? | |
| 435 | + // | |
| 436 | + //parametros para ferramentas especiaifcas | |
| 437 | + // | |
| 438 | + $ferramentas = array(); | |
| 439 | + //mapa 3d | |
| 440 | + if($oLayer->getmetadata("tme") != ""){ | |
| 441 | + $f = $oLayer->getmetadata("tme"); | |
| 442 | + if (!mb_detect_encoding($f,"UTF-8",true)){ | |
| 443 | + $f = mb_convert_encoding($f,"UTF-8","ISO-8859-1"); | |
| 444 | + } | |
| 445 | + $ferramentas["tme"] = json_decode($f); | |
| 446 | + } | |
| 433 | 447 | //formatacao antiga, antes da versao 6.0 |
| 434 | 448 | /* |
| 435 | 449 | $temas[] = array( |
| ... | ... | @@ -516,7 +530,8 @@ class Mapa |
| 516 | 530 | $oLayer->getmetadata("COLUNAIDUNICO"), |
| 517 | 531 | $cortepixels, |
| 518 | 532 | $plugini3geo, |
| 519 | - $link_tema | |
| 533 | + $link_tema, | |
| 534 | + $ferramentas | |
| 520 | 535 | ); |
| 521 | 536 | } |
| 522 | 537 | } |
| ... | ... | @@ -1091,7 +1106,7 @@ class Mapa |
| 1091 | 1106 | //tem erro na versão 6 do Mapserver. Já abri um ticket no trac da OSGEO |
| 1092 | 1107 | $nlayer = criaLayer($this->mapa,MS_LAYER_LINE,MS_DEFAULT,"Grade de coordenadas","SIM"); |
| 1093 | 1108 | ms_newgridobj($nlayer); |
| 1094 | - | |
| 1109 | + | |
| 1095 | 1110 | $nlayer->grid->set("labelformat", "DDMMSS"); |
| 1096 | 1111 | $nlayer->grid->set("maxinterval", $intervalo); |
| 1097 | 1112 | $classe = $nlayer->getclass(0); |
| ... | ... | @@ -1117,7 +1132,7 @@ class Mapa |
| 1117 | 1132 | else{ |
| 1118 | 1133 | $label = $classe->label; |
| 1119 | 1134 | } |
| 1120 | - | |
| 1135 | + | |
| 1121 | 1136 | $label->set("size",$tamanhotexto); |
| 1122 | 1137 | $label->set("type",MS_BITMAP); |
| 1123 | 1138 | if ($fonte != "bitmap") { |
| ... | ... | @@ -1305,7 +1320,7 @@ class Mapa |
| 1305 | 1320 | $nNome = str_replace(".map","",basename($nomemap)); |
| 1306 | 1321 | $nlayer->setmetadata("arquivotemaoriginal",$nNome); |
| 1307 | 1322 | $nlayer->setmetadata("nomeoriginal",$nlayer->name); |
| 1308 | - | |
| 1323 | + | |
| 1309 | 1324 | $nlayer->set("name",$nomeunico[$n]); |
| 1310 | 1325 | //altera o nome do grupo se existir |
| 1311 | 1326 | if ($nlayer->group != " " && $nlayer->group != "" ){ |
| ... | ... | @@ -1351,8 +1366,14 @@ class Mapa |
| 1351 | 1366 | for ($i = $numlayers-1;$i > 0;$i--){ |
| 1352 | 1367 | $layerAbaixo = $this->mapa->getlayer($i); |
| 1353 | 1368 | $tipo = $layerAbaixo->type; |
| 1354 | - if($tipo == 2 && ($layerAbaixo->getclass(0)->getstyle(0)->color->red == -1) && ($l->getclass(0)->getstyle(0)->color->red != -1)) { | |
| 1355 | - $tipo = 0;//vai subir | |
| 1369 | + if($layerAbaixo->numclasses > 0 && $l->numclasses > 0){ | |
| 1370 | + $c = $layerAbaixo->getclass(0); | |
| 1371 | + $c1 = $l->getclass(0); | |
| 1372 | + if($c->numstyles > 0 && $c1->numstyles > 0){ | |
| 1373 | + if($tipo == 2 && ($c->getstyle(0)->color->red == -1) && ($c1->getstyle(0)->color->red != -1)) { | |
| 1374 | + $tipo = 0;//vai subir | |
| 1375 | + } | |
| 1376 | + } | |
| 1356 | 1377 | } |
| 1357 | 1378 | if (($tipo != 2) && ($tipo != 3)){ |
| 1358 | 1379 | $nummove++; | ... | ... |
classesphp/funcoes_gerais.php
| ... | ... | @@ -443,7 +443,8 @@ Envia para o navegador uma imagem. Utilizado na tag IMG em arquivos HTML |
| 443 | 443 | function echoimg($arquivo,$tipo){ |
| 444 | 444 | echo header("Content-type: image/png \n\n"); |
| 445 | 445 | header('Content-Length: '.filesize($arquivo)); |
| 446 | - fpassthru(fopen($arquivo, 'rb')); | |
| 446 | + //fpassthru(fopen($arquivo, 'rb')); | |
| 447 | + readfile($arquivo); | |
| 447 | 448 | exit; |
| 448 | 449 | } |
| 449 | 450 | /* |
| ... | ... | @@ -2201,6 +2202,7 @@ function getRGBpallete($rule, $value){ |
| 2201 | 2202 | $b=$rule["b0"] + round(($rule["b1"]-$rule["b0"])*$escala, 0); |
| 2202 | 2203 | return array($r,$g,$b); |
| 2203 | 2204 | } |
| 2205 | +//TODO verificar ao fechar versao | |
| 2204 | 2206 | /* |
| 2205 | 2207 | Function: removeAcentos |
| 2206 | 2208 | |
| ... | ... | @@ -2216,7 +2218,7 @@ Retorno: |
| 2216 | 2218 | */ |
| 2217 | 2219 | function removeAcentos($var) |
| 2218 | 2220 | { |
| 2219 | - $a = array('�', 'Á', 'Â', 'Ã', '�', '�', '�', 'Ç', '�', 'É', 'Ê', '�', '�', 'Í', '�', '�', '�', '�', '�', '�', 'Ô', 'Õ', '�', '�', '�', 'Ú', '�', '�', '�', '�', '�', 'á', 'â', 'ã', '�', '�', '�', 'ç', '�', 'é', 'ê', '�', '�', 'í', '�', '�', '�', '�', '�', 'ô', 'õ', '�', '�', '�', 'ú', '�', '�', '�', '�', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', '�', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', '?', '?', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', '?', '?', 'L', 'l', 'N', 'n', 'N', 'n', 'N', 'n', '?', 'O', 'o', 'O', 'o', 'O', 'o', '�', '�', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', '�', '�', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', '�', 'Z', 'z', 'Z', 'z', '�', '�', '?', '�', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', '?', '?', '?', '?', '?', '?'); | |
| 2221 | + $a = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'Ð', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', '?', '?', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', '?', '?', 'L', 'l', 'N', 'n', 'N', 'n', 'N', 'n', '?', 'O', 'o', 'O', 'o', 'O', 'o', 'Œ', 'œ', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'Š', 'š', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Ÿ', 'Z', 'z', 'Z', 'z', 'Ž', 'ž', '?', 'ƒ', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', '?', '?', '?', '?', '?', '?'); | |
| 2220 | 2222 | $b = array('A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o'); |
| 2221 | 2223 | return str_replace($a, $b, $var); |
| 2222 | 2224 | } | ... | ... |
classesphp/mapa_googlemaps.php
| ... | ... | @@ -511,7 +511,8 @@ function carregaCacheImagem(){ |
| 511 | 511 | header('Content-Type: image/png'); |
| 512 | 512 | header('Cache-Control: public, max-age=22222222'); |
| 513 | 513 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); |
| 514 | - fpassthru(fopen($nome, 'rb')); | |
| 514 | + //fpassthru(fopen($nome, 'rb')); | |
| 515 | + readfile($nome); | |
| 515 | 516 | } |
| 516 | 517 | else{ |
| 517 | 518 | header('Cache-Control: public, max-age=22222222'); | ... | ... |
classesphp/mapa_openlayers.php
| ... | ... | @@ -92,7 +92,7 @@ if(isset($_GET["X"])){ |
| 92 | 92 | $z = intval((0.703125 / $res) / 4) + 1; |
| 93 | 93 | $x = floor((($box[0] + 180) / 360) * pow(2, $z)); |
| 94 | 94 | $y = floor((1 - log(tan(deg2rad($box[3])) + 1 / cos(deg2rad($box[3]))) / pi()) /2 * pow(2, $z)); |
| 95 | - | |
| 95 | + | |
| 96 | 96 | $_GET["WIDTH"] = 256; |
| 97 | 97 | $_GET["HEIGHT"] = 256; |
| 98 | 98 | $_GET["tms"] = "/".$_GET["layer"]."/".$z."/".$x."/".$y.".png"; |
| ... | ... | @@ -413,7 +413,8 @@ else{ |
| 413 | 413 | //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
| 414 | 414 | header('Cache-Control: public, max-age=22222222'); |
| 415 | 415 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); |
| 416 | - fpassthru(fopen($nomer, 'rb')); | |
| 416 | + //fpassthru(fopen($nomer, 'rb')); | |
| 417 | + readfile($nomer); | |
| 417 | 418 | } |
| 418 | 419 | } |
| 419 | 420 | else{ |
| ... | ... | @@ -501,7 +502,8 @@ function carregaCacheImagem($cachedir,$map,$tms,$i3georendermode=0){ |
| 501 | 502 | header('Cache-Control: public, max-age=22222222'); |
| 502 | 503 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); |
| 503 | 504 | //header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); |
| 504 | - fpassthru(fopen($nome, 'rb')); | |
| 505 | + //fpassthru(fopen($nome, 'rb')); | |
| 506 | + readfile($nome); | |
| 505 | 507 | } |
| 506 | 508 | else{ |
| 507 | 509 | header('Cache-Control: public, max-age=22222222'); | ... | ... |
ferramentas/parametrossql/ogc.php
| ... | ... | @@ -459,7 +459,8 @@ function renderNocacheTms(){ |
| 459 | 459 | header('Cache-Control: max-age=3600, must-revalidate'); |
| 460 | 460 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
| 461 | 461 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200); |
| 462 | - fpassthru(fopen($nomer, 'rb')); | |
| 462 | + //fpassthru(fopen($nomer, 'rb')); | |
| 463 | + readfile($nomer); | |
| 463 | 464 | } |
| 464 | 465 | if($i3georendermode == 2){ |
| 465 | 466 | ob_clean(); |
| ... | ... | @@ -488,7 +489,8 @@ function carregaCacheImagem($cachedir,$map,$tms, $plugin, $tema){ |
| 488 | 489 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); |
| 489 | 490 | $etag = md5_file($nome); |
| 490 | 491 | header('Etag: '.$etag); |
| 491 | - fpassthru(fopen($nome, 'rb')); | |
| 492 | + //fpassthru(fopen($nome, 'rb')); | |
| 493 | + readfile($nome); | |
| 492 | 494 | exit; |
| 493 | 495 | } |
| 494 | 496 | } |
| ... | ... | @@ -527,7 +529,8 @@ function salvaCacheImagem($cachedir,$map,$tms, $plugin, $tema){ |
| 527 | 529 | header('Cache-Control: max-age=3600, must-revalidate'); |
| 528 | 530 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
| 529 | 531 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); |
| 530 | - fpassthru(fopen($nome, 'rb')); | |
| 532 | + //fpassthru(fopen($nome, 'rb')); | |
| 533 | + readfile($nome); | |
| 531 | 534 | exit; |
| 532 | 535 | } |
| 533 | 536 | ... | ... |
ferramentas/salvamapa/geraminiatura.php
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | /* |
| 3 | 3 | * Gera uma miniatura de um mapfile salvo no banco de dados |
| 4 | 4 | * Verifica se a imagem existe, caso contrario cria uma no diretorio temporario |
| 5 | - * | |
| 5 | + * | |
| 6 | 6 | * @param restauramapa - id do mapa a ser restaurado |
| 7 | 7 | * @param w |
| 8 | 8 | * @param h |
| ... | ... | @@ -47,5 +47,6 @@ header('Content-Length: '.filesize($nomeImagem)); |
| 47 | 47 | header('Content-Type: image/png'); |
| 48 | 48 | header('Cache-Control: public, max-age=22222222'); |
| 49 | 49 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); |
| 50 | -fpassthru(fopen($nomeImagem, 'rb')); | |
| 50 | +//fpassthru(fopen($nomeImagem, 'rb')); | |
| 51 | +readfile($nomeImagem); | |
| 51 | 52 | ?> |
| 52 | 53 | \ No newline at end of file | ... | ... |
mashups/openlayers.php
| ... | ... | @@ -277,7 +277,7 @@ if($temas != ""){ |
| 277 | 277 | if(in_array($tema,$visiveis)){ |
| 278 | 278 | $visivel = "true"; |
| 279 | 279 | } |
| 280 | - if($nlayers == 1 && strtoupper($layern->getmetadata("cache")) == "SIM" && $layern->getmetadata("PLUGINI3GEO") == ""){ | |
| 280 | + if(strtolower($DESLIGACACHE) != "sim" && $nlayers == 1 && strtoupper($layern->getmetadata("cache")) == "SIM" && $layern->getmetadata("PLUGINI3GEO") == ""){ | |
| 281 | 281 | if($layern->type != 2 && $layern->type != 3){ |
| 282 | 282 | $opacidade = 1; |
| 283 | 283 | } |
| ... | ... | @@ -646,7 +646,7 @@ if(!i3GEO.configura){ |
| 646 | 646 | } |
| 647 | 647 | ?> |
| 648 | 648 | i3GEO.editorOL.inicia(); |
| 649 | - | |
| 649 | + | |
| 650 | 650 | function adicionaPluginI3geo(camada,visivel){ |
| 651 | 651 | if(!camada.cache){ |
| 652 | 652 | camada["cache"] = "NAO"; | ... | ... |
ogc.php
| ... | ... | @@ -77,9 +77,16 @@ ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo |
| 77 | 77 | |
| 78 | 78 | ogc.php?intervalo=0,50 |
| 79 | 79 | */ |
| 80 | +$_GET = array_merge($_GET,$_POST); | |
| 80 | 81 | // |
| 81 | -//validações e includes | |
| 82 | -// | |
| 82 | +//caso nenhum parametros tenha sido enviado | |
| 83 | +// | |
| 84 | +if(count($_GET) == 0){ | |
| 85 | + $tipo="metadados"; | |
| 86 | + $_GET["REQUEST"] = "getCapabilities"; | |
| 87 | + $_GET["request"] = "getCapabilities"; | |
| 88 | + $_GET["SERVICE"] = "WMS"; | |
| 89 | +} | |
| 83 | 90 | // |
| 84 | 91 | //compatibiliza chamadas fora do padrao |
| 85 | 92 | // |
| ... | ... | @@ -89,175 +96,158 @@ if(isset($_GET["outputFormat"]) && $_GET["outputFormat"] != ""){ |
| 89 | 96 | if(isset($_GET["outputformat"]) && $_GET["outputformat"] != ""){ |
| 90 | 97 | $_GET["OUTPUTFORMAT"] = $_GET["outputformat"]; |
| 91 | 98 | } |
| 92 | -if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
| 93 | - $OUTPUTFORMAT = "json"; | |
| 94 | -} | |
| 95 | 99 | $cache = true; |
| 96 | -require_once(dirname(__FILE__)."/classesphp/carrega_ext.php"); | |
| 100 | +//require_once(dirname(__FILE__)."/classesphp/carrega_ext.php"); | |
| 97 | 101 | include(dirname(__FILE__)."/ms_configura.php"); |
| 98 | 102 | include(dirname(__FILE__)."/classesphp/pega_variaveis.php"); |
| 99 | 103 | include(dirname(__FILE__)."/classesphp/funcoes_gerais.php"); |
| 100 | -//para o caso da requisicao kml | |
| 101 | -if(strtolower($OUTPUTFORMAT) == "kml" || strtolower($OUTPUTFORMAT) == "kmz"){ | |
| 102 | - //http://localhost/i3geo/pacotes/kmlmapserver/kmlservice.php?request=kmz&map=_lbiomashp&typename=_lbiomashp | |
| 103 | - if(!isset($tema) && isset($layers)){ | |
| 104 | - $tema = $layers; | |
| 104 | +// | |
| 105 | +//imprime na tela a ajuda | |
| 106 | +// | |
| 107 | +if(isset($ajuda)){ | |
| 108 | + ogc_imprimeAjuda(); | |
| 109 | + exit; | |
| 110 | +} | |
| 111 | +// | |
| 112 | +//pega os enderecos para compor a url de chamada do gerador de web services | |
| 113 | +// | |
| 114 | +$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); | |
| 115 | +$protocolo = $protocolo[0]; | |
| 116 | +$protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; | |
| 117 | +$protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; | |
| 118 | +$urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); | |
| 119 | +// | |
| 120 | +//imprime na tela a lista de temas disponiveis | |
| 121 | +// | |
| 122 | +if(isset($lista) && $lista != ""){ | |
| 123 | + include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php"); | |
| 124 | + if($lista == "temas"){ | |
| 125 | + ogc_imprimeListaDeTemas(); | |
| 105 | 126 | } |
| 106 | - $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; | |
| 107 | - header("Location:".$urln); | |
| 127 | + if($lista == "temaswfs"){ | |
| 128 | + ogc_imprimeListaDeTemasWfs(); | |
| 129 | + } | |
| 108 | 130 | exit; |
| 109 | 131 | } |
| 110 | - | |
| 132 | +// | |
| 111 | 133 | //define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos |
| 112 | -if(isset($id_medida_variavel)){ | |
| 113 | - $tema = "ogcmetaestat".$id_medida_variavel; | |
| 114 | - $_GET["layers"] = $tema; | |
| 115 | - $_GET["LAYERS"] = $tema; | |
| 116 | -} | |
| 117 | -if(!isset($temas) && isset($tema)){ | |
| 118 | - $temas = $tema; | |
| 134 | +// | |
| 135 | +if(isset($id_medida_variavel) && $id_medida_variavel != ""){ | |
| 136 | + $tema = "ogcmetaestat".$id_medida_variavel; | |
| 119 | 137 | } |
| 120 | -if(isset($typeName)){ | |
| 121 | - $typename = $typeName; | |
| 138 | +// | |
| 139 | +//compatibiliza variaveis | |
| 140 | +// | |
| 141 | +if(!isset($tema) && isset($layers)){ | |
| 142 | + $tema = $layers; | |
| 122 | 143 | } |
| 123 | -if(!isset($temas) && isset($typename)){ | |
| 124 | - $temas = $typename; | |
| 144 | +if(!isset($tema) && isset($LAYERS)){ | |
| 145 | + $tema = $LAYERS; | |
| 146 | +} | |
| 147 | +if(!isset($tema) && isset($temas)){ | |
| 148 | + $tema = $temas; | |
| 149 | +} | |
| 150 | +if(isset($typeName)){ | |
| 151 | + $typename = $typeName; | |
| 152 | +} | |
| 153 | +if(!isset($tema) && isset($typename)){ | |
| 125 | 154 | $tema = $typename; |
| 126 | 155 | } |
| 156 | +// | |
| 157 | +//garante que layers possam ser especificados de diferentes maneiras | |
| 158 | +// | |
| 159 | +$_GET["layers"] = $tema; | |
| 160 | +$_GET["LAYERS"] = $tema; | |
| 161 | +$layers = $tema; | |
| 162 | +// | |
| 163 | +//verifica o OUTPUTFORMAT e o cache de arquivo | |
| 164 | +// | |
| 165 | +if(!empty($OUTPUTFORMAT)){ | |
| 166 | + carregaCacheArquivo(); | |
| 167 | +} | |
| 168 | +// | |
| 169 | +//para o caso da requisicao kml | |
| 170 | +// | |
| 171 | +if(strtolower($OUTPUTFORMAT) == "kml" || strtolower($OUTPUTFORMAT) == "kmz"){ | |
| 172 | + $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; | |
| 173 | + header("Location:".$urln); | |
| 174 | + exit; | |
| 175 | +} | |
| 176 | +// | |
| 177 | +//usa o epsg correto ao inves do apelido inventado pelo Google | |
| 178 | +// | |
| 179 | +if($_GET["SRS"] == "EPSG:900913" || $_GET["srs"] == "EPSG:900913"){ | |
| 180 | + $_GET["SRS"] = "EPSG:3857"; | |
| 181 | + $_GET["srs"] = "EPSG:3857"; | |
| 182 | +} | |
| 183 | +if(!isset($_GET["srs"]) && !isset($_GET["SRS"])){ | |
| 184 | + $_GET["srs"] = "EPSG:4326"; | |
| 185 | + $_GET["SRS"] = "EPSG:4326"; | |
| 186 | +} | |
| 187 | +// | |
| 188 | +//trata geojson da mesma forma que json | |
| 189 | +// | |
| 190 | +if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
| 191 | + $OUTPUTFORMAT = "json"; | |
| 192 | +} | |
| 127 | 193 | // |
| 128 | 194 | //recupera um mapa salvo no banco de administracao |
| 129 | 195 | // |
| 130 | 196 | if(!empty($restauramapa)){ |
| 131 | - $xbase = restauraMapaAdmin($restauramapa,$dir_tmp); | |
| 132 | - $m = ms_newMapObj($xbase); | |
| 133 | - $w = $m->web; | |
| 134 | - $w->set("imagepath",dirname($w->imagepath)."/"); | |
| 135 | - $w->set("imageurl",dirname($w->imageurl)."/"); | |
| 136 | - //apaga algumas camadas | |
| 137 | - $l = $m->getlayerbyname("rosadosventos"); | |
| 138 | - if($l != ""){ | |
| 139 | - $l->set("status",MS_DELETE); | |
| 140 | - } | |
| 141 | - $l = $m->getlayerbyname("copyright"); | |
| 142 | - if($l != ""){ | |
| 143 | - $l->set("status",MS_DELETE); | |
| 144 | - } | |
| 145 | - $m->save($xbase); | |
| 146 | - //$fundo = $xbase; | |
| 147 | - $temas = $xbase; | |
| 148 | - $_GET["tema"] = $temas; | |
| 149 | - $_GET["layers"] = ""; | |
| 150 | - $l = $m->getlayer(0); | |
| 151 | - $_GET["LAYERS"] = $l->name; | |
| 197 | + restauraMapaSalvo(); | |
| 152 | 198 | } |
| 153 | 199 | // |
| 154 | -//para operar como o Geoserver | |
| 200 | +//para operar como o Geoserver, abre o openlayers | |
| 155 | 201 | // |
| 156 | 202 | if(isset($format) && strtolower($format) == "application/openlayers"){ |
| 157 | - //var_dump($_SERVER);exit; | |
| 158 | - if(!isset($layers)){ | |
| 159 | - $layers = $temas; | |
| 160 | - } | |
| 161 | - $urln = dirname($_SERVER["PHP_SELF"])."/mashups/openlayers.php?temas=".$layers."&layers=".$layers."&mapext=".$bbox."&botoes=pan,zoombox,zoomtot,identifica"; | |
| 203 | + $urln = dirname($_SERVER["PHP_SELF"])."/mashups/openlayers.php?layers=".$layers."&mapext=".$bbox."&botoes=pan,zoombox,zoomtot,identifica"; | |
| 162 | 204 | //echo $urln;exit; |
| 163 | 205 | if(!headers_sent()){ |
| 164 | 206 | header("Location:".$urln); |
| 165 | 207 | } |
| 166 | 208 | else{ |
| 167 | 209 | echo "<meta http-equiv='refresh' content='0;url=$urln'>"; |
| 168 | - } | |
| 169 | -} | |
| 170 | -// | |
| 171 | -//pega os endereços para compor a url de chamada do gerador de web services | |
| 172 | -//ogc.php | |
| 173 | -// | |
| 174 | -$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); | |
| 175 | -$protocolo = $protocolo[0]; | |
| 176 | -$protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; | |
| 177 | -$protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; | |
| 178 | -$urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); | |
| 179 | -// | |
| 180 | -//imprime na tela a ajuda | |
| 181 | -// | |
| 182 | -if(isset($ajuda)){ | |
| 183 | - ogc_imprimeAjuda(); | |
| 184 | - exit; | |
| 185 | -} | |
| 186 | -// | |
| 187 | -//imprime na tela a lista de temas disponíveis | |
| 188 | -// | |
| 189 | -if(isset($lista) && $lista == "temas"){ | |
| 190 | - include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php"); | |
| 191 | - ogc_imprimeListaDeTemas(); | |
| 192 | - exit; | |
| 193 | -} | |
| 194 | -if(isset($lista) && $lista == "temaswfs"){ | |
| 195 | - include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php"); | |
| 196 | - ogc_imprimeListaDeTemasWfs(); | |
| 197 | - exit; | |
| 210 | + } | |
| 211 | + //exit.... | |
| 198 | 212 | } |
| 199 | 213 | // |
| 200 | -//cria o web service | |
| 214 | +//pega a versao do Mapserver | |
| 201 | 215 | // |
| 202 | 216 | error_reporting(0); |
| 203 | 217 | $versao = versao(); |
| 204 | 218 | $versao = $versao["principal"]; |
| 205 | -if($_GET["SRS"] == "EPSG:900913"){ | |
| 206 | - $_GET["SRS"] = "EPSG:3857"; | |
| 207 | -} | |
| 219 | + | |
| 208 | 220 | $req = ms_newowsrequestobj(); |
| 209 | 221 | $tipo = ""; |
| 210 | -$_GET = array_merge($_GET,$_POST); | |
| 222 | + | |
| 211 | 223 | if(isset($_GET["sld"]) || isset($_GET["filter"])){ |
| 212 | 224 | $cache = false; |
| 213 | 225 | } |
| 214 | -if(!isset($_GET["srs"]) && !isset($_GET["SRS"])){ | |
| 215 | - $_GET["srs"] = "EPSG:4326"; | |
| 216 | -} | |
| 226 | +// | |
| 227 | +//inclui todos os parametros na requisicao e aproveita para verificar getcapabilities | |
| 228 | +// | |
| 217 | 229 | foreach ($_GET as $k=>$v){ |
| 218 | 230 | $req->setParameter(strtoupper($k), $v); |
| 219 | 231 | if(strtolower($v) == "getcapabilities"){ |
| 220 | 232 | $tipo = "metadados"; |
| 221 | 233 | $cache = false; |
| 222 | 234 | } |
| 223 | - if(strtolower($k) == "layers" && empty($_GET["tema"])){ | |
| 224 | - $tema = $v; | |
| 225 | - } | |
| 226 | - if(strtolower($k) == "layer" && empty($_GET["tema"])){ | |
| 227 | - $tema = $v; | |
| 228 | - } | |
| 229 | 235 | } |
| 236 | +// | |
| 237 | +//cria uma lista de epsgs para o getcapabilities | |
| 238 | +// | |
| 230 | 239 | $req->setParameter("srsName",$req->getValueByName("SRS")); |
| 231 | 240 | $listaepsg = $req->getValueByName("SRS")." EPSG:4618 EPSG:4291 EPSG:4326 EPSG:22521 EPSG:22522 EPSG:22523 EPSG:22524 EPSG:22525 EPSG:29101 EPSG:29119 EPSG:29120 EPSG:29121 EPSG:29122 EPSG:29177 EPSG:29178 EPSG:29179 EPSG:29180 EPSG:29181 EPSG:29182 EPSG:29183 EPSG:29184 EPSG:29185"; |
| 232 | -//echo $listaepsg;exit; | |
| 233 | -if(count($_GET) == 0){ | |
| 234 | - $tipo="intervalo"; | |
| 235 | - $req->setParameter("REQUEST", "getCapabilities"); | |
| 236 | - $req->setParameter("SERVICE", "WMS"); | |
| 237 | - $cache = false; | |
| 238 | -} | |
| 239 | -if(isset($tema) && $tipo != "metadados"){ | |
| 240 | - $tipo = ""; | |
| 241 | -} | |
| 241 | + | |
| 242 | 242 | if(isset($version) && !isset($VERSION)){ |
| 243 | 243 | $VERSION = $version; |
| 244 | 244 | } |
| 245 | 245 | if(!isset($VERSION)){ |
| 246 | 246 | $req->setParameter("VeRsIoN","1.1.1"); |
| 247 | 247 | } |
| 248 | -if (!isset($intervalo)){ | |
| 249 | - $intervalo = "0,5000"; | |
| 250 | -} | |
| 251 | -else{ | |
| 252 | - $tipo = "intervalo"; | |
| 253 | -} | |
| 254 | -if(!isset($tema)){ | |
| 255 | - if(!isset($intervalo)){ | |
| 256 | - $intervalo = "0,5000"; | |
| 257 | - } | |
| 258 | - $tipo = "intervalo"; | |
| 259 | -} | |
| 248 | +// | |
| 260 | 249 | //nome do mapfile que ficara em cache |
| 250 | +// | |
| 261 | 251 | $agora = intval(time() / 1000); |
| 262 | 252 | //acrescenta ao nome a indicacao do tipo de TMS |
| 263 | 253 | if(isset($_GET["tms"])){ |
| ... | ... | @@ -266,7 +256,6 @@ if(isset($_GET["tms"])){ |
| 266 | 256 | if(isset($_GET["Z"]) && isset($_GET["X"])){ |
| 267 | 257 | $agora .= "google"; |
| 268 | 258 | } |
| 269 | - | |
| 270 | 259 | // |
| 271 | 260 | //se o outputformat for definido, evita o cahce de arquivo |
| 272 | 261 | //o mesmo se existir filtro para o layer |
| ... | ... | @@ -278,9 +267,7 @@ if(isset($_GET["DESLIGACACHE"]) && $_GET["DESLIGACACHE"] == "sim"){ |
| 278 | 267 | $agora = time(); |
| 279 | 268 | $cache = false; |
| 280 | 269 | } |
| 281 | -$nomeMapfileTmp = $dir_tmp."/ogc_".md5($tema.($req->getValueByName("SRS")))."_".$agora.".map"; | |
| 282 | -$nomeMapfileTmp = str_replace(",","",$nomeMapfileTmp); | |
| 283 | -$nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); | |
| 270 | +$nomeMapfileTmp = $dir_tmp."/ogc_".md5(implode("",$_GET))."_".$agora.".map"; | |
| 284 | 271 | //essa variavel e usada para definir se a imagem final gerada devera ser cortada ou nao |
| 285 | 272 | $cortePixels = 0; |
| 286 | 273 | if(file_exists($nomeMapfileTmp) && $tipo == ""){ |
| ... | ... | @@ -295,7 +282,7 @@ else{ |
| 295 | 282 | } |
| 296 | 283 | $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; |
| 297 | 284 | $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; |
| 298 | - $or = $proto.$server.$_SERVER['PHP_SELF']; | |
| 285 | + $or = $urli3geo."/ogc.php"; | |
| 299 | 286 | if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){ |
| 300 | 287 | $or = $or."?tema=".$tema."&"; |
| 301 | 288 | } |
| ... | ... | @@ -309,8 +296,8 @@ else{ |
| 309 | 296 | $oMap->setmetadata("wms_attribution_logourl_format","image/png"); |
| 310 | 297 | $oMap->setmetadata("wms_attribution_logourl_height","56"); |
| 311 | 298 | $oMap->setmetadata("wms_attribution_logourl_width","85"); |
| 312 | - $oMap->setmetadata("wms_attribution_logourl_href",$proto.$server.dirname($_SERVER['PHP_SELF'])."/imagens/i3geo.png"); | |
| 313 | - $oMap->setmetadata("wms_attribution_onlineresource",$proto.$server.dirname($_SERVER['PHP_SELF'])); | |
| 299 | + $oMap->setmetadata("wms_attribution_logourl_href",$urli3geo."/imagens/i3geo.png"); | |
| 300 | + $oMap->setmetadata("wms_attribution_onlineresource",$urli3geo); | |
| 314 | 301 | $oMap->setmetadata("wms_attribution_title",$tituloInstituicao); |
| 315 | 302 | $oMap->setmetadata("ows_enable_request","*"); |
| 316 | 303 | //parametro mandatario |
| ... | ... | @@ -320,8 +307,8 @@ else{ |
| 320 | 307 | $e = $oMap->extent; |
| 321 | 308 | $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); |
| 322 | 309 | //gera o mapa |
| 323 | - if ($tipo == "" || $tipo == "metadados"){ | |
| 324 | - $tema = explode(" ",$tema); | |
| 310 | + if ($tema != ""){ | |
| 311 | + $listatema = explode(" ",$tema); | |
| 325 | 312 | //para o caso do tema ser um arquivo mapfile existente em uma pasta qualquer |
| 326 | 313 | //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas |
| 327 | 314 | $temai3geo = true; |
| ... | ... | @@ -331,7 +318,7 @@ else{ |
| 331 | 318 | $temai3geo = false; |
| 332 | 319 | $nmap->setmetadata("ows_enable_request","*"); |
| 333 | 320 | } |
| 334 | - foreach ($tema as $tx){ | |
| 321 | + foreach ($listatema as $tx){ | |
| 335 | 322 | $extensao = ".map"; |
| 336 | 323 | if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ |
| 337 | 324 | $extensao = ".php"; |
| ... | ... | @@ -364,8 +351,7 @@ else{ |
| 364 | 351 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); |
| 365 | 352 | $nmap->setmetadata("ows_enable_request","*"); |
| 366 | 353 | } |
| 367 | - if($temai3geo == false || empty($layers)) | |
| 368 | - { | |
| 354 | + if($temai3geo == false || empty($layers)){ | |
| 369 | 355 | $ts = $nmap->getalllayernames(); |
| 370 | 356 | $nmap->setmetadata("ows_enable_request","*"); |
| 371 | 357 | } |
| ... | ... | @@ -473,7 +459,7 @@ else{ |
| 473 | 459 | $oMap = $gm->addLayers($oMap,$gv,$dataView["layerNames"]); |
| 474 | 460 | } |
| 475 | 461 | $numlayers = $oMap->numlayers; |
| 476 | - $layers = array(); | |
| 462 | + $lys = array(); | |
| 477 | 463 | //$layers[] = "default"; |
| 478 | 464 | for ($i=0;$i < $numlayers;$i++){ |
| 479 | 465 | $l = $oMap->getlayer($i); |
| ... | ... | @@ -484,7 +470,7 @@ else{ |
| 484 | 470 | $l->setmetadata("ows_srs",$listaepsg); |
| 485 | 471 | $l->setmetadata("ows_title",$l->getmetadata("TEMA")); |
| 486 | 472 | $l->set("status",MS_OFF); |
| 487 | - $layers[] = $l->name; | |
| 473 | + $lys[] = $l->name; | |
| 488 | 474 | if(file_exists($locaplic."/temas/miniaturas/".$tx.".map.mini.png")){ |
| 489 | 475 | $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$tx.".map.mini.png"; |
| 490 | 476 | $l->setmetadata("wms_attribution_logourl_format","image/png"); |
| ... | ... | @@ -511,13 +497,13 @@ else{ |
| 511 | 497 | $cortePixels = $l->getmetadata("cortepixels"); |
| 512 | 498 | } |
| 513 | 499 | } |
| 514 | - $req->setParameter("LAYERS", implode(",",$layers)); | |
| 500 | + $req->setParameter("LAYERS", implode(",",$lys)); | |
| 515 | 501 | $req->setParameter("STYLES", ""); |
| 516 | - //r_dump($req);exit; | |
| 517 | 502 | } |
| 518 | 503 | } |
| 519 | 504 | } |
| 520 | - else{ | |
| 505 | + else{ | |
| 506 | + $intervalo = "0,5000"; | |
| 521 | 507 | $conta = 0; |
| 522 | 508 | $int = explode(",",$intervalo); |
| 523 | 509 | $codigosTema = array(); |
| ... | ... | @@ -533,10 +519,10 @@ else{ |
| 533 | 519 | if(strtolower($grupo["ogc"]) == "sim"){ |
| 534 | 520 | foreach($grupo["subgrupos"] as $sgrupo){ |
| 535 | 521 | if(strtolower($sgrupo["ogc"]) == "sim"){ |
| 536 | - $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
| 537 | - foreach($temas as $tema){ | |
| 538 | - if(strtolower($tema["ogc"]) == "sim"){ | |
| 539 | - $codigosTema[] = array("tema"=>$tema["tid"],"fonte"=>$tema["link"]); | |
| 522 | + $lts = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
| 523 | + foreach($lts as $t){ | |
| 524 | + if(strtolower($t["ogc"]) == "sim"){ | |
| 525 | + $codigosTema[] = array("tema"=>$t["tid"],"fonte"=>$t["link"]); | |
| 540 | 526 | } |
| 541 | 527 | } |
| 542 | 528 | } |
| ... | ... | @@ -544,10 +530,6 @@ else{ |
| 544 | 530 | } |
| 545 | 531 | } |
| 546 | 532 | } |
| 547 | - //echo "<pre>"; | |
| 548 | - //var_dump($codigosTema); | |
| 549 | - //exit; | |
| 550 | - | |
| 551 | 533 | foreach($codigosTema as $c){ |
| 552 | 534 | $codigoTema = $c["tema"]; |
| 553 | 535 | if(file_exists($locaplic."/temas/".$codigoTema.".map")){ |
| ... | ... | @@ -555,48 +537,41 @@ else{ |
| 555 | 537 | $nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map"); |
| 556 | 538 | $nmap->setmetadata("ows_enable_request","*"); |
| 557 | 539 | $ts = $nmap->getalllayernames(); |
| 558 | - if (count($ts) == 1){ | |
| 559 | - foreach ($ts as $t){ | |
| 560 | - if ($oMap->getlayerbyname($t) == ""){ | |
| 561 | - $conta++; | |
| 562 | - if (($conta >= $int[0]) && ($conta <= $int[1])){ | |
| 563 | - $l = $nmap->getlayerbyname($t); | |
| 564 | - $extensao = $l->getmetadata("EXTENSAO"); | |
| 565 | - if($extensao == ""){ | |
| 566 | - $extensao = $extensaoMap; | |
| 567 | - } | |
| 568 | - $l->setmetadata("wms_extent",$extensao); | |
| 569 | - | |
| 570 | - $l->setmetadata("ows_title",pegaNome($l)); | |
| 571 | - $l->setmetadata("ows_srs",$listaepsg); | |
| 572 | - $l->set("status",MS_OFF); | |
| 573 | - $l->setmetadata("gml_include_items","all"); | |
| 574 | - $l->set("dump",MS_TRUE); | |
| 575 | - $l->setmetadata("WMS_INCLUDE_ITEMS","all"); | |
| 576 | - $l->setmetadata("WFS_INCLUDE_ITEMS","all"); | |
| 577 | - if($l->getmetadata("ows_metadataurl_href") == ""){ | |
| 578 | - $l->setmetadata("ows_metadataurl_href",$c["fonte"]); | |
| 579 | - $l->setmetadata("ows_metadataurl_type","TC211"); | |
| 580 | - $l->setmetadata("ows_metadataurl_format","text/html"); | |
| 581 | - } | |
| 582 | - if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ | |
| 583 | - $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; | |
| 584 | - $l->setmetadata("wms_attribution_logourl_format","image/png"); | |
| 585 | - $l->setmetadata("wms_attribution_logourl_height","50"); | |
| 586 | - $l->setmetadata("wms_attribution_logourl_width","50"); | |
| 587 | - $l->setmetadata("wms_attribution_logourl_href",$mini); | |
| 588 | - } | |
| 589 | - // | |
| 590 | - //numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos | |
| 591 | - // | |
| 592 | - if ($l->getmetadata("cortepixels") != ""){ | |
| 593 | - $cortePixels = $l->getmetadata("cortepixels"); | |
| 594 | - } | |
| 595 | - cloneInlineSymbol($l,$nmap,$oMap); | |
| 596 | - ms_newLayerObj($oMap, $l); | |
| 597 | - | |
| 598 | - } | |
| 540 | + foreach ($ts as $t){ | |
| 541 | + if ($oMap->getlayerbyname($t) == ""){ | |
| 542 | + $l = $nmap->getlayerbyname($t); | |
| 543 | + $extensao = $l->getmetadata("EXTENSAO"); | |
| 544 | + if($extensao == ""){ | |
| 545 | + $extensao = $extensaoMap; | |
| 599 | 546 | } |
| 547 | + $l->setmetadata("wms_extent",$extensao); | |
| 548 | + $l->setmetadata("ows_title",pegaNome($l)); | |
| 549 | + $l->setmetadata("ows_srs",$listaepsg); | |
| 550 | + $l->set("status",MS_OFF); | |
| 551 | + $l->setmetadata("gml_include_items","all"); | |
| 552 | + $l->set("dump",MS_TRUE); | |
| 553 | + $l->setmetadata("WMS_INCLUDE_ITEMS","all"); | |
| 554 | + $l->setmetadata("WFS_INCLUDE_ITEMS","all"); | |
| 555 | + if($l->getmetadata("ows_metadataurl_href") == ""){ | |
| 556 | + $l->setmetadata("ows_metadataurl_href",$c["fonte"]); | |
| 557 | + $l->setmetadata("ows_metadataurl_type","TC211"); | |
| 558 | + $l->setmetadata("ows_metadataurl_format","text/html"); | |
| 559 | + } | |
| 560 | + if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ | |
| 561 | + $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; | |
| 562 | + $l->setmetadata("wms_attribution_logourl_format","image/png"); | |
| 563 | + $l->setmetadata("wms_attribution_logourl_height","50"); | |
| 564 | + $l->setmetadata("wms_attribution_logourl_width","50"); | |
| 565 | + $l->setmetadata("wms_attribution_logourl_href",$mini); | |
| 566 | + } | |
| 567 | + // | |
| 568 | + //numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos | |
| 569 | + // | |
| 570 | + if ($l->getmetadata("cortepixels") != ""){ | |
| 571 | + $cortePixels = $l->getmetadata("cortepixels"); | |
| 572 | + } | |
| 573 | + cloneInlineSymbol($l,$nmap,$oMap); | |
| 574 | + ms_newLayerObj($oMap, $l); | |
| 600 | 575 | } |
| 601 | 576 | } |
| 602 | 577 | } |
| ... | ... | @@ -611,8 +586,20 @@ else{ |
| 611 | 586 | } |
| 612 | 587 | } |
| 613 | 588 | } |
| 589 | + // | |
| 590 | + //a imagem do mapa recebera a legenda | |
| 591 | + // | |
| 592 | + if((isset($legenda)) && (strtolower($legenda) == "sim")){ | |
| 593 | + $leg = $oMap->legend; | |
| 594 | + $leg->set("status",MS_EMBED); | |
| 595 | + } | |
| 614 | 596 | $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); |
| 615 | 597 | $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); |
| 598 | + // | |
| 599 | + //caso seja download ou json ou csv | |
| 600 | + // | |
| 601 | + processaOutputformatMapfile(); | |
| 602 | + | |
| 616 | 603 | $oMap->save($nomeMapfileTmp); |
| 617 | 604 | $oMap = ms_newMapobj($nomeMapfileTmp); |
| 618 | 605 | } |
| ... | ... | @@ -788,10 +775,10 @@ if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ |
| 788 | 775 | if (function_exists("mb_convert_encoding")){ |
| 789 | 776 | $leg = mb_convert_encoding($leg,"UTF-8","ISO-8859-1"); |
| 790 | 777 | } |
| 791 | - echo $leg;exit; | |
| 778 | + echo $leg; | |
| 779 | + exit; | |
| 792 | 780 | } |
| 793 | - } | |
| 794 | - | |
| 781 | + } | |
| 795 | 782 | } |
| 796 | 783 | if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ |
| 797 | 784 | $l = $oMap->getlayer(0); |
| ... | ... | @@ -814,54 +801,11 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ |
| 814 | 801 | $_GET["SRS"] = "EPSG:3857"; |
| 815 | 802 | } |
| 816 | 803 | } |
| 817 | -// | |
| 818 | -//altera os caminhos das imagens | |
| 819 | -// | |
| 820 | -if((isset($legenda)) && (strtolower($legenda) == "sim")){ | |
| 821 | - $leg = $oMap->legend; | |
| 822 | - $leg->set("status",MS_EMBED); | |
| 823 | -} | |
| 804 | + | |
| 805 | +ms_ioinstallstdouttobuffer(); | |
| 824 | 806 | // |
| 825 | -//altera o outputformat | |
| 807 | +//verifica parametro outputformat e ajusta a requisicao | |
| 826 | 808 | // |
| 827 | -if(isset($OUTPUTFORMAT)){ | |
| 828 | - if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
| 829 | - $l = $oMap->getlayer(0); | |
| 830 | - $n = $l->name; | |
| 831 | - $oMap->selectOutputFormat("shape-zip"); | |
| 832 | - $oMap->outputformat->setOption("STORAGE", "memory"); | |
| 833 | - $oMap->outputformat->setOption("FORM", "zip"); | |
| 834 | - $oMap->outputformat->setOption("FILENAME", $n.".zip"); | |
| 835 | - $l->setmetadata("wfs_getfeature_formatlist","shape-zip"); | |
| 836 | - $oMap->save($nomeMapfileTmp); | |
| 837 | - if(strtolower($request) != "getcapabilities"){ | |
| 838 | - header('Content-Disposition: attachment; filename='.$n.'.zip'); | |
| 839 | - } | |
| 840 | - } | |
| 841 | - if(strtolower($OUTPUTFORMAT) == "csv"){ | |
| 842 | - $l = $oMap->getlayer(0); | |
| 843 | - $n = $l->name."-csv"; | |
| 844 | - $oMap->selectOutputFormat("csv"); | |
| 845 | - $oMap->outputformat->setOption("STORAGE", "memory"); | |
| 846 | - $oMap->outputformat->setOption("FILENAME", $n.".zip"); | |
| 847 | - $oMap->outputformat->setOption("FORM", "zip"); | |
| 848 | - $l->setmetadata("wfs_getfeature_formatlist","csv"); | |
| 849 | - $oMap->save($nomeMapfileTmp); | |
| 850 | - if(strtolower($request) != "getcapabilities"){ | |
| 851 | - header('Content-Disposition: attachment; filename='.$n.'.zip'); | |
| 852 | - } | |
| 853 | - } | |
| 854 | - if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
| 855 | - $l = $oMap->getlayer(0); | |
| 856 | - $oMap->selectOutputFormat("geojson"); | |
| 857 | - $l->setmetadata("wfs_getfeature_formatlist","geojson"); | |
| 858 | - $oMap->save($nomeMapfileTmp); | |
| 859 | - header("Content-type: application/json; subtype=geojson"); | |
| 860 | - } | |
| 861 | -} | |
| 862 | -ms_ioinstallstdouttobuffer(); | |
| 863 | - | |
| 864 | -//verifica parametro outputformat | |
| 865 | 809 | if(strtolower($req->getValueByName("REQUEST")) == "getmap" && $req->getValueByName("format") == ""){ |
| 866 | 810 | $req->setParameter("format","image/png"); |
| 867 | 811 | } |
| ... | ... | @@ -870,54 +814,13 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["inf |
| 870 | 814 | } |
| 871 | 815 | //json conforme cesium |
| 872 | 816 | if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["info_format"] == "application/json"){ |
| 873 | - $req->setParameter("info_format","application/vnd.ogc.gml"); | |
| 874 | - $oMap->owsdispatch($req); | |
| 875 | - ms_iostripstdoutbuffercontentheaders(); | |
| 876 | - ob_clean(); | |
| 877 | - $r = ms_iogetstdoutbufferstring(); | |
| 878 | - //$r = converteenc($r); | |
| 879 | - $nome = $oMap->getlayer(0)->name; | |
| 880 | - $xml = simplexml_load_string($r); | |
| 881 | - | |
| 882 | - $json = json_encode($xml); | |
| 883 | - $r = json_decode($json,TRUE); | |
| 884 | - $propriedades = $r[$nome."_layer"]; | |
| 885 | - $propriedades = $propriedades[$nome."_feature"]; | |
| 886 | - $propriedades = converteenc(json_encode($propriedades)); | |
| 887 | - $propriedades = json_decode($propriedades); | |
| 888 | - $n = array(); | |
| 889 | - $n[] = array ( | |
| 890 | - "type" => "FeatureCollection", | |
| 891 | - "features" => array( | |
| 892 | - array( | |
| 893 | - "type"=>"Feature", | |
| 894 | - "id" => "", | |
| 895 | - "geometry" => array(), | |
| 896 | - "properties" => array( | |
| 897 | - $propriedades | |
| 898 | - ), | |
| 899 | - "geometry_name" => "" | |
| 900 | - ) | |
| 901 | - ) | |
| 902 | - ); | |
| 903 | - header("Content-type: application/json"); | |
| 904 | - $json = json_encode($n[0]); | |
| 905 | - //verifica a substituicao de alias | |
| 906 | - $itens = $oMap->getlayer(0)->getmetadata("ITENS"); // itens | |
| 907 | - $itensdesc = $oMap->getlayer(0)->getmetadata("ITENSDESC"); // descrição dos itens | |
| 908 | - $itens = explode(",",$itens); | |
| 909 | - $itensdesc = explode(",",converteenc($itensdesc)); | |
| 910 | - $n = count($itens); | |
| 911 | - for($i = 0; $i < $n; $i++){ | |
| 912 | - $json = str_ireplace($itens[$i],$itensdesc[$i],$json); | |
| 913 | - } | |
| 914 | - echo $json; | |
| 817 | + getfeatureinfoJson(); | |
| 915 | 818 | exit; |
| 916 | 819 | } |
| 917 | - | |
| 918 | 820 | $oMap->owsdispatch($req); |
| 919 | 821 | |
| 920 | -$contenttype = ms_iostripstdoutbuffercontenttype(); | |
| 822 | +$contenttype = ms_iostripstdoutbuffercontenttype(); | |
| 823 | + | |
| 921 | 824 | if(strtolower($request) == "getcapabilities"){ |
| 922 | 825 | header('Content-Disposition: attachment; filename=getcapabilities.xml'); |
| 923 | 826 | } |
| ... | ... | @@ -925,12 +828,45 @@ if(strtolower($request) == "getcapabilities"){ |
| 925 | 828 | if(!isset($OUTPUTFORMAT)){ |
| 926 | 829 | header("Content-type: $contenttype"); |
| 927 | 830 | } |
| 928 | -if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
| 929 | - ms_iostripstdoutbuffercontentheaders(); | |
| 930 | - header("Content-type: application/json; subtype=geojson"); | |
| 831 | + | |
| 832 | +//precisa limpar o cabecalho | |
| 833 | +if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ | |
| 834 | + ms_iostripstdoutbuffercontentheaders(); | |
| 835 | + //grava em disco | |
| 836 | + $arq = $dir_tmp."/".$tema.".json"; | |
| 837 | + $contents = ms_iogetstdoutbufferstring(); | |
| 838 | + file_put_contents($arq,$contents); | |
| 839 | + //envia para download | |
| 840 | + header("Content-type: application/json; subtype=geojson"); | |
| 841 | + ms_iogetStdoutBufferBytes(); | |
| 842 | + ms_ioresethandlers(); | |
| 843 | + exit; | |
| 931 | 844 | } |
| 845 | +if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
| 846 | + //grava em disco | |
| 847 | + $arq = $dir_tmp."/".$tema."_shapefile.zip"; | |
| 848 | + $contents = ms_iogetstdoutbufferstring(); | |
| 849 | + file_put_contents($arq,$contents); | |
| 850 | + //envia para download | |
| 851 | + header('Content-Disposition: attachment; filename='.$tema.'_shapefile.zip'); | |
| 852 | + ms_iogetStdoutBufferBytes(); | |
| 853 | + ms_ioresethandlers(); | |
| 854 | + exit; | |
| 855 | +} | |
| 856 | +if(strtolower($OUTPUTFORMAT) == "csv"){ | |
| 857 | + //grava em disco | |
| 858 | + $arq = $dir_tmp."/".$tema.".csv"; | |
| 859 | + $contents = ms_iogetstdoutbufferstring(); | |
| 860 | + file_put_contents($arq,$contents); | |
| 861 | + //envia para download | |
| 862 | + header('Content-Disposition: attachment; filename='.$tema.'.csv'); | |
| 863 | + header("Content-type: text/csv"); | |
| 864 | + ms_iogetStdoutBufferBytes(); | |
| 865 | + ms_ioresethandlers(); | |
| 866 | + exit; | |
| 867 | +} | |
| 868 | +$buffer = ms_iogetStdoutBufferBytes(); | |
| 932 | 869 | |
| 933 | -$buffer = ms_iogetStdoutBufferBytes(); | |
| 934 | 870 | ms_ioresethandlers(); |
| 935 | 871 | // |
| 936 | 872 | //funções |
| ... | ... | @@ -949,16 +885,17 @@ function ogc_pegaListaDeMenus(){ |
| 949 | 885 | } |
| 950 | 886 | function ogc_imprimeAjuda(){ |
| 951 | 887 | echo "<pre><b>Construtor de web services do I3Geo.</b><br><br>"; |
| 952 | - echo "Esse utilitário usa os arquivos mapfiles existentes em <br>"; | |
| 953 | - echo "i3geo/temas para gerar web services no padrão OGC.<br>"; | |
| 888 | + echo "Esse programa usa os arquivos mapfiles existentes em <br>"; | |
| 889 | + echo "i3geo/temas para gerar web services OGC.<br>"; | |
| 954 | 890 | echo "Para escolher um tema, utilize:<br>"; |
| 955 | 891 | echo "ogc.php?lista=temas - para listar os temas disponíveis<br>"; |
| 956 | - echo "Para usar esse web service, além dos parâmetros normais, vc deverá incluir o parâmetro &tema=,<br>"; | |
| 957 | - echo "ou seja,http://[host]/i3geo/ogc.php?tema=[código do tema]<br>"; | |
| 958 | - echo "no lugar do c&ocaute;digo pode ser especificado também um arquivo mapfile qualquer. Nesse caso, deve ser digitado o caminho completo no servidor<br><br>"; | |
| 959 | - echo "Utilize o sistema de administração do i3Geo para configurar quais os temas da pasta i3geo/temas podem ser utilizados."; | |
| 960 | - echo "Utilize o parametro &intervalo=0,20 para definir o número de temas desejado na função getcapabilities."; | |
| 961 | - echo "Utilize o parametro restauramapa para indicar o ID de um mapa salvo no banco de dados de administração para utilizá-lo como um WMS"; | |
| 892 | + echo "Para usar esse web service voce pode usar o parametro &tema=,<br>"; | |
| 893 | + echo "ou seja,http://[host]/i3geo/ogc.php?tema=[codigo do tema]<br>"; | |
| 894 | + echo "no lugar do codigo pode ser especificado um arquivo mapfile qualquer. "; | |
| 895 | + echo "Nesse caso, deve ser digitado o caminho completo no servidor<br><br>"; | |
| 896 | + echo "Utilize o sistema de administracao do i3Geo para configurar quais os temas da pasta i3geo/temas podem ser utilizados.<br><br>"; | |
| 897 | + echo "Utilize o parametro restauramapa para indicar o ID de um mapa salvo no banco <br>"; | |
| 898 | + echo "de dados de administracao para utiliza-lo como um WMS"; | |
| 962 | 899 | } |
| 963 | 900 | function ogc_imprimeListaDeTemas(){ |
| 964 | 901 | global $urli3geo,$perfil,$locaplic; |
| ... | ... | @@ -975,17 +912,17 @@ function ogc_imprimeListaDeTemas(){ |
| 975 | 912 | foreach($grupo["subgrupos"] as $sgrupo){ |
| 976 | 913 | if(strtolower($sgrupo["ogc"]) == "sim"){ |
| 977 | 914 | $imprimesubgrupo = $sgrupo["nome"]; |
| 978 | - $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
| 979 | - foreach($temas as $tema){ | |
| 980 | - if(strtolower($tema["ogc"]) == "sim"){ | |
| 915 | + $lts = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
| 916 | + foreach($lts as $t){ | |
| 917 | + if(strtolower($t["ogc"]) == "sim"){ | |
| 981 | 918 | $imprimir .= texto2iso($imprimegrupo)."->".texto2iso($imprimesubgrupo)."<br>"; |
| 982 | 919 | $imprimir .= " "; |
| 983 | - $imprimir .= "<span style=color:red >".$tema["tid"]."</span>"; | |
| 984 | - $imprimir .= " - ".texto2iso($tema["nome"])." "; | |
| 985 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&service=wms&request=getcapabilities' >Getcapabilities</a>"; | |
| 986 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&SRS=EPSG:4618&WIDTH=500&HEIGHT=500&BBOX=-76.5125927,-39.3925675209,-29.5851853,9.49014852081&FORMAT=image/png&service=wms&version=1.1.0&request=getmap&layers=".$tema["tid"]."' >GetMap </a>"; | |
| 987 | - if($tema["link"] != " ") | |
| 988 | - $imprimir .= " <a href='".$tema["link"]."' >fonte</a>"; | |
| 920 | + $imprimir .= "<span style=color:red >".$t["tid"]."</span>"; | |
| 921 | + $imprimir .= " - ".texto2iso($t["nome"])." "; | |
| 922 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$t["tid"]."&service=wms&request=getcapabilities' >Getcapabilities</a>"; | |
| 923 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$t["tid"]."&SRS=EPSG:4618&WIDTH=500&HEIGHT=500&BBOX=-76.5125927,-39.3925675209,-29.5851853,9.49014852081&FORMAT=image/png&service=wms&version=1.1.0&request=getmap&layers=".$t["tid"]."' >GetMap </a>"; | |
| 924 | + if($t["link"] != " ") | |
| 925 | + $imprimir .= " <a href='".$t["link"]."' >fonte</a>"; | |
| 989 | 926 | $imprimir .= "<br>"; |
| 990 | 927 | } |
| 991 | 928 | } |
| ... | ... | @@ -1011,17 +948,17 @@ function ogc_imprimeListaDeTemasWfs(){ |
| 1011 | 948 | foreach($grupo["subgrupos"] as $sgrupo){ |
| 1012 | 949 | if(strtolower($sgrupo["ogc"]) == "sim"){ |
| 1013 | 950 | $imprimesubgrupo = $sgrupo["nome"]; |
| 1014 | - $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
| 1015 | - foreach($temas as $tema){ | |
| 1016 | - if(strtolower($tema["ogc"]) == "sim" && strtolower($tema["down"]) !== "nao"){ | |
| 951 | + $lts = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
| 952 | + foreach($lts as $t){ | |
| 953 | + if(strtolower($t["ogc"]) == "sim" && strtolower($t["down"]) !== "nao"){ | |
| 1017 | 954 | $imprimir .= $imprimegrupo."->".$imprimesubgrupo."<br>"; |
| 1018 | 955 | $imprimir .= " "; |
| 1019 | - $imprimir .= "<span style=color:red >".$tema["tid"]."</span>"; | |
| 1020 | - $imprimir .= " - ".$tema["nome"]." "; | |
| 1021 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&service=wfs&request=getcapabilities' >Getcapabilities</a>"; | |
| 1022 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&SRS=EPSG:4618&service=wfs&version=1.1.0&request=getfeature&typename=".$tema["tid"]."' >Getfeature </a>"; | |
| 1023 | - if($tema["link"] != " ") | |
| 1024 | - $imprimir .= " <a href='".$tema["link"]."' >fonte</a>"; | |
| 956 | + $imprimir .= "<span style=color:red >".$t["tid"]."</span>"; | |
| 957 | + $imprimir .= " - ".$t["nome"]." "; | |
| 958 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$t["tid"]."&service=wfs&request=getcapabilities' >Getcapabilities</a>"; | |
| 959 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$t["tid"]."&SRS=EPSG:4618&service=wfs&version=1.1.0&request=getfeature&typename=".$t["tid"]."' >Getfeature </a>"; | |
| 960 | + if($t["link"] != " ") | |
| 961 | + $imprimir .= " <a href='".$t["link"]."' >fonte</a>"; | |
| 1025 | 962 | $imprimir .= "<br>"; |
| 1026 | 963 | } |
| 1027 | 964 | } |
| ... | ... | @@ -1048,7 +985,7 @@ function carregaCacheImagem($cachedir,$map,$tms){ |
| 1048 | 985 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); |
| 1049 | 986 | $etag = md5_file($nome); |
| 1050 | 987 | header('Etag: '.$etag); |
| 1051 | - fpassthru(fopen($nome, 'rb')); | |
| 988 | + readfile($nome); | |
| 1052 | 989 | exit; |
| 1053 | 990 | } |
| 1054 | 991 | } |
| ... | ... | @@ -1084,7 +1021,7 @@ function salvaCacheImagem($cachedir,$map,$tms){ |
| 1084 | 1021 | header('Cache-Control: max-age=3600, must-revalidate'); |
| 1085 | 1022 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
| 1086 | 1023 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); |
| 1087 | - fpassthru(fopen($nome, 'rb')); | |
| 1024 | + readfile($nome); | |
| 1088 | 1025 | exit; |
| 1089 | 1026 | } |
| 1090 | 1027 | function texto2iso($texto){ |
| ... | ... | @@ -1135,7 +1072,7 @@ function renderNocacheTms(){ |
| 1135 | 1072 | header('Cache-Control: max-age=3600, must-revalidate'); |
| 1136 | 1073 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
| 1137 | 1074 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200); |
| 1138 | - fpassthru(fopen($nomer, 'rb')); | |
| 1075 | + readfile($nomer); | |
| 1139 | 1076 | } |
| 1140 | 1077 | if($i3georendermode == 2){ |
| 1141 | 1078 | ob_clean(); |
| ... | ... | @@ -1145,6 +1082,129 @@ function renderNocacheTms(){ |
| 1145 | 1082 | header("Content-type: image/png"); |
| 1146 | 1083 | } |
| 1147 | 1084 | } |
| 1085 | +function getfeatureinfoJson(){ | |
| 1086 | + global $req, $oMap; | |
| 1087 | + $req->setParameter("info_format","application/vnd.ogc.gml"); | |
| 1088 | + $oMap->owsdispatch($req); | |
| 1089 | + ms_iostripstdoutbuffercontentheaders(); | |
| 1090 | + ob_clean(); | |
| 1091 | + $r = ms_iogetstdoutbufferstring(); | |
| 1092 | + //$r = converteenc($r); | |
| 1093 | + $nome = $oMap->getlayer(0)->name; | |
| 1094 | + $xml = simplexml_load_string($r); | |
| 1095 | + | |
| 1096 | + $json = json_encode($xml); | |
| 1097 | + $r = json_decode($json,TRUE); | |
| 1098 | + $propriedades = $r[$nome."_layer"]; | |
| 1099 | + $propriedades = $propriedades[$nome."_feature"]; | |
| 1100 | + $propriedades = converteenc(json_encode($propriedades)); | |
| 1101 | + $propriedades = json_decode($propriedades); | |
| 1102 | + $n = array(); | |
| 1103 | + $n[] = array ( | |
| 1104 | + "type" => "FeatureCollection", | |
| 1105 | + "features" => array( | |
| 1106 | + array( | |
| 1107 | + "type"=>"Feature", | |
| 1108 | + "id" => "", | |
| 1109 | + "geometry" => array(), | |
| 1110 | + "properties" => array( | |
| 1111 | + $propriedades | |
| 1112 | + ), | |
| 1113 | + "geometry_name" => "" | |
| 1114 | + ) | |
| 1115 | + ) | |
| 1116 | + ); | |
| 1117 | + header("Content-type: application/json"); | |
| 1118 | + $json = json_encode($n[0]); | |
| 1119 | + //verifica a substituicao de alias | |
| 1120 | + $itens = $oMap->getlayer(0)->getmetadata("ITENS"); // itens | |
| 1121 | + $itensdesc = $oMap->getlayer(0)->getmetadata("ITENSDESC"); // descrição dos itens | |
| 1122 | + $itens = explode(",",$itens); | |
| 1123 | + $itensdesc = explode(",",converteenc($itensdesc)); | |
| 1124 | + $n = count($itens); | |
| 1125 | + for($i = 0; $i < $n; $i++){ | |
| 1126 | + $json = str_ireplace($itens[$i],$itensdesc[$i],$json); | |
| 1127 | + } | |
| 1128 | + echo $json; | |
| 1129 | +} | |
| 1130 | +function processaOutputformatMapfile(){ | |
| 1131 | + global $OUTPUTFORMAT, $oMap, $tema; | |
| 1132 | + if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
| 1133 | + $l = $oMap->getlayer(0); | |
| 1134 | + $n = $l->name; | |
| 1135 | + $oMap->selectOutputFormat("shape-zip"); | |
| 1136 | + $oMap->outputformat->setOption("STORAGE", "filesystem"); | |
| 1137 | + $oMap->outputformat->setOption("FORM", "zip"); | |
| 1138 | + $oMap->outputformat->setOption("FILENAME", $tema."_shapefile.zip"); | |
| 1139 | + $l->setmetadata("wfs_getfeature_formatlist","shape-zip"); | |
| 1140 | + } | |
| 1141 | + if(strtolower($OUTPUTFORMAT) == "csv"){ | |
| 1142 | + $l = $oMap->getlayer(0); | |
| 1143 | + $n = $l->name."-csv"; | |
| 1144 | + $oMap->selectOutputFormat("csv"); | |
| 1145 | + $oMap->outputformat->setOption("STORAGE", "filesystem"); | |
| 1146 | + $oMap->outputformat->setOption("FILENAME", $tema.".csv"); | |
| 1147 | + $oMap->outputformat->setOption("FORM", "simple"); | |
| 1148 | + $l->setmetadata("wfs_getfeature_formatlist","csv"); | |
| 1149 | + } | |
| 1150 | + if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ | |
| 1151 | + $l = $oMap->getlayer(0); | |
| 1152 | + $oMap->selectOutputFormat("geojson"); | |
| 1153 | + $l->setmetadata("wfs_getfeature_formatlist","geojson"); | |
| 1154 | + } | |
| 1155 | +} | |
| 1156 | +function carregaCacheArquivo(){ | |
| 1157 | + global $dir_tmp, $tema, $OUTPUTFORMAT; | |
| 1158 | + if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
| 1159 | + $arq = $dir_tmp."/".$tema."_shapefile.zip"; | |
| 1160 | + if(file_exists($arq)){ | |
| 1161 | + header('Content-Disposition: attachment; filename='.$tema.'_shapefile.zip'); | |
| 1162 | + readfile($arq); | |
| 1163 | + exit; | |
| 1164 | + } | |
| 1165 | + } | |
| 1166 | + if(strtolower($OUTPUTFORMAT) == "csv"){ | |
| 1167 | + $arq = $dir_tmp."/".$tema.".csv"; | |
| 1168 | + if(file_exists($arq)){ | |
| 1169 | + header('Content-Disposition: attachment; filename='.$tema.'.csv'); | |
| 1170 | + header("Content-type: text/csv"); | |
| 1171 | + readfile($arq); | |
| 1172 | + exit; | |
| 1173 | + } | |
| 1174 | + } | |
| 1175 | + if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ | |
| 1176 | + $arq = $dir_tmp."/".$tema.".json"; | |
| 1177 | + if(file_exists($arq)){ | |
| 1178 | + header("Content-type: application/json; subtype=geojson"); | |
| 1179 | + readfile($arq); | |
| 1180 | + exit; | |
| 1181 | + } | |
| 1182 | + } | |
| 1183 | +} | |
| 1184 | +function restauraMapaSalvo(){ | |
| 1185 | + global $restauramapa, $dir_tmp, $tema; | |
| 1186 | + $xbase = restauraMapaAdmin($restauramapa,$dir_tmp); | |
| 1187 | + $m = ms_newMapObj($xbase); | |
| 1188 | + $w = $m->web; | |
| 1189 | + $w->set("imagepath",dirname($w->imagepath)."/"); | |
| 1190 | + $w->set("imageurl",dirname($w->imageurl)."/"); | |
| 1191 | + //apaga algumas camadas | |
| 1192 | + $l = $m->getlayerbyname("rosadosventos"); | |
| 1193 | + if($l != ""){ | |
| 1194 | + $l->set("status",MS_DELETE); | |
| 1195 | + } | |
| 1196 | + $l = $m->getlayerbyname("copyright"); | |
| 1197 | + if($l != ""){ | |
| 1198 | + $l->set("status",MS_DELETE); | |
| 1199 | + } | |
| 1200 | + $m->save($xbase); | |
| 1201 | + //$fundo = $xbase; | |
| 1202 | + $tema = $xbase; | |
| 1203 | + $_GET["tema"] = $xbase; | |
| 1204 | + $_GET["layers"] = ""; | |
| 1205 | + $l = $m->getlayer(0); | |
| 1206 | + $_GET["LAYERS"] = $l->name; | |
| 1207 | +} | |
| 1148 | 1208 | function converteenc($texto){ |
| 1149 | 1209 | if (!mb_detect_encoding($texto,"UTF-8",true)){ |
| 1150 | 1210 | $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); | ... | ... |