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