Commit 808d9f762d77230794902d70dea79a182315e64d

Authored by Edmar Moretti
1 parent 69e9763f

--no commit message

admin/admin.db
No preview for this file type
admin/php/preview.php
@@ -141,13 +141,14 @@ if(ob_get_contents ()){ @@ -141,13 +141,14 @@ if(ob_get_contents ()){
141 ob_end_clean(); 141 ob_end_clean();
142 } 142 }
143 143
144 - $l = $oMap->getlayer(0);  
145 - $req->setParameter("LAYERS",$l->name); 144 +$l = $oMap->getlayer(0);
  145 +$req->setParameter("LAYERS",$l->name);
146 146
147 ms_ioinstallstdouttobuffer(); 147 ms_ioinstallstdouttobuffer();
148 $req->setParameter("format","image/png"); 148 $req->setParameter("format","image/png");
149 $oMap->owsdispatch($req); 149 $oMap->owsdispatch($req);
150 $contenttype = ms_iostripstdoutbuffercontenttype(); 150 $contenttype = ms_iostripstdoutbuffercontenttype();
  151 +
151 if(!isset($OUTPUTFORMAT)){ 152 if(!isset($OUTPUTFORMAT)){
152 header("Content-type: $contenttype"); 153 header("Content-type: $contenttype");
153 } 154 }
aplicmap/dados/teste3d.kmz 0 → 100755
No preview for this file type
classesphp/classe_mapa.php
@@ -1366,8 +1366,14 @@ class Mapa @@ -1366,8 +1366,14 @@ class Mapa
1366 for ($i = $numlayers-1;$i > 0;$i--){ 1366 for ($i = $numlayers-1;$i > 0;$i--){
1367 $layerAbaixo = $this->mapa->getlayer($i); 1367 $layerAbaixo = $this->mapa->getlayer($i);
1368 $tipo = $layerAbaixo->type; 1368 $tipo = $layerAbaixo->type;
1369 - if($tipo == 2 && ($layerAbaixo->getclass(0)->getstyle(0)->color->red == -1) && ($l->getclass(0)->getstyle(0)->color->red != -1)) {  
1370 - $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 + }
1371 } 1377 }
1372 if (($tipo != 2) && ($tipo != 3)){ 1378 if (($tipo != 2) && ($tipo != 3)){
1373 $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 /*
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";
mashups/osm.php
@@ -634,7 +634,7 @@ if(!i3GEO.configura){ @@ -634,7 +634,7 @@ if(!i3GEO.configura){
634 } 634 }
635 ?> 635 ?>
636 i3GEO.editorOL.inicia(); 636 i3GEO.editorOL.inicia();
637 - 637 +
638 function adicionaPluginI3geo(camada,visivel){ 638 function adicionaPluginI3geo(camada,visivel){
639 if(!camada.cache){ 639 if(!camada.cache){
640 camada["cache"] = "NAO"; 640 camada["cache"] = "NAO";
@@ -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 //
@@ -90,7 +97,7 @@ if(isset($_GET["outputformat"]) && $_GET["outputformat"] != ""){ @@ -90,7 +97,7 @@ if(isset($_GET["outputformat"]) && $_GET["outputformat"] != ""){
90 $_GET["OUTPUTFORMAT"] = $_GET["outputformat"]; 97 $_GET["OUTPUTFORMAT"] = $_GET["outputformat"];
91 } 98 }
92 $cache = true; 99 $cache = true;
93 -require_once(dirname(__FILE__)."/classesphp/carrega_ext.php"); 100 +//require_once(dirname(__FILE__)."/classesphp/carrega_ext.php");
94 include(dirname(__FILE__)."/ms_configura.php"); 101 include(dirname(__FILE__)."/ms_configura.php");
95 include(dirname(__FILE__)."/classesphp/pega_variaveis.php"); 102 include(dirname(__FILE__)."/classesphp/pega_variaveis.php");
96 include(dirname(__FILE__)."/classesphp/funcoes_gerais.php"); 103 include(dirname(__FILE__)."/classesphp/funcoes_gerais.php");
@@ -112,154 +119,132 @@ $urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); @@ -112,154 +119,132 @@ $urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]);
112 // 119 //
113 //imprime na tela a lista de temas disponiveis 120 //imprime na tela a lista de temas disponiveis
114 // 121 //
115 -if(isset($lista) && $lista == "temas"){ 122 +if(isset($lista) && $lista != ""){
116 include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php"); 123 include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php");
117 - ogc_imprimeListaDeTemas(); 124 + if($lista == "temas"){
  125 + ogc_imprimeListaDeTemas();
  126 + }
  127 + if($lista == "temaswfs"){
  128 + ogc_imprimeListaDeTemasWfs();
  129 + }
118 exit; 130 exit;
  131 +}
  132 +//
  133 +//define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos
  134 +//
  135 +if(isset($id_medida_variavel) && $id_medida_variavel != ""){
  136 + $tema = "ogcmetaestat".$id_medida_variavel;
  137 +}
  138 +//
  139 +//compatibiliza variaveis
  140 +//
  141 +if(!isset($tema) && isset($layers)){
  142 + $tema = $layers;
  143 +}
  144 +if(!isset($tema) && isset($LAYERS)){
  145 + $tema = $LAYERS;
  146 +}
  147 +if(!isset($tema) && isset($temas)){
  148 + $tema = $temas;
119 } 149 }
120 -if(isset($lista) && $lista == "temaswfs"){  
121 - include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php");  
122 - ogc_imprimeListaDeTemasWfs();  
123 - exit; 150 +if(isset($typeName)){
  151 + $typename = $typeName;
  152 +}
  153 +if(!isset($tema) && isset($typename)){
  154 + $tema = $typename;
  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();
124 } 167 }
125 // 168 //
126 //para o caso da requisicao kml 169 //para o caso da requisicao kml
127 // 170 //
128 if(strtolower($OUTPUTFORMAT) == "kml" || strtolower($OUTPUTFORMAT) == "kmz"){ 171 if(strtolower($OUTPUTFORMAT) == "kml" || strtolower($OUTPUTFORMAT) == "kmz"){
129 - //http://localhost/i3geo/pacotes/kmlmapserver/kmlservice.php?request=kmz&map=_lbiomashp&typename=_lbiomashp  
130 - if(!isset($tema) && isset($layers)){  
131 - $tema = $layers;  
132 - }  
133 $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; 172 $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema;
134 header("Location:".$urln); 173 header("Location:".$urln);
135 exit; 174 exit;
136 } 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 +}
137 // 187 //
138 //trata geojson da mesma forma que json 188 //trata geojson da mesma forma que json
139 // 189 //
140 if(strtolower($OUTPUTFORMAT) == "geojson"){ 190 if(strtolower($OUTPUTFORMAT) == "geojson"){
141 $OUTPUTFORMAT = "json"; 191 $OUTPUTFORMAT = "json";
142 } 192 }
143 -//  
144 -//define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos  
145 -//  
146 -if(isset($id_medida_variavel)){  
147 - $tema = "ogcmetaestat".$id_medida_variavel;  
148 - $_GET["layers"] = $tema;  
149 - $_GET["LAYERS"] = $tema;  
150 -}  
151 -if(!isset($tema) && isset($temas)){  
152 - $tema = $temas;  
153 -}  
154 -if(isset($typeName)){  
155 - $typename = $typeName;  
156 -}  
157 -if(!isset($tema) && isset($typename)){  
158 - $tema = $typename;  
159 -}  
160 // 193 //
161 //recupera um mapa salvo no banco de administracao 194 //recupera um mapa salvo no banco de administracao
162 // 195 //
163 if(!empty($restauramapa)){ 196 if(!empty($restauramapa)){
164 - $xbase = restauraMapaAdmin($restauramapa,$dir_tmp);  
165 - $m = ms_newMapObj($xbase);  
166 - $w = $m->web;  
167 - $w->set("imagepath",dirname($w->imagepath)."/");  
168 - $w->set("imageurl",dirname($w->imageurl)."/");  
169 - //apaga algumas camadas  
170 - $l = $m->getlayerbyname("rosadosventos");  
171 - if($l != ""){  
172 - $l->set("status",MS_DELETE);  
173 - }  
174 - $l = $m->getlayerbyname("copyright");  
175 - if($l != ""){  
176 - $l->set("status",MS_DELETE);  
177 - }  
178 - $m->save($xbase);  
179 - //$fundo = $xbase;  
180 - $tema = $xbase;  
181 - $_GET["tema"] = $xbase;  
182 - $_GET["layers"] = "";  
183 - $l = $m->getlayer(0);  
184 - $_GET["LAYERS"] = $l->name; 197 + restauraMapaSalvo();
185 } 198 }
186 // 199 //
187 -//para operar como o Geoserver 200 +//para operar como o Geoserver, abre o openlayers
188 // 201 //
189 if(isset($format) && strtolower($format) == "application/openlayers"){ 202 if(isset($format) && strtolower($format) == "application/openlayers"){
190 - if(!isset($layers)){  
191 - $layers = $tema;  
192 - }  
193 - $urln = diogc_imprimeAjudarname($_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";
194 //echo $urln;exit; 204 //echo $urln;exit;
195 if(!headers_sent()){ 205 if(!headers_sent()){
196 header("Location:".$urln); 206 header("Location:".$urln);
197 } 207 }
198 else{ 208 else{
199 echo "<meta http-equiv='refresh' content='0;url=$urln'>"; 209 echo "<meta http-equiv='refresh' content='0;url=$urln'>";
200 - } 210 + }
  211 + //exit....
201 } 212 }
202 // 213 //
203 -//cria o web service 214 +//pega a versao do Mapserver
204 // 215 //
205 error_reporting(0); 216 error_reporting(0);
206 $versao = versao(); 217 $versao = versao();
207 $versao = $versao["principal"]; 218 $versao = $versao["principal"];
208 -if($_GET["SRS"] == "EPSG:900913"){  
209 - $_GET["SRS"] = "EPSG:3857";  
210 -} 219 +
211 $req = ms_newowsrequestobj(); 220 $req = ms_newowsrequestobj();
212 $tipo = ""; 221 $tipo = "";
213 -$_GET = array_merge($_GET,$_POST); 222 +
214 if(isset($_GET["sld"]) || isset($_GET["filter"])){ 223 if(isset($_GET["sld"]) || isset($_GET["filter"])){
215 $cache = false; 224 $cache = false;
216 } 225 }
217 -if(!isset($_GET["srs"]) && !isset($_GET["SRS"])){  
218 - $_GET["srs"] = "EPSG:4326";  
219 -} 226 +//
  227 +//inclui todos os parametros na requisicao e aproveita para verificar getcapabilities
  228 +//
220 foreach ($_GET as $k=>$v){ 229 foreach ($_GET as $k=>$v){
221 $req->setParameter(strtoupper($k), $v); 230 $req->setParameter(strtoupper($k), $v);
222 if(strtolower($v) == "getcapabilities"){ 231 if(strtolower($v) == "getcapabilities"){
223 $tipo = "metadados"; 232 $tipo = "metadados";
224 $cache = false; 233 $cache = false;
225 } 234 }
226 - if(strtolower($k) == "layers" && empty($_GET["tema"])){  
227 - $tema = $v;  
228 - }  
229 - if(strtolower($k) == "layer" && empty($_GET["tema"])){  
230 - $tema = $v;  
231 - }  
232 } 235 }
  236 +//
  237 +//cria uma lista de epsgs para o getcapabilities
  238 +//
233 $req->setParameter("srsName",$req->getValueByName("SRS")); 239 $req->setParameter("srsName",$req->getValueByName("SRS"));
234 $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";
235 -//echo $listaepsg;exit;  
236 -if(count($_GET) == 0){  
237 - $tipo="intervalo";  
238 - $req->setParameter("REQUEST", "getCapabilities");  
239 - $req->setParameter("SERVICE", "WMS");  
240 - $cache = false;  
241 -}  
242 -if(isset($tema) && $tipo != "metadados"){  
243 - $tipo = "";  
244 -} 241 +
245 if(isset($version) && !isset($VERSION)){ 242 if(isset($version) && !isset($VERSION)){
246 $VERSION = $version; 243 $VERSION = $version;
247 } 244 }
248 if(!isset($VERSION)){ 245 if(!isset($VERSION)){
249 $req->setParameter("VeRsIoN","1.1.1"); 246 $req->setParameter("VeRsIoN","1.1.1");
250 } 247 }
251 -if (!isset($intervalo)){  
252 - $intervalo = "0,5000";  
253 -}  
254 -else{  
255 - $tipo = "intervalo";  
256 -}  
257 -if(!isset($tema)){  
258 - if(!isset($intervalo)){  
259 - $intervalo = "0,5000";  
260 - }  
261 - $tipo = "intervalo";  
262 -}  
263 // 248 //
264 //nome do mapfile que ficara em cache 249 //nome do mapfile que ficara em cache
265 // 250 //
@@ -282,9 +267,7 @@ if(isset($_GET[&quot;DESLIGACACHE&quot;]) &amp;&amp; $_GET[&quot;DESLIGACACHE&quot;] == &quot;sim&quot;){ @@ -282,9 +267,7 @@ if(isset($_GET[&quot;DESLIGACACHE&quot;]) &amp;&amp; $_GET[&quot;DESLIGACACHE&quot;] == &quot;sim&quot;){
282 $agora = time(); 267 $agora = time();
283 $cache = false; 268 $cache = false;
284 } 269 }
285 -$nomeMapfileTmp = $dir_tmp."/ogc_".md5($tema.($req->getValueByName("SRS")))."_".$agora.".map";  
286 -$nomeMapfileTmp = str_replace(",","",$nomeMapfileTmp);  
287 -$nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); 270 +$nomeMapfileTmp = $dir_tmp."/ogc_".md5(implode("",$_GET))."_".$agora.".map";
288 //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
289 $cortePixels = 0; 272 $cortePixels = 0;
290 if(file_exists($nomeMapfileTmp) && $tipo == ""){ 273 if(file_exists($nomeMapfileTmp) && $tipo == ""){
@@ -299,7 +282,7 @@ else{ @@ -299,7 +282,7 @@ else{
299 } 282 }
300 $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; 283 $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://";
301 $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; 284 $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
302 - $or = $proto.$server.$_SERVER['PHP_SELF']; 285 + $or = $urli3geo."/ogc.php";
303 if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){ 286 if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){
304 $or = $or."?tema=".$tema."&"; 287 $or = $or."?tema=".$tema."&";
305 } 288 }
@@ -313,8 +296,8 @@ else{ @@ -313,8 +296,8 @@ else{
313 $oMap->setmetadata("wms_attribution_logourl_format","image/png"); 296 $oMap->setmetadata("wms_attribution_logourl_format","image/png");
314 $oMap->setmetadata("wms_attribution_logourl_height","56"); 297 $oMap->setmetadata("wms_attribution_logourl_height","56");
315 $oMap->setmetadata("wms_attribution_logourl_width","85"); 298 $oMap->setmetadata("wms_attribution_logourl_width","85");
316 - $oMap->setmetadata("wms_attribution_logourl_href",$proto.$server.dirname($_SERVER['PHP_SELF'])."/imagens/i3geo.png");  
317 - $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);
318 $oMap->setmetadata("wms_attribution_title",$tituloInstituicao); 301 $oMap->setmetadata("wms_attribution_title",$tituloInstituicao);
319 $oMap->setmetadata("ows_enable_request","*"); 302 $oMap->setmetadata("ows_enable_request","*");
320 //parametro mandatario 303 //parametro mandatario
@@ -324,8 +307,8 @@ else{ @@ -324,8 +307,8 @@ else{
324 $e = $oMap->extent; 307 $e = $oMap->extent;
325 $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); 308 $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy);
326 //gera o mapa 309 //gera o mapa
327 - if ($tipo == "" || $tipo == "metadados"){  
328 - $tema = explode(" ",$tema); 310 + if ($tema != ""){
  311 + $listatema = explode(" ",$tema);
329 //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
330 //$temai3geo = true indica que o layer ser&aacute; buscado na pasta i3geo/temas 313 //$temai3geo = true indica que o layer ser&aacute; buscado na pasta i3geo/temas
331 $temai3geo = true; 314 $temai3geo = true;
@@ -335,7 +318,7 @@ else{ @@ -335,7 +318,7 @@ else{
335 $temai3geo = false; 318 $temai3geo = false;
336 $nmap->setmetadata("ows_enable_request","*"); 319 $nmap->setmetadata("ows_enable_request","*");
337 } 320 }
338 - foreach ($tema as $tx){ 321 + foreach ($listatema as $tx){
339 $extensao = ".map"; 322 $extensao = ".map";
340 if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ 323 if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){
341 $extensao = ".php"; 324 $extensao = ".php";
@@ -368,8 +351,7 @@ else{ @@ -368,8 +351,7 @@ else{
368 $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); 351 $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map");
369 $nmap->setmetadata("ows_enable_request","*"); 352 $nmap->setmetadata("ows_enable_request","*");
370 } 353 }
371 - if($temai3geo == false || empty($layers))  
372 - { 354 + if($temai3geo == false || empty($layers)){
373 $ts = $nmap->getalllayernames(); 355 $ts = $nmap->getalllayernames();
374 $nmap->setmetadata("ows_enable_request","*"); 356 $nmap->setmetadata("ows_enable_request","*");
375 } 357 }
@@ -520,7 +502,8 @@ else{ @@ -520,7 +502,8 @@ else{
520 } 502 }
521 } 503 }
522 } 504 }
523 - else{ 505 + else{
  506 + $intervalo = "0,5000";
524 $conta = 0; 507 $conta = 0;
525 $int = explode(",",$intervalo); 508 $int = explode(",",$intervalo);
526 $codigosTema = array(); 509 $codigosTema = array();
@@ -554,48 +537,41 @@ else{ @@ -554,48 +537,41 @@ else{
554 $nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map"); 537 $nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map");
555 $nmap->setmetadata("ows_enable_request","*"); 538 $nmap->setmetadata("ows_enable_request","*");
556 $ts = $nmap->getalllayernames(); 539 $ts = $nmap->getalllayernames();
557 - if (count($ts) == 1){  
558 - foreach ($ts as $t){  
559 - if ($oMap->getlayerbyname($t) == ""){  
560 - $conta++;  
561 - if (($conta >= $int[0]) && ($conta <= $int[1])){  
562 - $l = $nmap->getlayerbyname($t);  
563 - $extensao = $l->getmetadata("EXTENSAO");  
564 - if($extensao == ""){  
565 - $extensao = $extensaoMap;  
566 - }  
567 - $l->setmetadata("wms_extent",$extensao);  
568 -  
569 - $l->setmetadata("ows_title",pegaNome($l));  
570 - $l->setmetadata("ows_srs",$listaepsg);  
571 - $l->set("status",MS_OFF);  
572 - $l->setmetadata("gml_include_items","all");  
573 - $l->set("dump",MS_TRUE);  
574 - $l->setmetadata("WMS_INCLUDE_ITEMS","all");  
575 - $l->setmetadata("WFS_INCLUDE_ITEMS","all");  
576 - if($l->getmetadata("ows_metadataurl_href") == ""){  
577 - $l->setmetadata("ows_metadataurl_href",$c["fonte"]);  
578 - $l->setmetadata("ows_metadataurl_type","TC211");  
579 - $l->setmetadata("ows_metadataurl_format","text/html");  
580 - }  
581 - if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){  
582 - $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png";  
583 - $l->setmetadata("wms_attribution_logourl_format","image/png");  
584 - $l->setmetadata("wms_attribution_logourl_height","50");  
585 - $l->setmetadata("wms_attribution_logourl_width","50");  
586 - $l->setmetadata("wms_attribution_logourl_href",$mini);  
587 - }  
588 - //  
589 - //numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos  
590 - //  
591 - if ($l->getmetadata("cortepixels") != ""){  
592 - $cortePixels = $l->getmetadata("cortepixels");  
593 - }  
594 - cloneInlineSymbol($l,$nmap,$oMap);  
595 - ms_newLayerObj($oMap, $l);  
596 -  
597 - } 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;
598 } 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);
599 } 575 }
600 } 576 }
601 } 577 }
@@ -619,6 +595,11 @@ else{ @@ -619,6 +595,11 @@ else{
619 } 595 }
620 $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); 596 $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename));
621 $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 +
622 $oMap->save($nomeMapfileTmp); 603 $oMap->save($nomeMapfileTmp);
623 $oMap = ms_newMapobj($nomeMapfileTmp); 604 $oMap = ms_newMapobj($nomeMapfileTmp);
624 } 605 }
@@ -820,12 +801,7 @@ if(strtolower($req-&gt;getValueByName(&quot;REQUEST&quot;)) == &quot;getfeatureinfo&quot;){ @@ -820,12 +801,7 @@ if(strtolower($req-&gt;getValueByName(&quot;REQUEST&quot;)) == &quot;getfeatureinfo&quot;){
820 $_GET["SRS"] = "EPSG:3857"; 801 $_GET["SRS"] = "EPSG:3857";
821 } 802 }
822 } 803 }
823 -//  
824 -//altera o outputformat  
825 -//  
826 -if(isset($OUTPUTFORMAT)){  
827 - processaOutputformatMapfile();  
828 -} 804 +
829 ms_ioinstallstdouttobuffer(); 805 ms_ioinstallstdouttobuffer();
830 // 806 //
831 //verifica parametro outputformat e ajusta a requisicao 807 //verifica parametro outputformat e ajusta a requisicao
@@ -841,11 +817,10 @@ if(strtolower($req-&gt;getValueByName(&quot;REQUEST&quot;)) == &quot;getfeatureinfo&quot; &amp;&amp; $_GET[&quot;inf @@ -841,11 +817,10 @@ if(strtolower($req-&gt;getValueByName(&quot;REQUEST&quot;)) == &quot;getfeatureinfo&quot; &amp;&amp; $_GET[&quot;inf
841 getfeatureinfoJson(); 817 getfeatureinfoJson();
842 exit; 818 exit;
843 } 819 }
844 -  
845 $oMap->owsdispatch($req); 820 $oMap->owsdispatch($req);
846 821
847 $contenttype = ms_iostripstdoutbuffercontenttype(); 822 $contenttype = ms_iostripstdoutbuffercontenttype();
848 - 823 +
849 if(strtolower($request) == "getcapabilities"){ 824 if(strtolower($request) == "getcapabilities"){
850 header('Content-Disposition: attachment; filename=getcapabilities.xml'); 825 header('Content-Disposition: attachment; filename=getcapabilities.xml');
851 } 826 }
@@ -853,12 +828,45 @@ if(strtolower($request) == &quot;getcapabilities&quot;){ @@ -853,12 +828,45 @@ if(strtolower($request) == &quot;getcapabilities&quot;){
853 if(!isset($OUTPUTFORMAT)){ 828 if(!isset($OUTPUTFORMAT)){
854 header("Content-type: $contenttype"); 829 header("Content-type: $contenttype");
855 } 830 }
856 -if(strtolower($OUTPUTFORMAT) == "geojson"){  
857 - ms_iostripstdoutbuffercontentheaders();  
858 - 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;
859 } 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();
860 869
861 -$buffer = ms_iogetStdoutBufferBytes();  
862 ms_ioresethandlers(); 870 ms_ioresethandlers();
863 // 871 //
864 //fun&ccedil;&otilde;es 872 //fun&ccedil;&otilde;es
@@ -877,16 +885,17 @@ function ogc_pegaListaDeMenus(){ @@ -877,16 +885,17 @@ function ogc_pegaListaDeMenus(){
877 } 885 }
878 function ogc_imprimeAjuda(){ 886 function ogc_imprimeAjuda(){
879 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>";
880 - echo "Esse utilit&aacute;rio usa os arquivos mapfiles existentes em <br>";  
881 - echo "i3geo/temas para gerar web services no padr&atilde;o OGC.<br>"; 888 + echo "Esse programa usa os arquivos mapfiles existentes em <br>";
  889 + echo "i3geo/temas para gerar web services OGC.<br>";
882 echo "Para escolher um tema, utilize:<br>"; 890 echo "Para escolher um tema, utilize:<br>";
883 echo "ogc.php?lista=temas - para listar os temas dispon&iacute;veis<br>"; 891 echo "ogc.php?lista=temas - para listar os temas dispon&iacute;veis<br>";
884 - echo "Para usar esse web service, al&eacute;m dos par&acirc;metros normais, vc dever&aacute; incluir o par&acirc;metro &tema=,<br>";  
885 - echo "ou seja,http://[host]/i3geo/ogc.php?tema=[c&oacute;digo do tema]<br>";  
886 - echo "no lugar do c&ocaute;digo pode ser especificado tamb&eacute;m um arquivo mapfile qualquer. Nesse caso, deve ser digitado o caminho completo no servidor<br><br>";  
887 - echo "Utilize o sistema de administra&ccedil;&atilde;o do i3Geo para configurar quais os temas da pasta i3geo/temas podem ser utilizados.";  
888 - echo "Utilize o parametro &intervalo=0,20 para definir o n&uacute;mero de temas desejado na fun&ccedil;&atilde;o getcapabilities.";  
889 - echo "Utilize o parametro restauramapa para indicar o ID de um mapa salvo no banco de dados de administra&ccedil;&atilde;o para utiliz&aacute;-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";
890 } 899 }
891 function ogc_imprimeListaDeTemas(){ 900 function ogc_imprimeListaDeTemas(){
892 global $urli3geo,$perfil,$locaplic; 901 global $urli3geo,$perfil,$locaplic;
@@ -976,7 +985,7 @@ function carregaCacheImagem($cachedir,$map,$tms){ @@ -976,7 +985,7 @@ function carregaCacheImagem($cachedir,$map,$tms){
976 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);
977 $etag = md5_file($nome); 986 $etag = md5_file($nome);
978 header('Etag: '.$etag); 987 header('Etag: '.$etag);
979 - fpassthru(fopen($nome, 'rb')); 988 + readfile($nome);
980 exit; 989 exit;
981 } 990 }
982 } 991 }
@@ -1012,7 +1021,7 @@ function salvaCacheImagem($cachedir,$map,$tms){ @@ -1012,7 +1021,7 @@ function salvaCacheImagem($cachedir,$map,$tms){
1012 header('Cache-Control: max-age=3600, must-revalidate'); 1021 header('Cache-Control: max-age=3600, must-revalidate');
1013 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');
1014 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);
1015 - fpassthru(fopen($nome, 'rb')); 1024 + readfile($nome);
1016 exit; 1025 exit;
1017 } 1026 }
1018 function texto2iso($texto){ 1027 function texto2iso($texto){
@@ -1063,7 +1072,7 @@ function renderNocacheTms(){ @@ -1063,7 +1072,7 @@ function renderNocacheTms(){
1063 header('Cache-Control: max-age=3600, must-revalidate'); 1072 header('Cache-Control: max-age=3600, must-revalidate');
1064 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');
1065 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);
1066 - fpassthru(fopen($nomer, 'rb')); 1075 + readfile($nomer);
1067 } 1076 }
1068 if($i3georendermode == 2){ 1077 if($i3georendermode == 2){
1069 ob_clean(); 1078 ob_clean();
@@ -1119,41 +1128,83 @@ function getfeatureinfoJson(){ @@ -1119,41 +1128,83 @@ function getfeatureinfoJson(){
1119 echo $json; 1128 echo $json;
1120 } 1129 }
1121 function processaOutputformatMapfile(){ 1130 function processaOutputformatMapfile(){
1122 - global $OUTPUTFORMAT, $oMap; 1131 + global $OUTPUTFORMAT, $oMap, $tema;
1123 if(strtolower($OUTPUTFORMAT) == "shape-zip"){ 1132 if(strtolower($OUTPUTFORMAT) == "shape-zip"){
1124 $l = $oMap->getlayer(0); 1133 $l = $oMap->getlayer(0);
1125 $n = $l->name; 1134 $n = $l->name;
1126 $oMap->selectOutputFormat("shape-zip"); 1135 $oMap->selectOutputFormat("shape-zip");
1127 - $oMap->outputformat->setOption("STORAGE", "memory"); 1136 + $oMap->outputformat->setOption("STORAGE", "filesystem");
1128 $oMap->outputformat->setOption("FORM", "zip"); 1137 $oMap->outputformat->setOption("FORM", "zip");
1129 - $oMap->outputformat->setOption("FILENAME", $n.".zip"); 1138 + $oMap->outputformat->setOption("FILENAME", $tema."_shapefile.zip");
1130 $l->setmetadata("wfs_getfeature_formatlist","shape-zip"); 1139 $l->setmetadata("wfs_getfeature_formatlist","shape-zip");
1131 - $oMap->save($nomeMapfileTmp);  
1132 - if(strtolower($request) != "getcapabilities"){  
1133 - header('Content-Disposition: attachment; filename='.$n.'.zip');  
1134 - }  
1135 } 1140 }
1136 if(strtolower($OUTPUTFORMAT) == "csv"){ 1141 if(strtolower($OUTPUTFORMAT) == "csv"){
1137 $l = $oMap->getlayer(0); 1142 $l = $oMap->getlayer(0);
1138 $n = $l->name."-csv"; 1143 $n = $l->name."-csv";
1139 $oMap->selectOutputFormat("csv"); 1144 $oMap->selectOutputFormat("csv");
1140 - $oMap->outputformat->setOption("STORAGE", "memory");  
1141 - $oMap->outputformat->setOption("FILENAME", $n.".zip");  
1142 - $oMap->outputformat->setOption("FORM", "zip"); 1145 + $oMap->outputformat->setOption("STORAGE", "filesystem");
  1146 + $oMap->outputformat->setOption("FILENAME", $tema.".csv");
  1147 + $oMap->outputformat->setOption("FORM", "simple");
1143 $l->setmetadata("wfs_getfeature_formatlist","csv"); 1148 $l->setmetadata("wfs_getfeature_formatlist","csv");
1144 - $oMap->save($nomeMapfileTmp);  
1145 - if(strtolower($request) != "getcapabilities"){  
1146 - header('Content-Disposition: attachment; filename='.$n.'.zip');  
1147 - }  
1148 } 1149 }
1149 - if(strtolower($OUTPUTFORMAT) == "geojson"){ 1150 + if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){
1150 $l = $oMap->getlayer(0); 1151 $l = $oMap->getlayer(0);
1151 $oMap->selectOutputFormat("geojson"); 1152 $oMap->selectOutputFormat("geojson");
1152 $l->setmetadata("wfs_getfeature_formatlist","geojson"); 1153 $l->setmetadata("wfs_getfeature_formatlist","geojson");
1153 - $oMap->save($nomeMapfileTmp);  
1154 - header("Content-type: application/json; subtype=geojson");  
1155 } 1154 }
1156 } 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 +}
1157 function converteenc($texto){ 1208 function converteenc($texto){
1158 if (!mb_detect_encoding($texto,"UTF-8",true)){ 1209 if (!mb_detect_encoding($texto,"UTF-8",true)){
1159 $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); 1210 $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1");
temas/_lbairros.map
@@ -7,7 +7,7 @@ MAP @@ -7,7 +7,7 @@ MAP
7 DATA "the_geom from (select gid, st_setsrid(the_geom,4326) as the_geom,co_bairro,no_bairro,no_distr,no_municip from i3geo_metaestat.bairros /*FW*//*FW*/) as foo using unique co_bairro using srid=4326" 7 DATA "the_geom from (select gid, st_setsrid(the_geom,4326) as the_geom,co_bairro,no_bairro,no_distr,no_municip from i3geo_metaestat.bairros /*FW*//*FW*/) as foo using unique co_bairro using srid=4326"
8 METADATA 8 METADATA
9 "TIP" "no_bairro" 9 "TIP" "no_bairro"
10 - "cache" "" 10 + "cache" "SIM"
11 "CLASSE" "SIM" 11 "CLASSE" "SIM"
12 "ITENSDESC" "id,Código bairro,Nome,Distrito,Município" 12 "ITENSDESC" "id,Código bairro,Nome,Distrito,Município"
13 "EDITAVEL" "SIM" 13 "EDITAVEL" "SIM"
temas/_lbiomashp.map
1 -MAP  
2 - FONTSET "../symbols/fontes.txt"  
3 - SYMBOLSET "../symbols/simbolosv6.sym"  
4 - LAYER  
5 - CONNECTION ""  
6 - DATA "/var/www/i3geo/aplicmap/dados/biomas.shp"  
7 - METADATA  
8 - "METAESTAT_ID_MEDIDA_VARIAVEL" ""  
9 - "TIP" "CD_LEGENDA"  
10 - "CLASSE" "SIM"  
11 - "permitekmz" "SIM"  
12 - "ITENSDESC" "Bioma Teste de acentuação"  
13 - "ESCALA" "1000000"  
14 - "TILES" "SIM"  
15 - "METAESTAT_CODIGO_TIPO_REGIAO" ""  
16 - "permitedownload" "SIM"  
17 - "metaestat" ""  
18 - "download" "SIM"  
19 - "itembuscarapida" "CD_LEGENDA"  
20 - "ITENS" "CD_LEGENDA"  
21 - "arquivodownload" ""  
22 - "arquivokmz" ""  
23 - "transitioneffect" "SIM"  
24 - "permiteogc" "SIM"  
25 - "permitekml" "SIM"  
26 - "TEMA" "Biomas shapefile (acentuação)"  
27 - END # METADATA  
28 - NAME "_lbiomashp"  
29 - PROCESSING "ITEMS=CD_LEGENDA"  
30 - PROCESSING "LABEL_NO_CLIP=True"  
31 - PROCESSING "POLYLINE_NO_CLIP=True"  
32 - STATUS OFF  
33 - TEMPLATE "none.htm"  
34 - TILEITEM "location"  
35 - OPACITY 40  
36 - TYPE POLYGON  
37 - UNITS METERS  
38 - CLASS  
39 - NAME "CAATINGA"  
40 - EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA')  
41 - STYLE  
42 - COLOR 183 247 169  
43 - OUTLINECOLOR 255 255 255  
44 - END # STYLE  
45 - TITLE ""  
46 - END # CLASS  
47 - CLASS  
48 - NAME "PAMPA area > 5"  
49 - EXPRESSION ('[CD_LEGENDA]'eq'PAMPA area > 5')  
50 - STYLE  
51 - COLOR 239 22 152  
52 - OUTLINECOLOR 255 255 255  
53 - END # STYLE  
54 - TITLE ""  
55 - END # CLASS  
56 - CLASS  
57 - NAME "CERRADO"  
58 - EXPRESSION ('[CD_LEGENDA]'eq'CERRADO')  
59 - STYLE  
60 - COLOR 57 32 234  
61 - OUTLINECOLOR 255 255 255  
62 - END # STYLE  
63 - TITLE ""  
64 - END # CLASS  
65 - CLASS  
66 - NAME "PANTANAL"  
67 - EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL')  
68 - STYLE  
69 - COLOR 214 107 232  
70 - OUTLINECOLOR 255 255 255  
71 - END # STYLE  
72 - TITLE ""  
73 - END # CLASS  
74 - CLASS  
75 - NAME "AMAZÔNIA"  
76 - EXPRESSION ('[CD_LEGENDA]'eq'AMAZÔNIA')  
77 - STYLE  
78 - COLOR 102 177 195  
79 - OUTLINECOLOR 255 255 255  
80 - END # STYLE  
81 - TITLE ""  
82 - END # CLASS  
83 - CLASS  
84 - NAME "MATA ATLÂNTICA"  
85 - EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLÂNTICA')  
86 - STYLE  
87 - COLOR 44 215 49  
88 - OUTLINECOLOR 255 255 255  
89 - END # STYLE  
90 - TITLE ""  
91 - END # CLASS  
92 - END # LAYER  
93 -  
94 -END # MAP  
95 - 1 +MAP
  2 + FONTSET "../symbols/fontes.txt"
  3 + SYMBOLSET "../symbols/simbolosv6.sym"
  4 + LAYER
  5 + CONNECTION ""
  6 + DATA "/var/www/i3geo/aplicmap/dados/biomas.shp"
  7 + METADATA
  8 + "TIP" "CD_LEGENDA"
  9 + "CACHE" "SIM"
  10 + "CLASSE" "SIM"
  11 + "permitekmz" "SIM"
  12 + "ITENSDESC" "Bioma Teste de acentuação"
  13 + "ESCALA" "1000000"
  14 + "TILES" "SIM"
  15 + "permitedownload" "SIM"
  16 + "download" "SIM"
  17 + "itembuscarapida" "CD_LEGENDA"
  18 + "ITENS" "CD_LEGENDA"
  19 + "transitioneffect" "SIM"
  20 + "permiteogc" "SIM"
  21 + "permitekml" "SIM"
  22 + "TEMA" "Biomas shapefile (acentuação)"
  23 + END # METADATA
  24 + NAME "_lbiomashp"
  25 + PROCESSING "ITEMS=CD_LEGENDA"
  26 + PROCESSING "LABEL_NO_CLIP=True"
  27 + PROCESSING "POLYLINE_NO_CLIP=True"
  28 + STATUS OFF
  29 + TEMPLATE "none.htm"
  30 + TILEITEM "location"
  31 + OPACITY 40
  32 + TYPE POLYGON
  33 + UNITS METERS
  34 + CLASS
  35 + NAME "CAATINGA"
  36 + EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA')
  37 + STYLE
  38 + COLOR 183 247 169
  39 + OUTLINECOLOR 255 255 255
  40 + END # STYLE
  41 + TITLE ""
  42 + END # CLASS
  43 + CLASS
  44 + NAME "PAMPA area > 5"
  45 + EXPRESSION ('[CD_LEGENDA]'eq'PAMPA area > 5')
  46 + STYLE
  47 + COLOR 239 22 152
  48 + OUTLINECOLOR 255 255 255
  49 + END # STYLE
  50 + TITLE ""
  51 + END # CLASS
  52 + CLASS
  53 + NAME "CERRADO"
  54 + EXPRESSION ('[CD_LEGENDA]'eq'CERRADO')
  55 + STYLE
  56 + COLOR 57 32 234
  57 + OUTLINECOLOR 255 255 255
  58 + END # STYLE
  59 + TITLE ""
  60 + END # CLASS
  61 + CLASS
  62 + NAME "PANTANAL"
  63 + EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL')
  64 + STYLE
  65 + COLOR 214 107 232
  66 + OUTLINECOLOR 255 255 255
  67 + END # STYLE
  68 + TITLE ""
  69 + END # CLASS
  70 + CLASS
  71 + NAME "AMAZÔNIA"
  72 + EXPRESSION ('[CD_LEGENDA]'eq'AMAZÔNIA')
  73 + STYLE
  74 + COLOR 102 177 195
  75 + OUTLINECOLOR 255 255 255
  76 + END # STYLE
  77 + TITLE ""
  78 + END # CLASS
  79 + CLASS
  80 + NAME "MATA ATLÂNTICA"
  81 + EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLÂNTICA')
  82 + STYLE
  83 + COLOR 44 215 49
  84 + OUTLINECOLOR 255 255 255
  85 + END # STYLE
  86 + TITLE ""
  87 + END # CLASS
  88 + END # LAYER
  89 +END # MAP
temas/_lteste3d.map 0 → 100755
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +MAP
  2 + FONTSET "../symbols/fontes.txt"
  3 + SYMBOLSET "../symbols/simbolosv6.sym"
  4 + LAYER
  5 + DATA "/var/www/i3geo/aplicmap/dados/mundo"
  6 + METADATA
  7 + "CLASSE" "SIM" #o simbolo sera mostrado na legenda
  8 + "ITENS" "FIPS_CNTRY,GMI_CNTRY,LONG_NAME,CNTRY_NAME" #itens que serao mostrados na opcao de identificacao
  9 + "ITENSDESC" "FIPS,GMI,Nome,Wikipedia" #descricao dos nomes dos itens
  10 + "ITENSLINK" ",,,http://pt.wikipedia.org/wiki/[CNTRY_NAME]"
  11 + "TEMA" "Países do mundo" #nome que sera mostrado na legenda
  12 + "TITULO" "Países do mundo" #nome alternativo que e mostrado nos combos para escolha do tema
  13 + "TIP" "FIPS_CNTRY,GMI_CNTRY,CNTRY_NAME"
  14 + "itembuscarapida" "LONG_NAME"
  15 + "TME" '{"titulo":"População","colnome":"CNTRY_NAME","colsdata":["POP_CNTRY"],"hmax":"5000","wmax":"5000"}'
  16 + END
  17 + NAME "_lteste3d"
  18 + STATUS DEFAULT
  19 + TEMPLATE "none.htm"
  20 + TYPE POLYGON
  21 + CLASS
  22 + NAME "" #vazio indica que nao sera incluido o nome ao lado do simbolo
  23 + STYLE
  24 + COLOR 230 230 230
  25 + OUTLINECOLOR 255 255 255
  26 + END
  27 + END
  28 + END
  29 +END
0 \ No newline at end of file 30 \ No newline at end of file