Commit b8458851db054ec833a026a1fb41cde3bf7331e6

Authored by Edmar Moretti
1 parent 711d30a2

Incluida verificação de metadados nas funções de geração de WMS, kml, kmz ou dow…

…nload. Os metadados são inseridos apenas quando um mapfile é editado por meio do sistema de administração.
admin/php/editormapfile.php
@@ -874,21 +874,27 @@ function alterarEstilo() @@ -874,21 +874,27 @@ function alterarEstilo()
874 874
875 function removeCabecalho($arq,$symbolset=true) 875 function removeCabecalho($arq,$symbolset=true)
876 { 876 {
877 - global $postgis_mapa;  
878 - restauraCon($arq,$postgis_mapa);  
879 $handle = fopen($arq, "r"); 877 $handle = fopen($arq, "r");
880 if ($handle) 878 if ($handle)
881 { 879 {
  880 + $cabeca = array();
882 if($symbolset) 881 if($symbolset)
883 { 882 {
884 - $final[] = "MAP\n";  
885 - $final[] = "SYMBOLSET ../symbols/simbolos.sym\n";  
886 - $final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n"; 883 + $cabeca[] = "MAP\n";
  884 + //$final[] = "SYMBOLSET ../symbols/simbolos.sym\n";
  885 + //$final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n";
887 } 886 }
888 $grava = false; 887 $grava = false;
889 while (!feof($handle)) 888 while (!feof($handle))
890 { 889 {
891 $linha = fgets($handle); 890 $linha = fgets($handle);
  891 + if($symbolset)
  892 + {
  893 + if(strtoupper(trim($linha)) == "SYMBOLSET")
  894 + {$cabeca[] = $linha;}
  895 + if(strtoupper(trim($linha)) == "FONTSET")
  896 + {$cabeca[] = $linha;}
  897 + }
892 if(strtoupper(trim($linha)) == "LAYER") 898 if(strtoupper(trim($linha)) == "LAYER")
893 {$grava = true;} 899 {$grava = true;}
894 if($grava) 900 if($grava)
@@ -896,6 +902,7 @@ function removeCabecalho($arq,$symbolset=true) @@ -896,6 +902,7 @@ function removeCabecalho($arq,$symbolset=true)
896 } 902 }
897 fclose($handle); 903 fclose($handle);
898 } 904 }
  905 + $final = array_merge($cabeca,$final);
899 $handle = fopen($arq, "w+"); 906 $handle = fopen($arq, "w+");
900 foreach ($final as $f) 907 foreach ($final as $f)
901 { 908 {
admin/php/menutemas.php
@@ -728,7 +728,7 @@ Altera o registro de um tema. Se id for vazio acrescenta o registro @@ -728,7 +728,7 @@ Altera o registro de um tema. Se id for vazio acrescenta o registro
728 */ 728 */
729 function alteraTemas() 729 function alteraTemas()
730 { 730 {
731 - global $nome,$desc,$id,$codigo,$tipoa,$download,$ogc,$kml,$link,$tags,$kmz; 731 + global $nome,$desc,$id,$codigo,$tipoa,$download,$ogc,$kml,$link,$tags,$kmz,$locaplic;
732 //error_reporting(E_ALL); 732 //error_reporting(E_ALL);
733 try 733 try
734 { 734 {
@@ -747,6 +747,28 @@ function alteraTemas() @@ -747,6 +747,28 @@ function alteraTemas()
747 else 747 else
748 $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='$tags', link_tema='$link', nome_tema ='$nome',desc_tema='$desc',codigo_tema='$codigo',tipoa_tema='$tipoa',download_tema='$download',ogc_tema='$ogc',kml_tema='$kml',kmz_tema='$kmz' WHERE id_tema = $id"); 748 $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='$tags', link_tema='$link', nome_tema ='$nome',desc_tema='$desc',codigo_tema='$codigo',tipoa_tema='$tipoa',download_tema='$download',ogc_tema='$ogc',kml_tema='$kml',kmz_tema='$kmz' WHERE id_tema = $id");
749 $retorna = $id; 749 $retorna = $id;
  750 + if(!isset($kmz)){$kmz = "nao";}
  751 + $sql = "SELECT * from i3geoadmin_temas where id_tema = '$id'";
  752 + $q = $dbh->query($sql,PDO::FETCH_ASSOC);
  753 + $resultado = $q->fetchAll();
  754 + $mapfile = $resultado[0]["codigo_tema"];
  755 + $mapfile = $locaplic."/temas/".$mapfile.".map";
  756 +
  757 + if($mapa = @ms_newMapObj($mapfile))
  758 + {
  759 + $mapa = ms_newMapObj($mapfile);
  760 + $nomes = $mapa->getalllayernames();
  761 + foreach($nomes as $nome)
  762 + {
  763 + $layer = $mapa->getlayerbyname($nome);
  764 + $layer->setmetadata("permitedownload",strtolower($download));
  765 + $layer->setmetadata("permiteogc",strtolower($ogc));
  766 + $layer->setmetadata("permitekml",strtolower($kml));
  767 + $layer->setmetadata("permitekmz",strtolower($kmz));
  768 + }
  769 + $mapa->save($mapfile);
  770 + removeCabecalho($mapfile);
  771 + }
750 } 772 }
751 else 773 else
752 { 774 {
@@ -1066,4 +1088,59 @@ function importarXmlMenu() @@ -1066,4 +1088,59 @@ function importarXmlMenu()
1066 $dbh = null; 1088 $dbh = null;
1067 return "Dados importados."; 1089 return "Dados importados.";
1068 } 1090 }
  1091 +
  1092 +function removeCabecalho($arq,$symbolset=true)
  1093 +{
  1094 + $handle = fopen($arq, "r");
  1095 + if ($handle)
  1096 + {
  1097 + $cabeca = array();
  1098 + if($symbolset)
  1099 + {
  1100 + $cabeca[] = "MAP\n";
  1101 + //$final[] = "SYMBOLSET ../symbols/simbolos.sym\n";
  1102 + //$final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n";
  1103 + }
  1104 + $grava = false;
  1105 + while (!feof($handle))
  1106 + {
  1107 + $linha = fgets($handle);
  1108 + if($symbolset)
  1109 + {
  1110 + if(strtoupper(trim($linha)) == "SYMBOLSET")
  1111 + {$cabeca[] = $linha;}
  1112 + if(strtoupper(trim($linha)) == "FONTSET")
  1113 + {$cabeca[] = $linha;}
  1114 + }
  1115 + if(strtoupper(trim($linha)) == "LAYER")
  1116 + {$grava = true;}
  1117 + if($grava)
  1118 + {$final[] = rtrim($linha, "\r\n") . PHP_EOL;}
  1119 + }
  1120 + fclose($handle);
  1121 + }
  1122 + $final = array_merge($cabeca,$final);
  1123 + $handle = fopen($arq, "w+");
  1124 + foreach ($final as $f)
  1125 + {
  1126 + //
  1127 + //remove resultados em branco
  1128 + //e grava a linha
  1129 + //
  1130 + $teste = strtoupper($f);
  1131 + $teste = trim($teste);
  1132 + $teste = str_replace(" ","",$teste);
  1133 + $teste = str_replace("'","",$teste);
  1134 + $teste = str_replace('"',"",$teste);
  1135 + $teste = preg_replace('/[\n\r\t ]*/', '', $teste);
  1136 + $testar = array("KEYIMAGE","TILEINDEX","TILEITEM","SYMBOL","LABELITEM","FILTERITEM","GROUP","ENCODING","TIP","CLASSE","ITENSDESC","CLASSESNOME","ITENSLINK","ESCALA","CLASSESSIMBOLO","MENSAGEM","EXTENSAO","CLASSESITEM","ESCONDIDO","CLASSESCOR","DOWNLOAD","CLASSESTAMANHO","ITENS","TEMA","APLICAEXTENSAO","IDENTIFICA");
  1137 + $passou = true;
  1138 + foreach ($testar as $t)
  1139 + {if($teste == $t){$passou = false;}}
  1140 + if($passou)
  1141 + fwrite($handle,$f);
  1142 + }
  1143 + fclose($handle);
  1144 + chmod($arq, 0666);
  1145 +}
1069 ?> 1146 ?>
1070 \ No newline at end of file 1147 \ No newline at end of file
classesphp/funcoes_gerais.php
@@ -1725,6 +1725,8 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) @@ -1725,6 +1725,8 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp)
1725 foreach ($temastemp as $tt) 1725 foreach ($temastemp as $tt)
1726 { 1726 {
1727 $ll = $maptemp->getlayerbyname($tt); 1727 $ll = $maptemp->getlayerbyname($tt);
  1728 + $permite = $l->getmetadata("permitedownload");
  1729 + if($permite != "nao")
1728 ms_newLayerObj($map, $ll); 1730 ms_newLayerObj($map, $ll);
1729 } 1731 }
1730 } 1732 }
menutemas/admin.db
No preview for this file type
@@ -201,6 +201,8 @@ if ($tipo == "" || $tipo == "metadados") @@ -201,6 +201,8 @@ if ($tipo == "" || $tipo == "metadados")
201 } 201 }
202 } 202 }
203 autoClasses(&$l,$oMap); 203 autoClasses(&$l,$oMap);
  204 + $permite = $l->getmetadata("permiteogc");
  205 + if($permite != "nao")
204 ms_newLayerObj($oMap, $l); 206 ms_newLayerObj($oMap, $l);
205 } 207 }
206 } 208 }
pacotes/kmlmapserver/classes/layerserver.class.php
@@ -405,6 +405,8 @@ class LayerServer { @@ -405,6 +405,8 @@ class LayerServer {
405 * Process the shape 405 * Process the shape
406 */ 406 */
407 function process_shape(&$layer, &$shape, &$class_list, &$folder, &$namecol){ 407 function process_shape(&$layer, &$shape, &$class_list, &$folder, &$namecol){
  408 + $permite = $layer->getmetadata("permitekmz");
  409 + if($permite == "nao"){return;}
408 $itens = $layer->getmetadata("itens"); 410 $itens = $layer->getmetadata("itens");
409 $itensdesc = $layer->getmetadata("itensdesc"); 411 $itensdesc = $layer->getmetadata("itensdesc");
410 $shape->project($this->in_proj, $this->out_proj); 412 $shape->project($this->in_proj, $this->out_proj);
temas/biomashp.map
@@ -5,8 +5,12 @@ FONTSET "../symbols/fontes.txt" @@ -5,8 +5,12 @@ FONTSET "../symbols/fontes.txt"
5 DATA "c:\ms4w\apache\htdocs\geodados\brasil\vegetacao\biomas.shp" 5 DATA "c:\ms4w\apache\htdocs\geodados\brasil\vegetacao\biomas.shp"
6 METADATA 6 METADATA
7 "CLASSE" "SIM" 7 "CLASSE" "SIM"
  8 + "permitekmz" "sim"
  9 + "permitedownload" "sim"
8 "download" "SIM" 10 "download" "SIM"
9 "arquivodownload" "C:\ms4w\Apache\htdocs\geodados\brasil\vegetacao\vegetacao.zip" 11 "arquivodownload" "C:\ms4w\Apache\htdocs\geodados\brasil\vegetacao\vegetacao.zip"
  12 + "permiteogc" ""
  13 + "permitekml" "sim"
10 "TEMA" "Biomas shapefile" 14 "TEMA" "Biomas shapefile"
11 END 15 END
12 NAME "biomashp" 16 NAME "biomashp"