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 | 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
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" | ... | ... |