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