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