Commit b8458851db054ec833a026a1fb41cde3bf7331e6
1 parent
711d30a2
Exists in
master
and in
7 other branches
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.
Showing
7 changed files
with
100 additions
and
6 deletions
Show diff stats
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
ogc.php
@@ -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" |