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,7 +270,8 @@ class Mapa | ||
270 | "colunaidunico", | 270 | "colunaidunico", |
271 | "cortepixels", | 271 | "cortepixels", |
272 | "plugini3geo", | 272 | "plugini3geo", |
273 | - "link_tema" | 273 | + "link_tema", |
274 | + "ferramentas" | ||
274 | ); | 275 | ); |
275 | foreach ($this->layers as $oLayer){ | 276 | foreach ($this->layers as $oLayer){ |
276 | $sel = "nao"; | 277 | $sel = "nao"; |
@@ -430,6 +431,19 @@ class Mapa | @@ -430,6 +431,19 @@ class Mapa | ||
430 | if($link_tema == "" && $oLayer->getmetadata("link_tema") != ""){ | 431 | if($link_tema == "" && $oLayer->getmetadata("link_tema") != ""){ |
431 | $link_tema = $oLayer->getmetadata("link_tema"); | 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 | //formatacao antiga, antes da versao 6.0 | 447 | //formatacao antiga, antes da versao 6.0 |
434 | /* | 448 | /* |
435 | $temas[] = array( | 449 | $temas[] = array( |
@@ -516,7 +530,8 @@ class Mapa | @@ -516,7 +530,8 @@ class Mapa | ||
516 | $oLayer->getmetadata("COLUNAIDUNICO"), | 530 | $oLayer->getmetadata("COLUNAIDUNICO"), |
517 | $cortepixels, | 531 | $cortepixels, |
518 | $plugini3geo, | 532 | $plugini3geo, |
519 | - $link_tema | 533 | + $link_tema, |
534 | + $ferramentas | ||
520 | ); | 535 | ); |
521 | } | 536 | } |
522 | } | 537 | } |
@@ -1091,7 +1106,7 @@ class Mapa | @@ -1091,7 +1106,7 @@ class Mapa | ||
1091 | //tem erro na versão 6 do Mapserver. Já abri um ticket no trac da OSGEO | 1106 | //tem erro na versão 6 do Mapserver. Já abri um ticket no trac da OSGEO |
1092 | $nlayer = criaLayer($this->mapa,MS_LAYER_LINE,MS_DEFAULT,"Grade de coordenadas","SIM"); | 1107 | $nlayer = criaLayer($this->mapa,MS_LAYER_LINE,MS_DEFAULT,"Grade de coordenadas","SIM"); |
1093 | ms_newgridobj($nlayer); | 1108 | ms_newgridobj($nlayer); |
1094 | - | 1109 | + |
1095 | $nlayer->grid->set("labelformat", "DDMMSS"); | 1110 | $nlayer->grid->set("labelformat", "DDMMSS"); |
1096 | $nlayer->grid->set("maxinterval", $intervalo); | 1111 | $nlayer->grid->set("maxinterval", $intervalo); |
1097 | $classe = $nlayer->getclass(0); | 1112 | $classe = $nlayer->getclass(0); |
@@ -1117,7 +1132,7 @@ class Mapa | @@ -1117,7 +1132,7 @@ class Mapa | ||
1117 | else{ | 1132 | else{ |
1118 | $label = $classe->label; | 1133 | $label = $classe->label; |
1119 | } | 1134 | } |
1120 | - | 1135 | + |
1121 | $label->set("size",$tamanhotexto); | 1136 | $label->set("size",$tamanhotexto); |
1122 | $label->set("type",MS_BITMAP); | 1137 | $label->set("type",MS_BITMAP); |
1123 | if ($fonte != "bitmap") { | 1138 | if ($fonte != "bitmap") { |
@@ -1305,7 +1320,7 @@ class Mapa | @@ -1305,7 +1320,7 @@ class Mapa | ||
1305 | $nNome = str_replace(".map","",basename($nomemap)); | 1320 | $nNome = str_replace(".map","",basename($nomemap)); |
1306 | $nlayer->setmetadata("arquivotemaoriginal",$nNome); | 1321 | $nlayer->setmetadata("arquivotemaoriginal",$nNome); |
1307 | $nlayer->setmetadata("nomeoriginal",$nlayer->name); | 1322 | $nlayer->setmetadata("nomeoriginal",$nlayer->name); |
1308 | - | 1323 | + |
1309 | $nlayer->set("name",$nomeunico[$n]); | 1324 | $nlayer->set("name",$nomeunico[$n]); |
1310 | //altera o nome do grupo se existir | 1325 | //altera o nome do grupo se existir |
1311 | if ($nlayer->group != " " && $nlayer->group != "" ){ | 1326 | if ($nlayer->group != " " && $nlayer->group != "" ){ |
@@ -1351,8 +1366,14 @@ class Mapa | @@ -1351,8 +1366,14 @@ class Mapa | ||
1351 | for ($i = $numlayers-1;$i > 0;$i--){ | 1366 | for ($i = $numlayers-1;$i > 0;$i--){ |
1352 | $layerAbaixo = $this->mapa->getlayer($i); | 1367 | $layerAbaixo = $this->mapa->getlayer($i); |
1353 | $tipo = $layerAbaixo->type; | 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 | if (($tipo != 2) && ($tipo != 3)){ | 1378 | if (($tipo != 2) && ($tipo != 3)){ |
1358 | $nummove++; | 1379 | $nummove++; |
classesphp/funcoes_gerais.php
@@ -443,7 +443,8 @@ Envia para o navegador uma imagem. Utilizado na tag IMG em arquivos HTML | @@ -443,7 +443,8 @@ Envia para o navegador uma imagem. Utilizado na tag IMG em arquivos HTML | ||
443 | function echoimg($arquivo,$tipo){ | 443 | function echoimg($arquivo,$tipo){ |
444 | echo header("Content-type: image/png \n\n"); | 444 | echo header("Content-type: image/png \n\n"); |
445 | header('Content-Length: '.filesize($arquivo)); | 445 | header('Content-Length: '.filesize($arquivo)); |
446 | - fpassthru(fopen($arquivo, 'rb')); | 446 | + //fpassthru(fopen($arquivo, 'rb')); |
447 | + readfile($arquivo); | ||
447 | exit; | 448 | exit; |
448 | } | 449 | } |
449 | /* | 450 | /* |
@@ -2201,6 +2202,7 @@ function getRGBpallete($rule, $value){ | @@ -2201,6 +2202,7 @@ function getRGBpallete($rule, $value){ | ||
2201 | $b=$rule["b0"] + round(($rule["b1"]-$rule["b0"])*$escala, 0); | 2202 | $b=$rule["b0"] + round(($rule["b1"]-$rule["b0"])*$escala, 0); |
2202 | return array($r,$g,$b); | 2203 | return array($r,$g,$b); |
2203 | } | 2204 | } |
2205 | +//TODO verificar ao fechar versao | ||
2204 | /* | 2206 | /* |
2205 | Function: removeAcentos | 2207 | Function: removeAcentos |
2206 | 2208 | ||
@@ -2216,7 +2218,7 @@ Retorno: | @@ -2216,7 +2218,7 @@ Retorno: | ||
2216 | */ | 2218 | */ |
2217 | function removeAcentos($var) | 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 | $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'); | 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 | return str_replace($a, $b, $var); | 2223 | return str_replace($a, $b, $var); |
2222 | } | 2224 | } |
classesphp/mapa_googlemaps.php
@@ -511,7 +511,8 @@ function carregaCacheImagem(){ | @@ -511,7 +511,8 @@ function carregaCacheImagem(){ | ||
511 | header('Content-Type: image/png'); | 511 | header('Content-Type: image/png'); |
512 | header('Cache-Control: public, max-age=22222222'); | 512 | header('Cache-Control: public, max-age=22222222'); |
513 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); | 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 | else{ | 517 | else{ |
517 | header('Cache-Control: public, max-age=22222222'); | 518 | header('Cache-Control: public, max-age=22222222'); |
classesphp/mapa_openlayers.php
@@ -92,7 +92,7 @@ if(isset($_GET["X"])){ | @@ -92,7 +92,7 @@ if(isset($_GET["X"])){ | ||
92 | $z = intval((0.703125 / $res) / 4) + 1; | 92 | $z = intval((0.703125 / $res) / 4) + 1; |
93 | $x = floor((($box[0] + 180) / 360) * pow(2, $z)); | 93 | $x = floor((($box[0] + 180) / 360) * pow(2, $z)); |
94 | $y = floor((1 - log(tan(deg2rad($box[3])) + 1 / cos(deg2rad($box[3]))) / pi()) /2 * pow(2, $z)); | 94 | $y = floor((1 - log(tan(deg2rad($box[3])) + 1 / cos(deg2rad($box[3]))) / pi()) /2 * pow(2, $z)); |
95 | - | 95 | + |
96 | $_GET["WIDTH"] = 256; | 96 | $_GET["WIDTH"] = 256; |
97 | $_GET["HEIGHT"] = 256; | 97 | $_GET["HEIGHT"] = 256; |
98 | $_GET["tms"] = "/".$_GET["layer"]."/".$z."/".$x."/".$y.".png"; | 98 | $_GET["tms"] = "/".$_GET["layer"]."/".$z."/".$x."/".$y.".png"; |
@@ -413,7 +413,8 @@ else{ | @@ -413,7 +413,8 @@ else{ | ||
413 | //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | 413 | //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
414 | header('Cache-Control: public, max-age=22222222'); | 414 | header('Cache-Control: public, max-age=22222222'); |
415 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); | 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 | else{ | 420 | else{ |
@@ -501,7 +502,8 @@ function carregaCacheImagem($cachedir,$map,$tms,$i3georendermode=0){ | @@ -501,7 +502,8 @@ function carregaCacheImagem($cachedir,$map,$tms,$i3georendermode=0){ | ||
501 | header('Cache-Control: public, max-age=22222222'); | 502 | header('Cache-Control: public, max-age=22222222'); |
502 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); | 503 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); |
503 | //header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); | 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 | else{ | 508 | else{ |
507 | header('Cache-Control: public, max-age=22222222'); | 509 | header('Cache-Control: public, max-age=22222222'); |
ferramentas/parametrossql/ogc.php
@@ -459,7 +459,8 @@ function renderNocacheTms(){ | @@ -459,7 +459,8 @@ function renderNocacheTms(){ | ||
459 | header('Cache-Control: max-age=3600, must-revalidate'); | 459 | header('Cache-Control: max-age=3600, must-revalidate'); |
460 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | 460 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
461 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200); | 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 | if($i3georendermode == 2){ | 465 | if($i3georendermode == 2){ |
465 | ob_clean(); | 466 | ob_clean(); |
@@ -488,7 +489,8 @@ function carregaCacheImagem($cachedir,$map,$tms, $plugin, $tema){ | @@ -488,7 +489,8 @@ function carregaCacheImagem($cachedir,$map,$tms, $plugin, $tema){ | ||
488 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); | 489 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); |
489 | $etag = md5_file($nome); | 490 | $etag = md5_file($nome); |
490 | header('Etag: '.$etag); | 491 | header('Etag: '.$etag); |
491 | - fpassthru(fopen($nome, 'rb')); | 492 | + //fpassthru(fopen($nome, 'rb')); |
493 | + readfile($nome); | ||
492 | exit; | 494 | exit; |
493 | } | 495 | } |
494 | } | 496 | } |
@@ -527,7 +529,8 @@ function salvaCacheImagem($cachedir,$map,$tms, $plugin, $tema){ | @@ -527,7 +529,8 @@ function salvaCacheImagem($cachedir,$map,$tms, $plugin, $tema){ | ||
527 | header('Cache-Control: max-age=3600, must-revalidate'); | 529 | header('Cache-Control: max-age=3600, must-revalidate'); |
528 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | 530 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
529 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); | 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 | exit; | 534 | exit; |
532 | } | 535 | } |
533 | 536 |
ferramentas/salvamapa/geraminiatura.php
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | /* | 2 | /* |
3 | * Gera uma miniatura de um mapfile salvo no banco de dados | 3 | * Gera uma miniatura de um mapfile salvo no banco de dados |
4 | * Verifica se a imagem existe, caso contrario cria uma no diretorio temporario | 4 | * Verifica se a imagem existe, caso contrario cria uma no diretorio temporario |
5 | - * | 5 | + * |
6 | * @param restauramapa - id do mapa a ser restaurado | 6 | * @param restauramapa - id do mapa a ser restaurado |
7 | * @param w | 7 | * @param w |
8 | * @param h | 8 | * @param h |
@@ -47,5 +47,6 @@ header('Content-Length: '.filesize($nomeImagem)); | @@ -47,5 +47,6 @@ header('Content-Length: '.filesize($nomeImagem)); | ||
47 | header('Content-Type: image/png'); | 47 | header('Content-Type: image/png'); |
48 | header('Cache-Control: public, max-age=22222222'); | 48 | header('Cache-Control: public, max-age=22222222'); |
49 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); | 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 | \ No newline at end of file | 53 | \ No newline at end of file |
mashups/openlayers.php
@@ -277,7 +277,7 @@ if($temas != ""){ | @@ -277,7 +277,7 @@ if($temas != ""){ | ||
277 | if(in_array($tema,$visiveis)){ | 277 | if(in_array($tema,$visiveis)){ |
278 | $visivel = "true"; | 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 | if($layern->type != 2 && $layern->type != 3){ | 281 | if($layern->type != 2 && $layern->type != 3){ |
282 | $opacidade = 1; | 282 | $opacidade = 1; |
283 | } | 283 | } |
@@ -646,7 +646,7 @@ if(!i3GEO.configura){ | @@ -646,7 +646,7 @@ if(!i3GEO.configura){ | ||
646 | } | 646 | } |
647 | ?> | 647 | ?> |
648 | i3GEO.editorOL.inicia(); | 648 | i3GEO.editorOL.inicia(); |
649 | - | 649 | + |
650 | function adicionaPluginI3geo(camada,visivel){ | 650 | function adicionaPluginI3geo(camada,visivel){ |
651 | if(!camada.cache){ | 651 | if(!camada.cache){ |
652 | camada["cache"] = "NAO"; | 652 | camada["cache"] = "NAO"; |
ogc.php
@@ -77,9 +77,16 @@ ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo | @@ -77,9 +77,16 @@ ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo | ||
77 | 77 | ||
78 | ogc.php?intervalo=0,50 | 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 | //compatibiliza chamadas fora do padrao | 91 | //compatibiliza chamadas fora do padrao |
85 | // | 92 | // |
@@ -89,175 +96,158 @@ if(isset($_GET["outputFormat"]) && $_GET["outputFormat"] != ""){ | @@ -89,175 +96,158 @@ if(isset($_GET["outputFormat"]) && $_GET["outputFormat"] != ""){ | ||
89 | if(isset($_GET["outputformat"]) && $_GET["outputformat"] != ""){ | 96 | if(isset($_GET["outputformat"]) && $_GET["outputformat"] != ""){ |
90 | $_GET["OUTPUTFORMAT"] = $_GET["outputformat"]; | 97 | $_GET["OUTPUTFORMAT"] = $_GET["outputformat"]; |
91 | } | 98 | } |
92 | -if(strtolower($OUTPUTFORMAT) == "geojson"){ | ||
93 | - $OUTPUTFORMAT = "json"; | ||
94 | -} | ||
95 | $cache = true; | 99 | $cache = true; |
96 | -require_once(dirname(__FILE__)."/classesphp/carrega_ext.php"); | 100 | +//require_once(dirname(__FILE__)."/classesphp/carrega_ext.php"); |
97 | include(dirname(__FILE__)."/ms_configura.php"); | 101 | include(dirname(__FILE__)."/ms_configura.php"); |
98 | include(dirname(__FILE__)."/classesphp/pega_variaveis.php"); | 102 | include(dirname(__FILE__)."/classesphp/pega_variaveis.php"); |
99 | include(dirname(__FILE__)."/classesphp/funcoes_gerais.php"); | 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 | exit; | 130 | exit; |
109 | } | 131 | } |
110 | - | 132 | +// |
111 | //define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos | 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 | $tema = $typename; | 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 | //recupera um mapa salvo no banco de administracao | 194 | //recupera um mapa salvo no banco de administracao |
129 | // | 195 | // |
130 | if(!empty($restauramapa)){ | 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 | if(isset($format) && strtolower($format) == "application/openlayers"){ | 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 | //echo $urln;exit; | 204 | //echo $urln;exit; |
163 | if(!headers_sent()){ | 205 | if(!headers_sent()){ |
164 | header("Location:".$urln); | 206 | header("Location:".$urln); |
165 | } | 207 | } |
166 | else{ | 208 | else{ |
167 | echo "<meta http-equiv='refresh' content='0;url=$urln'>"; | 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 | error_reporting(0); | 216 | error_reporting(0); |
203 | $versao = versao(); | 217 | $versao = versao(); |
204 | $versao = $versao["principal"]; | 218 | $versao = $versao["principal"]; |
205 | -if($_GET["SRS"] == "EPSG:900913"){ | ||
206 | - $_GET["SRS"] = "EPSG:3857"; | ||
207 | -} | 219 | + |
208 | $req = ms_newowsrequestobj(); | 220 | $req = ms_newowsrequestobj(); |
209 | $tipo = ""; | 221 | $tipo = ""; |
210 | -$_GET = array_merge($_GET,$_POST); | 222 | + |
211 | if(isset($_GET["sld"]) || isset($_GET["filter"])){ | 223 | if(isset($_GET["sld"]) || isset($_GET["filter"])){ |
212 | $cache = false; | 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 | foreach ($_GET as $k=>$v){ | 229 | foreach ($_GET as $k=>$v){ |
218 | $req->setParameter(strtoupper($k), $v); | 230 | $req->setParameter(strtoupper($k), $v); |
219 | if(strtolower($v) == "getcapabilities"){ | 231 | if(strtolower($v) == "getcapabilities"){ |
220 | $tipo = "metadados"; | 232 | $tipo = "metadados"; |
221 | $cache = false; | 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 | $req->setParameter("srsName",$req->getValueByName("SRS")); | 239 | $req->setParameter("srsName",$req->getValueByName("SRS")); |
231 | $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"; | 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 | if(isset($version) && !isset($VERSION)){ | 242 | if(isset($version) && !isset($VERSION)){ |
243 | $VERSION = $version; | 243 | $VERSION = $version; |
244 | } | 244 | } |
245 | if(!isset($VERSION)){ | 245 | if(!isset($VERSION)){ |
246 | $req->setParameter("VeRsIoN","1.1.1"); | 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 | //nome do mapfile que ficara em cache | 249 | //nome do mapfile que ficara em cache |
250 | +// | ||
261 | $agora = intval(time() / 1000); | 251 | $agora = intval(time() / 1000); |
262 | //acrescenta ao nome a indicacao do tipo de TMS | 252 | //acrescenta ao nome a indicacao do tipo de TMS |
263 | if(isset($_GET["tms"])){ | 253 | if(isset($_GET["tms"])){ |
@@ -266,7 +256,6 @@ if(isset($_GET["tms"])){ | @@ -266,7 +256,6 @@ if(isset($_GET["tms"])){ | ||
266 | if(isset($_GET["Z"]) && isset($_GET["X"])){ | 256 | if(isset($_GET["Z"]) && isset($_GET["X"])){ |
267 | $agora .= "google"; | 257 | $agora .= "google"; |
268 | } | 258 | } |
269 | - | ||
270 | // | 259 | // |
271 | //se o outputformat for definido, evita o cahce de arquivo | 260 | //se o outputformat for definido, evita o cahce de arquivo |
272 | //o mesmo se existir filtro para o layer | 261 | //o mesmo se existir filtro para o layer |
@@ -278,9 +267,7 @@ if(isset($_GET["DESLIGACACHE"]) && $_GET["DESLIGACACHE"] == "sim"){ | @@ -278,9 +267,7 @@ if(isset($_GET["DESLIGACACHE"]) && $_GET["DESLIGACACHE"] == "sim"){ | ||
278 | $agora = time(); | 267 | $agora = time(); |
279 | $cache = false; | 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 | //essa variavel e usada para definir se a imagem final gerada devera ser cortada ou nao | 271 | //essa variavel e usada para definir se a imagem final gerada devera ser cortada ou nao |
285 | $cortePixels = 0; | 272 | $cortePixels = 0; |
286 | if(file_exists($nomeMapfileTmp) && $tipo == ""){ | 273 | if(file_exists($nomeMapfileTmp) && $tipo == ""){ |
@@ -295,7 +282,7 @@ else{ | @@ -295,7 +282,7 @@ else{ | ||
295 | } | 282 | } |
296 | $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; | 283 | $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; |
297 | $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; | 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 | if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){ | 286 | if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){ |
300 | $or = $or."?tema=".$tema."&"; | 287 | $or = $or."?tema=".$tema."&"; |
301 | } | 288 | } |
@@ -309,8 +296,8 @@ else{ | @@ -309,8 +296,8 @@ else{ | ||
309 | $oMap->setmetadata("wms_attribution_logourl_format","image/png"); | 296 | $oMap->setmetadata("wms_attribution_logourl_format","image/png"); |
310 | $oMap->setmetadata("wms_attribution_logourl_height","56"); | 297 | $oMap->setmetadata("wms_attribution_logourl_height","56"); |
311 | $oMap->setmetadata("wms_attribution_logourl_width","85"); | 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 | $oMap->setmetadata("wms_attribution_title",$tituloInstituicao); | 301 | $oMap->setmetadata("wms_attribution_title",$tituloInstituicao); |
315 | $oMap->setmetadata("ows_enable_request","*"); | 302 | $oMap->setmetadata("ows_enable_request","*"); |
316 | //parametro mandatario | 303 | //parametro mandatario |
@@ -320,8 +307,8 @@ else{ | @@ -320,8 +307,8 @@ else{ | ||
320 | $e = $oMap->extent; | 307 | $e = $oMap->extent; |
321 | $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); | 308 | $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); |
322 | //gera o mapa | 309 | //gera o mapa |
323 | - if ($tipo == "" || $tipo == "metadados"){ | ||
324 | - $tema = explode(" ",$tema); | 310 | + if ($tema != ""){ |
311 | + $listatema = explode(" ",$tema); | ||
325 | //para o caso do tema ser um arquivo mapfile existente em uma pasta qualquer | 312 | //para o caso do tema ser um arquivo mapfile existente em uma pasta qualquer |
326 | //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas | 313 | //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas |
327 | $temai3geo = true; | 314 | $temai3geo = true; |
@@ -331,7 +318,7 @@ else{ | @@ -331,7 +318,7 @@ else{ | ||
331 | $temai3geo = false; | 318 | $temai3geo = false; |
332 | $nmap->setmetadata("ows_enable_request","*"); | 319 | $nmap->setmetadata("ows_enable_request","*"); |
333 | } | 320 | } |
334 | - foreach ($tema as $tx){ | 321 | + foreach ($listatema as $tx){ |
335 | $extensao = ".map"; | 322 | $extensao = ".map"; |
336 | if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ | 323 | if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ |
337 | $extensao = ".php"; | 324 | $extensao = ".php"; |
@@ -364,8 +351,7 @@ else{ | @@ -364,8 +351,7 @@ else{ | ||
364 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); | 351 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); |
365 | $nmap->setmetadata("ows_enable_request","*"); | 352 | $nmap->setmetadata("ows_enable_request","*"); |
366 | } | 353 | } |
367 | - if($temai3geo == false || empty($layers)) | ||
368 | - { | 354 | + if($temai3geo == false || empty($layers)){ |
369 | $ts = $nmap->getalllayernames(); | 355 | $ts = $nmap->getalllayernames(); |
370 | $nmap->setmetadata("ows_enable_request","*"); | 356 | $nmap->setmetadata("ows_enable_request","*"); |
371 | } | 357 | } |
@@ -473,7 +459,7 @@ else{ | @@ -473,7 +459,7 @@ else{ | ||
473 | $oMap = $gm->addLayers($oMap,$gv,$dataView["layerNames"]); | 459 | $oMap = $gm->addLayers($oMap,$gv,$dataView["layerNames"]); |
474 | } | 460 | } |
475 | $numlayers = $oMap->numlayers; | 461 | $numlayers = $oMap->numlayers; |
476 | - $layers = array(); | 462 | + $lys = array(); |
477 | //$layers[] = "default"; | 463 | //$layers[] = "default"; |
478 | for ($i=0;$i < $numlayers;$i++){ | 464 | for ($i=0;$i < $numlayers;$i++){ |
479 | $l = $oMap->getlayer($i); | 465 | $l = $oMap->getlayer($i); |
@@ -484,7 +470,7 @@ else{ | @@ -484,7 +470,7 @@ else{ | ||
484 | $l->setmetadata("ows_srs",$listaepsg); | 470 | $l->setmetadata("ows_srs",$listaepsg); |
485 | $l->setmetadata("ows_title",$l->getmetadata("TEMA")); | 471 | $l->setmetadata("ows_title",$l->getmetadata("TEMA")); |
486 | $l->set("status",MS_OFF); | 472 | $l->set("status",MS_OFF); |
487 | - $layers[] = $l->name; | 473 | + $lys[] = $l->name; |
488 | if(file_exists($locaplic."/temas/miniaturas/".$tx.".map.mini.png")){ | 474 | if(file_exists($locaplic."/temas/miniaturas/".$tx.".map.mini.png")){ |
489 | $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$tx.".map.mini.png"; | 475 | $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$tx.".map.mini.png"; |
490 | $l->setmetadata("wms_attribution_logourl_format","image/png"); | 476 | $l->setmetadata("wms_attribution_logourl_format","image/png"); |
@@ -511,13 +497,13 @@ else{ | @@ -511,13 +497,13 @@ else{ | ||
511 | $cortePixels = $l->getmetadata("cortepixels"); | 497 | $cortePixels = $l->getmetadata("cortepixels"); |
512 | } | 498 | } |
513 | } | 499 | } |
514 | - $req->setParameter("LAYERS", implode(",",$layers)); | 500 | + $req->setParameter("LAYERS", implode(",",$lys)); |
515 | $req->setParameter("STYLES", ""); | 501 | $req->setParameter("STYLES", ""); |
516 | - //r_dump($req);exit; | ||
517 | } | 502 | } |
518 | } | 503 | } |
519 | } | 504 | } |
520 | - else{ | 505 | + else{ |
506 | + $intervalo = "0,5000"; | ||
521 | $conta = 0; | 507 | $conta = 0; |
522 | $int = explode(",",$intervalo); | 508 | $int = explode(",",$intervalo); |
523 | $codigosTema = array(); | 509 | $codigosTema = array(); |
@@ -533,10 +519,10 @@ else{ | @@ -533,10 +519,10 @@ else{ | ||
533 | if(strtolower($grupo["ogc"]) == "sim"){ | 519 | if(strtolower($grupo["ogc"]) == "sim"){ |
534 | foreach($grupo["subgrupos"] as $sgrupo){ | 520 | foreach($grupo["subgrupos"] as $sgrupo){ |
535 | if(strtolower($sgrupo["ogc"]) == "sim"){ | 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,10 +530,6 @@ else{ | ||
544 | } | 530 | } |
545 | } | 531 | } |
546 | } | 532 | } |
547 | - //echo "<pre>"; | ||
548 | - //var_dump($codigosTema); | ||
549 | - //exit; | ||
550 | - | ||
551 | foreach($codigosTema as $c){ | 533 | foreach($codigosTema as $c){ |
552 | $codigoTema = $c["tema"]; | 534 | $codigoTema = $c["tema"]; |
553 | if(file_exists($locaplic."/temas/".$codigoTema.".map")){ | 535 | if(file_exists($locaplic."/temas/".$codigoTema.".map")){ |
@@ -555,48 +537,41 @@ else{ | @@ -555,48 +537,41 @@ else{ | ||
555 | $nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map"); | 537 | $nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map"); |
556 | $nmap->setmetadata("ows_enable_request","*"); | 538 | $nmap->setmetadata("ows_enable_request","*"); |
557 | $ts = $nmap->getalllayernames(); | 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,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 | $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); | 596 | $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); |
615 | $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); | 597 | $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); |
598 | + // | ||
599 | + //caso seja download ou json ou csv | ||
600 | + // | ||
601 | + processaOutputformatMapfile(); | ||
602 | + | ||
616 | $oMap->save($nomeMapfileTmp); | 603 | $oMap->save($nomeMapfileTmp); |
617 | $oMap = ms_newMapobj($nomeMapfileTmp); | 604 | $oMap = ms_newMapobj($nomeMapfileTmp); |
618 | } | 605 | } |
@@ -788,10 +775,10 @@ if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ | @@ -788,10 +775,10 @@ if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ | ||
788 | if (function_exists("mb_convert_encoding")){ | 775 | if (function_exists("mb_convert_encoding")){ |
789 | $leg = mb_convert_encoding($leg,"UTF-8","ISO-8859-1"); | 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 | if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ | 783 | if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ |
797 | $l = $oMap->getlayer(0); | 784 | $l = $oMap->getlayer(0); |
@@ -814,54 +801,11 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ | @@ -814,54 +801,11 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ | ||
814 | $_GET["SRS"] = "EPSG:3857"; | 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 | if(strtolower($req->getValueByName("REQUEST")) == "getmap" && $req->getValueByName("format") == ""){ | 809 | if(strtolower($req->getValueByName("REQUEST")) == "getmap" && $req->getValueByName("format") == ""){ |
866 | $req->setParameter("format","image/png"); | 810 | $req->setParameter("format","image/png"); |
867 | } | 811 | } |
@@ -870,54 +814,13 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["inf | @@ -870,54 +814,13 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["inf | ||
870 | } | 814 | } |
871 | //json conforme cesium | 815 | //json conforme cesium |
872 | if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["info_format"] == "application/json"){ | 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 | exit; | 818 | exit; |
916 | } | 819 | } |
917 | - | ||
918 | $oMap->owsdispatch($req); | 820 | $oMap->owsdispatch($req); |
919 | 821 | ||
920 | -$contenttype = ms_iostripstdoutbuffercontenttype(); | 822 | +$contenttype = ms_iostripstdoutbuffercontenttype(); |
823 | + | ||
921 | if(strtolower($request) == "getcapabilities"){ | 824 | if(strtolower($request) == "getcapabilities"){ |
922 | header('Content-Disposition: attachment; filename=getcapabilities.xml'); | 825 | header('Content-Disposition: attachment; filename=getcapabilities.xml'); |
923 | } | 826 | } |
@@ -925,12 +828,45 @@ if(strtolower($request) == "getcapabilities"){ | @@ -925,12 +828,45 @@ if(strtolower($request) == "getcapabilities"){ | ||
925 | if(!isset($OUTPUTFORMAT)){ | 828 | if(!isset($OUTPUTFORMAT)){ |
926 | header("Content-type: $contenttype"); | 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 | ms_ioresethandlers(); | 870 | ms_ioresethandlers(); |
935 | // | 871 | // |
936 | //funções | 872 | //funções |
@@ -949,16 +885,17 @@ function ogc_pegaListaDeMenus(){ | @@ -949,16 +885,17 @@ function ogc_pegaListaDeMenus(){ | ||
949 | } | 885 | } |
950 | function ogc_imprimeAjuda(){ | 886 | function ogc_imprimeAjuda(){ |
951 | echo "<pre><b>Construtor de web services do I3Geo.</b><br><br>"; | 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 | echo "Para escolher um tema, utilize:<br>"; | 890 | echo "Para escolher um tema, utilize:<br>"; |
955 | echo "ogc.php?lista=temas - para listar os temas disponíveis<br>"; | 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 | function ogc_imprimeListaDeTemas(){ | 900 | function ogc_imprimeListaDeTemas(){ |
964 | global $urli3geo,$perfil,$locaplic; | 901 | global $urli3geo,$perfil,$locaplic; |
@@ -975,17 +912,17 @@ function ogc_imprimeListaDeTemas(){ | @@ -975,17 +912,17 @@ function ogc_imprimeListaDeTemas(){ | ||
975 | foreach($grupo["subgrupos"] as $sgrupo){ | 912 | foreach($grupo["subgrupos"] as $sgrupo){ |
976 | if(strtolower($sgrupo["ogc"]) == "sim"){ | 913 | if(strtolower($sgrupo["ogc"]) == "sim"){ |
977 | $imprimesubgrupo = $sgrupo["nome"]; | 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 | $imprimir .= texto2iso($imprimegrupo)."->".texto2iso($imprimesubgrupo)."<br>"; | 918 | $imprimir .= texto2iso($imprimegrupo)."->".texto2iso($imprimesubgrupo)."<br>"; |
982 | $imprimir .= " "; | 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 | $imprimir .= "<br>"; | 926 | $imprimir .= "<br>"; |
990 | } | 927 | } |
991 | } | 928 | } |
@@ -1011,17 +948,17 @@ function ogc_imprimeListaDeTemasWfs(){ | @@ -1011,17 +948,17 @@ function ogc_imprimeListaDeTemasWfs(){ | ||
1011 | foreach($grupo["subgrupos"] as $sgrupo){ | 948 | foreach($grupo["subgrupos"] as $sgrupo){ |
1012 | if(strtolower($sgrupo["ogc"]) == "sim"){ | 949 | if(strtolower($sgrupo["ogc"]) == "sim"){ |
1013 | $imprimesubgrupo = $sgrupo["nome"]; | 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 | $imprimir .= $imprimegrupo."->".$imprimesubgrupo."<br>"; | 954 | $imprimir .= $imprimegrupo."->".$imprimesubgrupo."<br>"; |
1018 | $imprimir .= " "; | 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 | $imprimir .= "<br>"; | 962 | $imprimir .= "<br>"; |
1026 | } | 963 | } |
1027 | } | 964 | } |
@@ -1048,7 +985,7 @@ function carregaCacheImagem($cachedir,$map,$tms){ | @@ -1048,7 +985,7 @@ function carregaCacheImagem($cachedir,$map,$tms){ | ||
1048 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); | 985 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); |
1049 | $etag = md5_file($nome); | 986 | $etag = md5_file($nome); |
1050 | header('Etag: '.$etag); | 987 | header('Etag: '.$etag); |
1051 | - fpassthru(fopen($nome, 'rb')); | 988 | + readfile($nome); |
1052 | exit; | 989 | exit; |
1053 | } | 990 | } |
1054 | } | 991 | } |
@@ -1084,7 +1021,7 @@ function salvaCacheImagem($cachedir,$map,$tms){ | @@ -1084,7 +1021,7 @@ function salvaCacheImagem($cachedir,$map,$tms){ | ||
1084 | header('Cache-Control: max-age=3600, must-revalidate'); | 1021 | header('Cache-Control: max-age=3600, must-revalidate'); |
1085 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | 1022 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
1086 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); | 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 | exit; | 1025 | exit; |
1089 | } | 1026 | } |
1090 | function texto2iso($texto){ | 1027 | function texto2iso($texto){ |
@@ -1135,7 +1072,7 @@ function renderNocacheTms(){ | @@ -1135,7 +1072,7 @@ function renderNocacheTms(){ | ||
1135 | header('Cache-Control: max-age=3600, must-revalidate'); | 1072 | header('Cache-Control: max-age=3600, must-revalidate'); |
1136 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | 1073 | header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); |
1137 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200); | 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 | if($i3georendermode == 2){ | 1077 | if($i3georendermode == 2){ |
1141 | ob_clean(); | 1078 | ob_clean(); |
@@ -1145,6 +1082,129 @@ function renderNocacheTms(){ | @@ -1145,6 +1082,129 @@ function renderNocacheTms(){ | ||
1145 | header("Content-type: image/png"); | 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 | function converteenc($texto){ | 1208 | function converteenc($texto){ |
1149 | if (!mb_detect_encoding($texto,"UTF-8",true)){ | 1209 | if (!mb_detect_encoding($texto,"UTF-8",true)){ |
1150 | $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); | 1210 | $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); |