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 874  
875 875 function removeCabecalho($arq,$symbolset=true)
876 876 {
877   - global $postgis_mapa;
878   - restauraCon($arq,$postgis_mapa);
879 877 $handle = fopen($arq, "r");
880 878 if ($handle)
881 879 {
  880 + $cabeca = array();
882 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 887 $grava = false;
889 888 while (!feof($handle))
890 889 {
891 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 898 if(strtoupper(trim($linha)) == "LAYER")
893 899 {$grava = true;}
894 900 if($grava)
... ... @@ -896,6 +902,7 @@ function removeCabecalho($arq,$symbolset=true)
896 902 }
897 903 fclose($handle);
898 904 }
  905 + $final = array_merge($cabeca,$final);
899 906 $handle = fopen($arq, "w+");
900 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 728 */
729 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 732 //error_reporting(E_ALL);
733 733 try
734 734 {
... ... @@ -747,6 +747,28 @@ function alteraTemas()
747 747 else
748 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 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 773 else
752 774 {
... ... @@ -1066,4 +1088,59 @@ function importarXmlMenu()
1066 1088 $dbh = null;
1067 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 1147 \ No newline at end of file
... ...
classesphp/funcoes_gerais.php
... ... @@ -1725,6 +1725,8 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp)
1725 1725 foreach ($temastemp as $tt)
1726 1726 {
1727 1727 $ll = $maptemp->getlayerbyname($tt);
  1728 + $permite = $l->getmetadata("permitedownload");
  1729 + if($permite != "nao")
1728 1730 ms_newLayerObj($map, $ll);
1729 1731 }
1730 1732 }
... ...
menutemas/admin.db
No preview for this file type
ogc.php
... ... @@ -201,6 +201,8 @@ if ($tipo == "" || $tipo == "metadados")
201 201 }
202 202 }
203 203 autoClasses(&$l,$oMap);
  204 + $permite = $l->getmetadata("permiteogc");
  205 + if($permite != "nao")
204 206 ms_newLayerObj($oMap, $l);
205 207 }
206 208 }
... ...
pacotes/kmlmapserver/classes/layerserver.class.php
... ... @@ -405,6 +405,8 @@ class LayerServer {
405 405 * Process the shape
406 406 */
407 407 function process_shape(&$layer, &$shape, &$class_list, &$folder, &$namecol){
  408 + $permite = $layer->getmetadata("permitekmz");
  409 + if($permite == "nao"){return;}
408 410 $itens = $layer->getmetadata("itens");
409 411 $itensdesc = $layer->getmetadata("itensdesc");
410 412 $shape->project($this->in_proj, $this->out_proj);
... ...
temas/biomashp.map
... ... @@ -5,8 +5,12 @@ FONTSET "../symbols/fontes.txt"
5 5 DATA "c:\ms4w\apache\htdocs\geodados\brasil\vegetacao\biomas.shp"
6 6 METADATA
7 7 "CLASSE" "SIM"
  8 + "permitekmz" "sim"
  9 + "permitedownload" "sim"
8 10 "download" "SIM"
9 11 "arquivodownload" "C:\ms4w\Apache\htdocs\geodados\brasil\vegetacao\vegetacao.zip"
  12 + "permiteogc" ""
  13 + "permitekml" "sim"
10 14 "TEMA" "Biomas shapefile"
11 15 END
12 16 NAME "biomashp"
... ...