Commit 6c64b69b888ac8ec6d79dafa3ec7dd00f52365b6
1 parent
1c78df8d
Exists in
master
and in
7 other branches
Nova opção para salvar um layer diretamente da árvore de camadas. Essa opção só …
…fica ativa para usuários editores
Showing
7 changed files
with
238 additions
and
25 deletions
Show diff stats
admin/admin.db
No preview for this file type
894 Bytes
admin/php/editormapfile.php
| ... | ... | @@ -92,7 +92,7 @@ switch (strtoupper($funcao)) |
| 92 | 92 | {JSON} |
| 93 | 93 | */ |
| 94 | 94 | case "EDITASIMBOLO": |
| 95 | - include_once("../../classesphp/classe_legenda.php"); | |
| 95 | + include_once("$locaplic/classesphp/classe_legenda.php"); | |
| 96 | 96 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) |
| 97 | 97 | {$map_file = $locaplic."/aplicmap/geral1windows.map";} |
| 98 | 98 | else |
| ... | ... | @@ -203,7 +203,7 @@ switch (strtoupper($funcao)) |
| 203 | 203 | } |
| 204 | 204 | else |
| 205 | 205 | { |
| 206 | - unlink("../../temas/".$codigoMap.".map"); | |
| 206 | + unlink("$locaplic/temas/".$codigoMap.".map"); | |
| 207 | 207 | $tabela = "i3geoadmin_temas"; |
| 208 | 208 | exclui(); |
| 209 | 209 | retornaJSON("ok"); |
| ... | ... | @@ -211,6 +211,29 @@ switch (strtoupper($funcao)) |
| 211 | 211 | } |
| 212 | 212 | break; |
| 213 | 213 | /* |
| 214 | + Valor: REFAZERLAYER | |
| 215 | + | |
| 216 | + Altera um layer existente em um mapfile com base em um layer existente em outro mapfile | |
| 217 | + | |
| 218 | + Parametros: | |
| 219 | + | |
| 220 | + codigomap {string} - nome do mapfile existente em i3geo/temas que será atualizado (sem .map) | |
| 221 | + | |
| 222 | + maporigem {string} - nome completo do arquivo mapfile que contem o layer que será utilizado para alterar o original | |
| 223 | + | |
| 224 | + nomelayer {string} - código do layer em mapfile que será utilizado para atualizar codigoMap | |
| 225 | + | |
| 226 | + Retorno: | |
| 227 | + | |
| 228 | + {JSON} | |
| 229 | + */ | |
| 230 | + case "REFAZERLAYER": | |
| 231 | + if(verificaEditores($editores) == "nao") | |
| 232 | + {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} | |
| 233 | + retornaJSON(refazerLayer()); | |
| 234 | + exit; | |
| 235 | + break; | |
| 236 | + /* | |
| 214 | 237 | Valor: CRIARNOVOLAYER |
| 215 | 238 | |
| 216 | 239 | Cria um novo layer em um mapfile |
| ... | ... | @@ -911,6 +934,26 @@ switch (strtoupper($funcao)) |
| 911 | 934 | exit; |
| 912 | 935 | break; |
| 913 | 936 | } |
| 937 | +function refazerLayer() | |
| 938 | +{ | |
| 939 | + global $nomelayer, $codigomap, $maporigem, $locaplic; | |
| 940 | + error_reporting(E_ALL); | |
| 941 | + $mapa = ms_newMapObj($maporigem); | |
| 942 | + $arqtema = $locaplic."/temas/".$codigomap.".map"; | |
| 943 | + $mapatema = ms_newMapObj($arqtema); | |
| 944 | + $layeroriginal = @$mapatema->getlayerbyname($codigomap); | |
| 945 | + $layernovo = @$mapa->getlayerbyname($nomelayer); | |
| 946 | + if($layeroriginal != "" && $layernovo != "") | |
| 947 | + { | |
| 948 | + $layeroriginal->set("status",MS_DELETE); | |
| 949 | + $nl = ms_newLayerObj($mapatema,$layernovo); | |
| 950 | + $nl->set("name",$codigomap); | |
| 951 | + $mapatema->save($arqtema); | |
| 952 | + removeCabecalho($arqtema); | |
| 953 | + return array("data"=>"ok"); | |
| 954 | + } | |
| 955 | + return "erro"; | |
| 956 | +} | |
| 914 | 957 | function sobeDesce() |
| 915 | 958 | { |
| 916 | 959 | global $movimento,$tipo,$codigoMap,$codigoLayer,$indiceClasse,$indiceEstilo,$locaplic; |
| ... | ... | @@ -997,7 +1040,7 @@ function criarNovoMap() |
| 997 | 1040 | function criarNovoLayer() |
| 998 | 1041 | { |
| 999 | 1042 | global $locaplic,$codigoMap; |
| 1000 | - include_once("../../classesphp/funcoes_gerais.php"); | |
| 1043 | + include_once("$locaplic/classesphp/funcoes_gerais.php"); | |
| 1001 | 1044 | $mapfile = $locaplic."/temas/".$codigoMap.".map"; |
| 1002 | 1045 | $mapa = ms_newMapObj($mapfile); |
| 1003 | 1046 | $nl = ms_newLayerObj($mapa); |
| ... | ... | @@ -1011,7 +1054,7 @@ function autoClassesLayer() |
| 1011 | 1054 | { |
| 1012 | 1055 | global $codigoMap,$codigoLayer,$itemExpressao,$itemNome,$locaplic,$dir_tmp; |
| 1013 | 1056 | $mapfile = $locaplic."/temas/".$codigoMap.".map"; |
| 1014 | - include_once("../../classesphp/classe_alteraclasse.php"); | |
| 1057 | + include_once("$locaplic/classesphp/classe_alteraclasse.php"); | |
| 1015 | 1058 | error_reporting(0); |
| 1016 | 1059 | $nometemp = $dir_tmp."/".nomerandomico().".map"; |
| 1017 | 1060 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) | ... | ... |
classesjs/dicionario_ajuda.js
| ... | ... | @@ -778,6 +778,14 @@ g_traducao_ajuda = { |
| 778 | 778 | pt:"Aplica um arquivo XML, no formato SLD, ao tema ativo.", |
| 779 | 779 | complemento:"SLD é um formato padrão que permite definir filtros e simbologia. Vários softwraes permitem criar arquivos nesse padrão.", |
| 780 | 780 | apijs:"i3GEO.tema.dialogo.aplicarsld()" |
| 781 | + }, | |
| 782 | + "92": { | |
| 783 | + titulo: "Aplicar SLD", | |
| 784 | + diretorio:"i3geo/ferramentas/salvamapfile", | |
| 785 | + categoria:"5", | |
| 786 | + pt:"Salva as definições da camada no arquivo mapfile de origem", | |
| 787 | + complemento:"Essa opção só é ativada para usuários que são administradores. Permite que a camada seja alterada, por exemplo, modificando-se a legenda, e que o resultado seja salvo nas definições originais da camada.", | |
| 788 | + apijs:"i3GEO.tema.dialogo.salvaMapfile()" | |
| 781 | 789 | } |
| 782 | 790 | } |
| 783 | 791 | }; | ... | ... |
classesphp/classe_temas.php
| ... | ... | @@ -1030,6 +1030,20 @@ Retorna o SLD correspondente à legenda do tema. |
| 1030 | 1030 | return $this->layer->generateSLD(); |
| 1031 | 1031 | } |
| 1032 | 1032 | /* |
| 1033 | +function: peganomelayer | |
| 1034 | + | |
| 1035 | +Retorna o nome do layer e outros dados relacionados | |
| 1036 | +*/ | |
| 1037 | + function peganomelayer() | |
| 1038 | + { | |
| 1039 | + if(!$this->layer){return "erro";} | |
| 1040 | + $nomeoriginal = $this->layer->getmetadata("nomeoriginal"); | |
| 1041 | + $nomearquivo = $this->locaplic."/temas/".$nomeoriginal; | |
| 1042 | + if(!file_exists($nomearquivo)) | |
| 1043 | + {$nomearquivo = "";} | |
| 1044 | + return array("mapfile"=>$this->arquivo,"nomeoriginal"=>$nomeoriginal,"nomelayer"=>$this->layer->name,"nomearquivo"=>$nomearquivo); | |
| 1045 | + } | |
| 1046 | +/* | |
| 1033 | 1047 | function: pegadata |
| 1034 | 1048 | |
| 1035 | 1049 | Retorna o valor do elemento DATA | ... | ... |
| ... | ... | @@ -0,0 +1,147 @@ |
| 1 | +<?php error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header("Content-type: text/javascript"); ?> | |
| 2 | +/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */ | |
| 3 | + | |
| 4 | +/* | |
| 5 | +Title: Salva as definições de uma camada no arquivo mapfile correspondente | |
| 6 | + | |
| 7 | +Veja: | |
| 8 | + | |
| 9 | +<i3GEO.tema.dialogo.salvamapfile> | |
| 10 | + | |
| 11 | +Arquivo: | |
| 12 | + | |
| 13 | +i3geo/ferramentas/salvamapfile/index.js.php | |
| 14 | + | |
| 15 | +Licenca: | |
| 16 | + | |
| 17 | +GPL2 | |
| 18 | + | |
| 19 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
| 20 | + | |
| 21 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
| 22 | +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br | |
| 23 | + | |
| 24 | +Este programa é software livre; você pode redistribuí-lo | |
| 25 | +e/ou modificá-lo sob os termos da Licença Pública Geral | |
| 26 | +GNU conforme publicada pela Free Software Foundation; | |
| 27 | + | |
| 28 | +Este programa é distribuído na expectativa de que seja útil, | |
| 29 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
| 30 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
| 31 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | |
| 32 | +Você deve ter recebido uma cópia da Licença Pública Geral do | |
| 33 | +GNU junto com este programa; se não, escreva para a | |
| 34 | +Free Software Foundation, Inc., no endereço | |
| 35 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 36 | +*/ | |
| 37 | +if(typeof(i3GEOF) === 'undefined'){ | |
| 38 | + i3GEOF = []; | |
| 39 | +} | |
| 40 | +/* | |
| 41 | +Classe: i3GEOF.salvamapfile | |
| 42 | +*/ | |
| 43 | +i3GEOF.salvamapfile = { | |
| 44 | + /* | |
| 45 | + Variavel: aguarde | |
| 46 | + | |
| 47 | + Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. | |
| 48 | + */ | |
| 49 | + aguarde: "", | |
| 50 | + /* | |
| 51 | + Variavel: tema | |
| 52 | + | |
| 53 | + código do tema | |
| 54 | + */ | |
| 55 | + tema: i3GEO.temaAtivo, | |
| 56 | + /* | |
| 57 | + Function: inicia | |
| 58 | + | |
| 59 | + Inicia a ferramenta. É chamado por criaJanelaFlutuante | |
| 60 | + | |
| 61 | + Parametro: | |
| 62 | + | |
| 63 | + iddiv {String} - id do div que receberá o conteudo HTML da ferramenta | |
| 64 | + */ | |
| 65 | + inicia: function(iddiv){ | |
| 66 | + try{ | |
| 67 | + i3GEOF.salvamapfile.aguarde.visibility = "visible"; | |
| 68 | + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=peganomelayer&tema="+i3GEOF.salvamapfile.tema, | |
| 69 | + cp = new cpaint(), | |
| 70 | + retorno = function(retorno){ | |
| 71 | + i3GEOF.salvamapfile.aguarde.visibility = "hidden"; | |
| 72 | + var nome = retorno.data.nomeoriginal; | |
| 73 | + if(nome == "") | |
| 74 | + { | |
| 75 | + $i(iddiv).innerHTML = "<p class=paragrafo >Não existe um arquivo mapfile em i3geo/temas já criado para essa camada. Utilize o sistema de admnistração para <a href='"+i3GEO.configura.locaplic+"/admin/html/editormapfile.html' target=_blank >criar um</a>" | |
| 76 | + } | |
| 77 | + else | |
| 78 | + { | |
| 79 | + var ins = "<p class=paragrafo >O tema ativo possui um mapfile já criado. Ao salvar, as definições originais de legenda, filtros e outras, serão substituídas pelas atuais</p>" + | |
| 80 | + '<br><br><p class=paragrafo ><input size=20 id=i3GEOsalvamapfilebotao1 type=button value="Salvar" /> <input size=20 id=i3GEOsalvamapfilebotao2 type=button value="Testar" />'; | |
| 81 | + $i(iddiv).innerHTML = ins; | |
| 82 | + new YAHOO.widget.Button( | |
| 83 | + "i3GEOsalvamapfilebotao1", | |
| 84 | + {onclick:{fn: function(){i3GEOF.salvamapfile.salva(nome,retorno.data.mapfile,retorno.data.nomelayer);}}} | |
| 85 | + ); | |
| 86 | + new YAHOO.widget.Button( | |
| 87 | + "i3GEOsalvamapfilebotao2", | |
| 88 | + {onclick:{fn: function(){window.open(i3GEO.configura.locaplic+"/testamapfile.php?map="+nome);}}} | |
| 89 | + ); | |
| 90 | + } | |
| 91 | + }; | |
| 92 | + cp.set_response_type("JSON"); | |
| 93 | + cp.call(p,"",retorno); | |
| 94 | + } | |
| 95 | + catch(erro){alert(erro);} | |
| 96 | + }, | |
| 97 | + /* | |
| 98 | + Function: criaJanelaFlutuante | |
| 99 | + | |
| 100 | + Cria a janela flutuante para controle da ferramenta. | |
| 101 | + */ | |
| 102 | + criaJanelaFlutuante: function(){ | |
| 103 | + var janela,divid,temp,titulo,cabecalho,minimiza; | |
| 104 | + cabecalho = function(){}; | |
| 105 | + minimiza = function(){ | |
| 106 | + i3GEO.janela.minimiza("i3GEOF.salvamapfile"); | |
| 107 | + }; | |
| 108 | + //cria a janela flutuante | |
| 109 | + titulo = "Salva o tema "+i3GEO.temaAtivo+" <a class=ajuda_usuario target=_blank href='" + i3GEO.configura.locaplic + "/ajuda_usuario.php?idcategoria=5&idajuda=92' > </a>"; | |
| 110 | + janela = i3GEO.janela.cria( | |
| 111 | + "300px", | |
| 112 | + "150px", | |
| 113 | + "", | |
| 114 | + "", | |
| 115 | + "", | |
| 116 | + titulo, | |
| 117 | + "i3GEOF.salvamapfile", | |
| 118 | + false, | |
| 119 | + "hd", | |
| 120 | + cabecalho, | |
| 121 | + minimiza | |
| 122 | + ); | |
| 123 | + divid = janela[2].id; | |
| 124 | + $i("i3GEOF.salvamapfile_corpo").style.backgroundColor = "white"; | |
| 125 | + $i("i3GEOF.salvamapfile_corpo").style.textAlign = "left"; | |
| 126 | + i3GEOF.salvamapfile.aguarde = $i("i3GEOF.salvamapfile_imagemCabecalho").style; | |
| 127 | + i3GEOF.salvamapfile.inicia(divid); | |
| 128 | + }, | |
| 129 | + /* | |
| 130 | + Function: salva | |
| 131 | + | |
| 132 | + Salva o mapfile | |
| 133 | + */ | |
| 134 | + salva: function(nome,mapfile,nomelayer){ | |
| 135 | + if(i3GEOF.salvamapfile.aguarde.visibility === "visible") | |
| 136 | + {return;} | |
| 137 | + i3GEOF.salvamapfile.aguarde.visibility = "visible"; | |
| 138 | + var temp = function(){ | |
| 139 | + i3GEOF.salvamapfile.aguarde.visibility = "hidden"; | |
| 140 | + }, | |
| 141 | + p = i3GEO.configura.locaplic+"/admin/php/editormapfile.php?funcao=REFAZERLAYER&codigomap="+nome+"&maporigem="+mapfile+"&nomelayer="+nomelayer, | |
| 142 | + cp = new cpaint(); | |
| 143 | + cp.set_response_type("JSON"); | |
| 144 | + cp.call(p,"",temp); | |
| 145 | + } | |
| 146 | +}; | |
| 147 | +<?php error_reporting(0);if(extension_loaded('zlib')){ob_end_flush();}?> | |
| 0 | 148 | \ No newline at end of file | ... | ... |
temas/biomashp.map
| 1 | 1 | MAP |
| 2 | - FONTSET "c:\ms4w\apache\htdocs\i3geo/symbols/fontes.txt" | |
| 3 | - SYMBOLSET "c:\ms4w\apache\htdocs\i3geo/symbols/simbolos.sym" | |
| 2 | + FONTSET "c:\ms4w\apache\htdocs\i3geo/symbols/fontes.txt" | |
| 3 | + SYMBOLSET "c:\ms4w\apache\htdocs\i3geo/symbols/simbolos.sym" | |
| 4 | 4 | LAYER |
| 5 | 5 | CONNECTION "" |
| 6 | 6 | DATA "c:\ms4w\apache\htdocs\geodados\brasil\vegetacao\biomas.shp" |
| ... | ... | @@ -19,6 +19,7 @@ MAP |
| 19 | 19 | "ltempoitemtitulo" "" |
| 20 | 20 | "ltempoitemlink" "" |
| 21 | 21 | "palletefile" "" |
| 22 | + "nomeoriginal" "biomashp" | |
| 22 | 23 | "permitedownload" "sim" |
| 23 | 24 | "ltempoformatodata" "" |
| 24 | 25 | "ltempoitemicone" "" |
| ... | ... | @@ -31,69 +32,69 @@ MAP |
| 31 | 32 | "ltempoitemfim" "" |
| 32 | 33 | END |
| 33 | 34 | NAME "biomashp" |
| 34 | - STATUS OFF | |
| 35 | + STATUS DEFAULT | |
| 35 | 36 | TEMPLATE "none.htm" |
| 36 | 37 | OPACITY 50 |
| 37 | 38 | TYPE POLYGON |
| 38 | 39 | UNITS METERS |
| 39 | 40 | CLASS |
| 40 | 41 | NAME "CAATINGA" |
| 41 | - EXPRESSION ('[ID]'eq'2.00') | |
| 42 | + EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') | |
| 42 | 43 | STYLE |
| 43 | 44 | ANGLE 360 |
| 44 | - COLOR 138 134 150 | |
| 45 | - OPACITY 100 | |
| 45 | + COLOR 214 54 97 | |
| 46 | 46 | SYMBOL 0 |
| 47 | + WIDTH 1 | |
| 47 | 48 | END |
| 48 | 49 | END |
| 49 | 50 | CLASS |
| 50 | 51 | NAME "PAMPA" |
| 51 | - EXPRESSION ('[ID]'eq'5.00') | |
| 52 | + EXPRESSION ('[CD_LEGENDA]'eq'PAMPA') | |
| 52 | 53 | STYLE |
| 53 | 54 | ANGLE 360 |
| 54 | - COLOR 105 219 217 | |
| 55 | - OPACITY 100 | |
| 55 | + COLOR 127 191 202 | |
| 56 | 56 | SYMBOL 0 |
| 57 | + WIDTH 1 | |
| 57 | 58 | END |
| 58 | 59 | END |
| 59 | 60 | CLASS |
| 60 | 61 | NAME "CERRADO" |
| 61 | - EXPRESSION ('[ID]'eq'3.00') | |
| 62 | + EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') | |
| 62 | 63 | STYLE |
| 63 | 64 | ANGLE 360 |
| 64 | - COLOR 186 52 176 | |
| 65 | - OPACITY 100 | |
| 65 | + COLOR 244 126 198 | |
| 66 | 66 | SYMBOL 0 |
| 67 | + WIDTH 1 | |
| 67 | 68 | END |
| 68 | 69 | END |
| 69 | 70 | CLASS |
| 70 | 71 | NAME "PANTANAL" |
| 71 | - EXPRESSION ('[ID]'eq'6.00') | |
| 72 | + EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') | |
| 72 | 73 | STYLE |
| 73 | 74 | ANGLE 360 |
| 74 | - COLOR 125 128 2 | |
| 75 | - OPACITY 100 | |
| 75 | + COLOR 146 148 168 | |
| 76 | 76 | SYMBOL 0 |
| 77 | + WIDTH 1 | |
| 77 | 78 | END |
| 78 | 79 | END |
| 79 | 80 | CLASS |
| 80 | 81 | NAME "AMAZONIA" |
| 81 | - EXPRESSION ('[ID]'eq'1.00') | |
| 82 | + EXPRESSION ('[CD_LEGENDA]'eq'AMAZONIA') | |
| 82 | 83 | STYLE |
| 83 | 84 | ANGLE 360 |
| 84 | - COLOR 129 234 3 | |
| 85 | - OPACITY 100 | |
| 85 | + COLOR 195 147 81 | |
| 86 | 86 | SYMBOL 0 |
| 87 | + WIDTH 1 | |
| 87 | 88 | END |
| 88 | 89 | END |
| 89 | 90 | CLASS |
| 90 | 91 | NAME "MATA ATLANTICA" |
| 91 | - EXPRESSION ('[ID]'eq'4.00') | |
| 92 | + EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLANTICA') | |
| 92 | 93 | STYLE |
| 93 | 94 | ANGLE 360 |
| 94 | - COLOR 159 226 219 | |
| 95 | - OPACITY 100 | |
| 95 | + COLOR 240 245 39 | |
| 96 | 96 | SYMBOL 0 |
| 97 | + WIDTH 1 | |
| 97 | 98 | END |
| 98 | 99 | END |
| 99 | 100 | END | ... | ... |