Commit 3dc1e0838c3b1e2f49699cf7aa6cf82eeaa10806

Authored by Edmar Moretti
1 parent 4e6c4c65

Inclusão das funções que salvam e recuperam graficos no mapfile em uso

admin/admin.db
No preview for this file type
admin/php/mapas.php
... ... @@ -23,7 +23,7 @@ Este programa é distribuído na expectativa de que seja útil
23 23 porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
24 24 de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
25 25 Consulte a Licença Pública Geral do GNU para mais detalhes.
26   -Você deve ter recebido uma cópia da Licença Pública Geral do
  26 +Você deve ter recebido uma cópia da Licença Pública Geral do
27 27 GNU junto com este programa; se não, escreva para a
28 28 Free Software Foundation, Inc., no endereço
29 29 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
... ... @@ -36,7 +36,7 @@ Parametros:
36 36  
37 37 O parâmetro principal é "funcao", que define qual operação será executada, por exemplo, mapas.php?funcao=pegamapas.
38 38  
39   -Cada operação possuí seus próprios parâmetros, que devem ser enviados também na requisição da operação.
  39 +Cada operação possuí seus próprios parâmetros, que devem ser enviados também na requisição da operação.
40 40  
41 41 */
42 42  
... ... @@ -162,7 +162,7 @@ switch (strtoupper($funcao))
162 162  
163 163 titulo {string} - titulo do mapa
164 164  
165   - mapfile {string} - mapfile na pasta temporária
  165 + mapfile {string} - mapfile na pasta temporária
166 166  
167 167 Retorno:
168 168  
... ... @@ -174,7 +174,7 @@ switch (strtoupper($funcao))
174 174 break;
175 175 }
176 176 function salvaMapfile(){
177   - global $esquemaadmin,$nome_mapa,$arqmapfile,$url,$id_mapa,$preferenciasbase64,$geometriasbase64;
  177 + global $esquemaadmin,$nome_mapa,$arqmapfile,$url,$id_mapa,$preferenciasbase64,$geometriasbase64,$graficosbase64;
178 178 //as preferencias sao criadas via javascript e guardadas junto com o mapa
179 179 try{
180 180 //
... ... @@ -186,9 +186,10 @@ function salvaMapfile(){
186 186 //o parser para reconstruir os valores e feito em javascript, no cliente
187 187 //
188 188 $customizacoesinit = array();
189   - if(isset($preferenciasbase64) || isset($geometriasbase64)){
  189 + if(isset($preferenciasbase64) || isset($geometriasbase64) || isset($graficosbase64)){
190 190 $customizacoesinit[] = '"preferenciasbase64":"'.$preferenciasbase64.'"';
191 191 $customizacoesinit[] = '"geometriasbase64":"'.$geometriasbase64.'"';
  192 + $customizacoesinit[] = '"graficosbase64":"'.$graficosbase64.'"';
192 193 $m = ms_newMapObj($arqmapfile);
193 194 $m->setmetadata("CUSTOMIZACOESINIT",'{'.implode(",",$customizacoesinit).'}');
194 195 $m->save($arqmapfile);
... ...
classesjs/classe_i3geo.js
... ... @@ -341,6 +341,7 @@ var i3GEO = {
341 341 //
342 342 //obtem os parametros que foram armazenados ao salvar o mapa
343 343 //caso o mapa atual tenha sido recuperado do banco de dados
  344 + //os parametros sao armazenados em base64 no objeto metadata do mapfile
344 345 //
345 346 if(retorno.data.customizacoesinit){
346 347 preferencias = YAHOO.lang.JSON.parse(retorno.data.customizacoesinit);
... ... @@ -390,8 +391,15 @@ var i3GEO = {
390 391 //caso o mapa atual tenha sido recuperado do banco de dados
391 392 //
392 393 if(retorno.data.customizacoesinit){
393   - temp = i3GEO.util.base64decode(preferencias.geometriasbase64);
394   - i3GEO.mapa.desCompactaLayerGrafico(temp);
  394 + //recupera os layers graficos
  395 + if(preferencias.geometriasbase64 && preferencias.geometriasbase64 != ""){
  396 + temp = i3GEO.util.base64decode(preferencias.geometriasbase64);
  397 + i3GEO.mapa.desCompactaLayerGrafico(temp);
  398 + }
  399 + //recupera os graficos
  400 + if(preferencias.graficosbase64 && preferencias.graficosbase64 != ""){
  401 + i3GEO.mapa.restauraGraficos(preferencias.graficosbase64);
  402 + }
395 403 }
396 404 }
397 405 else
... ...
classesjs/classe_mapa.js
... ... @@ -35,1162 +35,1219 @@ GNU junto com este programa; se não, escreva para a
35 35 Free Software Foundation, Inc., no endereço
36 36 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
37 37  
38   -*/
39   -if(typeof(i3GEO) === 'undefined'){
  38 + */
  39 +if (typeof (i3GEO) === 'undefined') {
40 40 var i3GEO = {};
41 41 }
42   -i3GEO.mapa = {
43   - /*
44   - Propriedade: TEMASINICIAISLIGADOS
45   -
46   - Lista indicando quais temas serao adicionados ao mapa na inicializacao
47   -
48   - Esse valor e utilizado para completar a variavel mashuppar utilizada por i3GEO.
49   -
50   - Os temas sao aqueles que aparecem em i3geo/temas
51   -
52   - Type:
53   - {string}
54   -
55   - Default:
56   - {}
57   - */
58   - TEMASINICIAISLIGADOS: "",
59   - /*
60   - Propriedade: TEMASINICIAISLIGADOS
61   -
62   - Lista indicando quais temas serao ligados na inicializacao
63   -
64   - Esse valor e utilizado para completar a variavel mashuppar utilizada por i3GEO.
65   -
66   - Os temas sao aqueles que aparecem em i3geo/temas
67   -
68   - Type:
69   - {string}
70   -
71   - Default:
72   - {}
73   - */
74   - TEMASINICIAIS: "",
75   - /*
76   - Propriedade: AUTORESIZE
77   -
78   - Indica se o tamanho do mapa sera ajustado toda vez que o navegador for redimensionado
79   -
80   - Type:
81   - {boolean}
82   -
83   - Default:
84   - {false}
85   - */
86   - AUTORESIZE: false,
87   - /*
88   - Armazena o nome dos objetos geoXml adicionados ao mapa pela API do google maps
89   -
90   - Tipo:
91   - {Array}
92   - */
93   - GEOXML: [],
94   - /*
95   - Function: insereDobraPagina
96   -
97   - Insere o icone do tipo "dobra de pagina" que permite alterar o renderizador do mapa
98   -
99   - Parametros:
100   -
101   - tipo {string} - tipo de icone googlemaps|openlayers
102   -
103   - imagem {string} - endereco da imagem que sera utilizada no icone
104   - */
105   - insereDobraPagina: function(tipo,imagem){
106   - var novoel = $i("i3GEOdobraPagina");
107   - if(!novoel){
108   - novoel = document.createElement("img");
109   - }
110   - novoel.src = imagem;
111   - novoel.id = "i3GEOdobraPagina";
112   - if(tipo === "googlemaps"){
113   - novoel.onclick = function(evt){
114   - i3GEO.Interface.atual2gm.inicia();
115   - };
116   - }
117   - if(tipo === "openlayers"){
118   - novoel.onclick = function(evt){
119   - i3GEO.Interface.atual2ol.inicia();
120   - };
121   - }
122   - novoel.style.cursor = "pointer";
123   - novoel.style.position = "absolute";
124   - novoel.style.top = i3GEO.parametros.h - 35 + "px";
125   - novoel.style.zIndex = "50000";
126   - novoel.style.left = i3GEO.parametros.w - 35 + "px";
127   - $i(i3GEO.Interface.IDMAPA).appendChild(novoel);
128   - YAHOO.util.Event.addListener("i3GEOdobraPagina", "click", YAHOO.util.Event.stopPropagation);
129   - YAHOO.util.Event.addListener("i3GEOdobraPagina", "click", YAHOO.util.Event.preventDefault);
130   - },
131   - /*
132   - Reposiciona o icone do tipo "dobra de pagina"
133   - */
134   - reposicionaDobraPagina: function(){
135   - var novoel = $i("i3GEOdobraPagina");
136   - if(!novoel){
137   - return;
138   - }
139   - novoel.style.top = i3GEO.parametros.h - 35 + "px";
140   - novoel.style.left = i3GEO.parametros.w - 35 + "px";
141   - },
142   - /*
143   - Ativa o redimensionamento automatico do mapa sempre que o navegador for redimensionado
144   -
145   - e definido como um evento do elemento window
146   - */
147   - ativaAutoResize: function(){
148   - window.onresize = function(){
149   - var Dw,Dh, r = false;
150   - Dw = YAHOO.util.Dom.getViewportWidth();
151   - Dh = YAHOO.util.Dom.getViewportHeight();
152   - if(Math.abs(Dw - i3GEO.tamanhodoc[0]) > 50){
153   - r = true;
  42 +i3GEO.mapa =
  43 + {
  44 + /*
  45 + * Propriedade: TEMASINICIAISLIGADOS
  46 + *
  47 + * Lista indicando quais temas serao adicionados ao mapa na inicializacao
  48 + *
  49 + * Esse valor e utilizado para completar a variavel mashuppar utilizada por i3GEO.
  50 + *
  51 + * Os temas sao aqueles que aparecem em i3geo/temas
  52 + *
  53 + * Type: {string}
  54 + *
  55 + * Default: {}
  56 + */
  57 + TEMASINICIAISLIGADOS : "",
  58 + /*
  59 + * Propriedade: TEMASINICIAISLIGADOS
  60 + *
  61 + * Lista indicando quais temas serao ligados na inicializacao
  62 + *
  63 + * Esse valor e utilizado para completar a variavel mashuppar utilizada por i3GEO.
  64 + *
  65 + * Os temas sao aqueles que aparecem em i3geo/temas
  66 + *
  67 + * Type: {string}
  68 + *
  69 + * Default: {}
  70 + */
  71 + TEMASINICIAIS : "",
  72 + /*
  73 + * Propriedade: AUTORESIZE
  74 + *
  75 + * Indica se o tamanho do mapa sera ajustado toda vez que o navegador for redimensionado
  76 + *
  77 + * Type: {boolean}
  78 + *
  79 + * Default: {false}
  80 + */
  81 + AUTORESIZE : false,
  82 + /*
  83 + * Armazena o nome dos objetos geoXml adicionados ao mapa pela API do google maps
  84 + *
  85 + * Tipo: {Array}
  86 + */
  87 + GEOXML : [],
  88 + /*
  89 + * Function: insereDobraPagina
  90 + *
  91 + * Insere o icone do tipo "dobra de pagina" que permite alterar o renderizador do mapa
  92 + *
  93 + * Parametros:
  94 + *
  95 + * tipo {string} - tipo de icone googlemaps|openlayers
  96 + *
  97 + * imagem {string} - endereco da imagem que sera utilizada no icone
  98 + */
  99 + insereDobraPagina : function(tipo, imagem) {
  100 + var novoel = $i("i3GEOdobraPagina");
  101 + if (!novoel) {
  102 + novoel = document.createElement("img");
154 103 }
155   - if(Math.abs(Dh - i3GEO.tamanhodoc[1]) > 50){
156   - r = true;
  104 + novoel.src = imagem;
  105 + novoel.id = "i3GEOdobraPagina";
  106 + if (tipo === "googlemaps") {
  107 + novoel.onclick = function(evt) {
  108 + i3GEO.Interface.atual2gm.inicia();
  109 + };
157 110 }
158   - if(r === false)
159   - {return;}
160   - i3GEO.tamanhodoc = [Dw,Dh];
161   - setTimeout(function(){
162   - i3GEO.reCalculaTamanho();
163   - i3GEO.barraDeBotoes.recria("i3geo_barra2");
164   - if(i3GEO.Interface.TABLET === true)
165   - {i3GEO.guias.escondeGuias();return;}
166   - if(i3GEO.guias.TIPO === "movel")
167   - {i3GEO.guias.guiaMovel.reposiciona();}
168   - else
169   - {i3GEO.guias.ajustaAltura();}
170   - i3GEO.mapa.reposicionaDobraPagina();
171   - },2000);
172   - };
173   - },
174   - /*
175   - Ajusta o posicionamento do corpo do mapa
176   -
177   - Esse ajuste e necessario na inicializacao, uma vez que o mapa utiliza style.position='absolute'
178   -
179   - Parameters:
180   -
181   - elemento {String} - id do elemento HTML que devera ser ajustado e que contem o mapa
182   - */
183   - ajustaPosicao: function(elemento){
184   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.ajustaPosicao()");}
185   - if(arguments.length === 0){return;}
186   - var imagemxi = 0,
187   - imagemyi = 0,
188   - dc = $i(elemento),
189   - c;
190   - if(!dc){return;}
191   - try{
192   - while ((dc.offsetParent) && (dc.offsetParent.id !== "i3geo")){
193   - dc = dc.offsetParent;
194   - imagemxi += dc.offsetLeft;
195   - imagemyi += dc.offsetTop;
  111 + if (tipo === "openlayers") {
  112 + novoel.onclick = function(evt) {
  113 + i3GEO.Interface.atual2ol.inicia();
  114 + };
196 115 }
197   - c = $i(i3GEO.Interface.IDCORPO);
198   - if (c){
199   - c.style.position="absolute";
200   - if(navm)
201   - {$left(i3GEO.Interface.IDCORPO,imagemxi - 1);}
202   - else
203   - {$left(i3GEO.Interface.IDCORPO,imagemxi);}
204   - $top(i3GEO.Interface.IDCORPO,imagemyi);
  116 + novoel.style.cursor = "pointer";
  117 + novoel.style.position = "absolute";
  118 + novoel.style.top = i3GEO.parametros.h - 35 + "px";
  119 + novoel.style.zIndex = "50000";
  120 + novoel.style.left = i3GEO.parametros.w - 35 + "px";
  121 + $i(i3GEO.Interface.IDMAPA).appendChild(novoel);
  122 + YAHOO.util.Event.addListener("i3GEOdobraPagina", "click", YAHOO.util.Event.stopPropagation);
  123 + YAHOO.util.Event.addListener("i3GEOdobraPagina", "click", YAHOO.util.Event.preventDefault);
  124 + },
  125 + /*
  126 + * Reposiciona o icone do tipo "dobra de pagina"
  127 + */
  128 + reposicionaDobraPagina : function() {
  129 + var novoel = $i("i3GEOdobraPagina");
  130 + if (!novoel) {
  131 + return;
205 132 }
206   - }
207   - catch(e){i3GEO.janela.tempoMsg("Ocorreu um erro. i3GEO.mapa.ajustaPosicao "+e);}
208   - },
209   - /*
210   - Function: ativaTema
211   -
212   - Altera a variavel i3GEO.temaAtivo e atualiza a interface em funcao do novo tema que for ativado
213   -
214   - O tema anteriormente ativo tem sua cor alterada para a cor normal e o novo tema e destacado com uma cor diferente
215   -
216   - Executa tambem as funcoes armazenadas em i3GEO.eventos.ATIVATEMA
217   -
218   - Parametros:
219   -
220   - codigo {string} - codigo da camada
221   - */
222   - ativaTema: function(codigo){
223   - if(codigo){
224   - if(codigo === "")
225   - {return;}
226   - if(i3GEO.temaAtivo !== "")
227   - {i3GEO.util.defineValor("ArvoreTituloTema"+i3GEO.temaAtivo,"style.color","");}
228   - i3GEO.temaAtivo = codigo;
229   - i3GEO.util.defineValor("ArvoreTituloTema"+codigo,"style.color","brown");
230   - }
231   - },
232   - /*
233   - Function: ativaLogo
234   -
235   - Ativa ou desativa a logo marca.
236   - */
237   - ativaLogo: function(){
238   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.ativaLogo()");}
239   - if(i3GEO.Interface.ATUAL === "googlemaps")
240   - {alert($trad("x21"));return;}
241   - i3GEO.php.ativalogo(i3GEO.atualiza);
242   - var cr = $i("i3GEOcopyright");
243   - if(cr){
244   - if(cr.style.display === "block")
245   - {cr.style.display = "none";}
246   - else
247   - {cr.style.display = "block";}
248   - }
249   - },
250   - /*
251   - Verifica se ocorreu algum problema na atualizacao do corpo do mapa e inicia o processo de tentativa de recuperacao
252   -
253   - Parametro:
254   -
255   - retorno {string} - objeto recebido da funcao PHP de atualizacao do mapa
256   - */
257   - verifica:function(retorno){
258   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.verifica()");}
259   - try{
260   - if(retorno.data)
261   - {retorno = retorno.data;}
262   - if (retorno.variaveis)
263   - {retorno = retorno.variaveis;}
264   - if ((retorno === "erro") || (typeof(retorno) === 'undefined')){
265   - i3GEO.mapa.ajustaPosicao();
266   - i3GEO.janela.fechaAguarde();
267   - i3GEO.mapa.recupera.inicia();
  133 + novoel.style.top = i3GEO.parametros.h - 35 + "px";
  134 + novoel.style.left = i3GEO.parametros.w - 35 + "px";
  135 + },
  136 + /*
  137 + * Ativa o redimensionamento automatico do mapa sempre que o navegador for redimensionado
  138 + *
  139 + * e definido como um evento do elemento window
  140 + */
  141 + ativaAutoResize : function() {
  142 + window.onresize = function() {
  143 + var Dw, Dh, r = false;
  144 + Dw = YAHOO.util.Dom.getViewportWidth();
  145 + Dh = YAHOO.util.Dom.getViewportHeight();
  146 + if (Math.abs(Dw - i3GEO.tamanhodoc[0]) > 50) {
  147 + r = true;
  148 + }
  149 + if (Math.abs(Dh - i3GEO.tamanhodoc[1]) > 50) {
  150 + r = true;
  151 + }
  152 + if (r === false) {
  153 + return;
  154 + }
  155 + i3GEO.tamanhodoc = [
  156 + Dw,
  157 + Dh
  158 + ];
  159 + setTimeout(function() {
  160 + i3GEO.reCalculaTamanho();
  161 + i3GEO.barraDeBotoes.recria("i3geo_barra2");
  162 + if (i3GEO.Interface.TABLET === true) {
  163 + i3GEO.guias.escondeGuias();
  164 + return;
  165 + }
  166 + if (i3GEO.guias.TIPO === "movel") {
  167 + i3GEO.guias.guiaMovel.reposiciona();
  168 + } else {
  169 + i3GEO.guias.ajustaAltura();
  170 + }
  171 + i3GEO.mapa.reposicionaDobraPagina();
  172 + }, 2000);
  173 + };
  174 + },
  175 + /*
  176 + * Ajusta o posicionamento do corpo do mapa
  177 + *
  178 + * Esse ajuste e necessario na inicializacao, uma vez que o mapa utiliza style.position='absolute'
  179 + *
  180 + * Parameters:
  181 + *
  182 + * elemento {String} - id do elemento HTML que devera ser ajustado e que contem o mapa
  183 + */
  184 + ajustaPosicao : function(elemento) {
  185 + if (typeof (console) !== 'undefined') {
  186 + console.info("i3GEO.mapa.ajustaPosicao()");
268 187 }
269   - i3GEO.mapa.recupera.TENTATIVA = 0;
270   - }
271   - catch(e){
272   - if(i3GEO.Interface.ATUAL === "openlayers" || i3GEO.Interface.ATUAL === "googlemaps"){
273   - i3GEO.janela.fechaAguarde();
  188 + if (arguments.length === 0) {
274 189 return;
275 190 }
276   - if(this.recupera.TENTATIVA === 0){
277   - i3GEO.janela.tempoMsg("Erro no mapa. Sera feita uma tentativa de recuperacao.");
278   - i3GEO.mapa.recupera.inicia();
  191 + var imagemxi = 0, imagemyi = 0, dc = $i(elemento), c;
  192 + if (!dc) {
  193 + return;
279 194 }
280   - else{
281   - i3GEO.janela.tempoMsg("Recuperacao impossivel. Sera feita uma tentativa de reiniciar o mapa.");
282   - if (this.recupera.TENTATIVA === 1){
283   - this.recupera.TENTATIVA = 2;
284   - i3GEO.php.reiniciaMapa(i3GEO.atualiza);
  195 + try {
  196 + while ((dc.offsetParent) && (dc.offsetParent.id !== "i3geo")) {
  197 + dc = dc.offsetParent;
  198 + imagemxi += dc.offsetLeft;
  199 + imagemyi += dc.offsetTop;
285 200 }
  201 + c = $i(i3GEO.Interface.IDCORPO);
  202 + if (c) {
  203 + c.style.position = "absolute";
  204 + if (navm) {
  205 + $left(i3GEO.Interface.IDCORPO, imagemxi - 1);
  206 + } else {
  207 + $left(i3GEO.Interface.IDCORPO, imagemxi);
  208 + }
  209 + $top(i3GEO.Interface.IDCORPO, imagemyi);
  210 + }
  211 + } catch (e) {
  212 + i3GEO.janela.tempoMsg("Ocorreu um erro. i3GEO.mapa.ajustaPosicao " + e);
286 213 }
287   - if(typeof(console) !== 'undefined'){console.error("i3GEO.mapa.verifica "+e);}
288   - }
289   - },
290   - /*
291   - Tenta recuperar o mapa caso ocorra algum problema
292   -
293   - O i3Geo mantem sempre uma copia do arquivo mapfile em uso. Essa funcao tenta
294   - usar essa copia para restaurar o funcionamento do mapa
295   - */
296   - recupera:{
297   - /*
298   - Armazena a quantidade de tentativas de recuperacao que foram feitas
299   -
300   - Tipo:
301   - {Integer}
302   - */
303   - TENTATIVA: 0,
  214 + },
304 215 /*
305   - Inicia a tentativa de recuperacao
306   - */
307   - inicia: function(){
308   - i3GEO.mapa.ajustaPosicao();
309   - i3GEO.janela.fechaAguarde();
310   - if(this.recupera.TENTATIVA === 0){
311   - this.recupera.TENTATIVA++;
312   - this.recupera.restaura();
  216 + * Function: ativaTema
  217 + *
  218 + * Altera a variavel i3GEO.temaAtivo e atualiza a interface em funcao do novo tema que for ativado
  219 + *
  220 + * O tema anteriormente ativo tem sua cor alterada para a cor normal e o novo tema e destacado com uma cor diferente
  221 + *
  222 + * Executa tambem as funcoes armazenadas em i3GEO.eventos.ATIVATEMA
  223 + *
  224 + * Parametros:
  225 + *
  226 + * codigo {string} - codigo da camada
  227 + */
  228 + ativaTema : function(codigo) {
  229 + if (codigo) {
  230 + if (codigo === "") {
  231 + return;
  232 + }
  233 + if (i3GEO.temaAtivo !== "") {
  234 + i3GEO.util.defineValor("ArvoreTituloTema" + i3GEO.temaAtivo, "style.color", "");
  235 + }
  236 + i3GEO.temaAtivo = codigo;
  237 + i3GEO.util.defineValor("ArvoreTituloTema" + codigo, "style.color", "brown");
313 238 }
314 239 },
315 240 /*
316   - Restaura o mapa para a copia de seguranca existente no servidor
317   - */
318   - restaura: function(){
319   - i3GEO.php.recuperamapa(i3GEO.atualiza);
320   - }
321   - },
322   - /*
323   - Classe: i3GEO.mapa.legendaHTML
324   -
325   - Controla a obtencao da legenda do mapa formatada em HTML.
326   -
327   - util para mostrar a legenda na tela
328   - */
329   - legendaHTML:{
330   - /*
331   - Propriedade: incluiBotaoLibera
332   -
333   - Define se na legenda sera incluido o botao para liberar a legenda e inclui-la em uma janela flutuante
334   -
335   - Tipo:
336   - {boolean}
337   -
338   - Default:
339   - {true}
340   - */
341   - incluiBotaoLibera: false,
342   - /*
343   - Armazena o id definido na criacao da legenda
344   - */
345   - ID: "",
346   - /*
347   - * Armazena a lista de camadas que devem ficar escondidas na legenda
  241 + * Function: ativaLogo
  242 + *
  243 + * Ativa ou desativa a logo marca.
348 244 */
349   - CAMADASSEMLEGENDA: [],
350   - /*
351   - Function: cria
352   -
353   - Cria a legenda HTML
354   -
355   - O elemento HTML definido em ID deve ter style=display:block
356   -
357   - A legenda e incluida no id definido. Se id for igual a "", sera apenas definido o evento de atualizacao,
358   - permitindo que seja criada a janela flutuante, por exemplo:
359   -
360   - i3GEO.mapa.legendaHTML.cria("");
361   - i3GEO.mapa.legendaHTML.libera();
362   -
363   - Parametros:
364   -
365   - id {String} - id do elemento que recebera a legenda
366   - */
367   - cria: function(id){
368   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.legendaHTML.cria()");}
369   - if(arguments.length === 0)
370   - {id = "";}
371   - i3GEO.mapa.legendaHTML.ID = id;
372   - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.mapa.legendaHTML.atualiza()") < 0)
373   - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.mapa.legendaHTML.atualiza()");}
374   - i3GEO.mapa.legendaHTML.atualiza();
  245 + ativaLogo : function() {
  246 + if (typeof (console) !== 'undefined') {
  247 + console.info("i3GEO.mapa.ativaLogo()");
  248 + }
  249 + if (i3GEO.Interface.ATUAL === "googlemaps") {
  250 + alert($trad("x21"));
  251 + return;
  252 + }
  253 + i3GEO.php.ativalogo(i3GEO.atualiza);
  254 + var cr = $i("i3GEOcopyright");
  255 + if (cr) {
  256 + if (cr.style.display === "block") {
  257 + cr.style.display = "none";
  258 + } else {
  259 + cr.style.display = "block";
  260 + }
  261 + }
375 262 },
376 263 /*
377   - Function: atualiza
378   -
379   - Atualiza o elemento HTML do mapa utilizado para mostrar a legenda
380   - */
381   - atualiza: function(){
382   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.legendaHTML.atualiza()");}
383   - var idleg = $i("wlegenda_corpo"),
384   - temp = function(retorno){
385   - var legenda = "",ins,re;
386   - re = new RegExp("<img src='' />", "g");
387   - if (retorno.data !== "erro" && retorno.data !== undefined ){
388   - legenda = "<div onclick='i3GEO.mapa.legendaHTML.mostraTodosOsTemas()' style=cursor:pointer;font-size:10px;text-align:left; >Mostra tudo</div><br>"+retorno.data.legenda;
389   - }
390   - if(legenda != "" && idleg){
391   - ins = "";
392   - if(i3GEO.mapa.legendaHTML.incluiBotaoLibera === true){
393   - ins += '<div style="cursor: pointer; text-align: left; font-size: 10px; display: block; height: 35px;" onclick="i3GEO.mapa.legendaHTML.libera()"><img id="soltaLeg" src="../imagens/branco.gif" title="clique para liberar" style="margin: 5px; position: relative;"> <p style="position: relative; left: -35px; top: -22px;">'+$trad("x11")+'</p></div>';
394   - }
395   - legenda = legenda.replace(re,"");
396   - ins += "<div id='corpoLegi' >"+ legenda + "</div>";
397   -
398   - idleg.innerHTML = legenda;
399   - }
400   - i3GEO.mapa.legendaHTML.escondeTemasMarcados();
401   - };
402   - if (idleg && idleg.style.display === "block"){
403   - //para o caso da legenda ja estar aberta
404   - if(i3GEO.mapa.legendaHTML.ID !== ""){
405   - idleg = $i(i3GEO.mapa.legendaHTML.ID);
406   - if(idleg){
407   - idleg.innerHTML = "";
408   - }
409   - }
410   - idleg = $i("wlegenda_corpo");
411   - i3GEO.mapa.legendaHTML.obtem(temp);
  264 + * Verifica se ocorreu algum problema na atualizacao do corpo do mapa e inicia o processo de tentativa de recuperacao
  265 + *
  266 + * Parametro:
  267 + *
  268 + * retorno {string} - objeto recebido da funcao PHP de atualizacao do mapa
  269 + */
  270 + verifica : function(retorno) {
  271 + if (typeof (console) !== 'undefined') {
  272 + console.info("i3GEO.mapa.verifica()");
412 273 }
413   - else{
414   - if(idleg){
415   - idleg.innerHTML = "";
  274 + try {
  275 + if (retorno.data) {
  276 + retorno = retorno.data;
  277 + }
  278 + if (retorno.variaveis) {
  279 + retorno = retorno.variaveis;
  280 + }
  281 + if ((retorno === "erro") || (typeof (retorno) === 'undefined')) {
  282 + i3GEO.mapa.ajustaPosicao();
  283 + i3GEO.janela.fechaAguarde();
  284 + i3GEO.mapa.recupera.inicia();
416 285 }
417   - if(i3GEO.mapa.legendaHTML.ID !== ""){
418   - idleg = $i(i3GEO.mapa.legendaHTML.ID);
419   - if(idleg && idleg.style.display === "block"){
420   - i3GEO.mapa.legendaHTML.obtem(temp);
  286 + i3GEO.mapa.recupera.TENTATIVA = 0;
  287 + } catch (e) {
  288 + if (i3GEO.Interface.ATUAL === "openlayers" || i3GEO.Interface.ATUAL === "googlemaps") {
  289 + i3GEO.janela.fechaAguarde();
  290 + return;
  291 + }
  292 + if (this.recupera.TENTATIVA === 0) {
  293 + i3GEO.janela.tempoMsg("Erro no mapa. Sera feita uma tentativa de recuperacao.");
  294 + i3GEO.mapa.recupera.inicia();
  295 + } else {
  296 + i3GEO.janela.tempoMsg("Recuperacao impossivel. Sera feita uma tentativa de reiniciar o mapa.");
  297 + if (this.recupera.TENTATIVA === 1) {
  298 + this.recupera.TENTATIVA = 2;
  299 + i3GEO.php.reiniciaMapa(i3GEO.atualiza);
421 300 }
422 301 }
  302 + if (typeof (console) !== 'undefined') {
  303 + console.error("i3GEO.mapa.verifica " + e);
  304 + }
423 305 }
424 306 },
425 307 /*
426   - Faz a chamada em AJAX que gera a legenda
427   -
428   - O resultado e processado pela funcao passada como parametro
429   -
430   - Parametro:
431   -
432   - funcao {function} - funcao que recebera o resultado da chamada AJAX. O objeto CPAINT e enviado como parametro.
433   - */
434   - obtem: function(funcao){
435   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.legendaHTML.obtem()");}
436   - i3GEO.php.criaLegendaHTML(funcao,"",i3GEO.configura.templateLegenda);
437   - },
438   - /*
439   - Liga ou desliga um unico tema. Utilizado pela legenda HTML, permitindo que um tema seja processado diretamente na legenda.
440   -
441   - Parametro:
442   -
443   - inputbox {object) - objeto do tipo input checkbox com a propriedade value indicando o codigo do tema que sera processado
444   - */
445   - ativaDesativaTema: function(inputbox){
446   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.legendaHTML.ativaDesativaTema()");}
447   - var temp = function(){
448   - //i3GEO.contadorAtualiza++;
449   - i3GEO.php.corpo(i3GEO.atualiza,i3GEO.configura.tipoimagem);
450   - i3GEO.arvoreDeCamadas.atualiza("");
451   - i3GEO.janela.fechaAguarde("redesenha");
452   - };
453   - if(!inputbox.checked)
454   - {i3GEO.php.ligatemas(temp,inputbox.value,"");}
455   - else
456   - {i3GEO.php.ligatemas(temp,"",inputbox.value);}
457   - },
458   - escondeTema: function(tema){
459   - var d = $i("legendaLayer_"+tema);
460   - if(d){
461   - d.style.display = "none";
462   - i3GEO.mapa.legendaHTML.CAMADASSEMLEGENDA.push(tema);
463   - }
464   - },
465   - escondeTemasMarcados: function(){
466   - var temas = i3GEO.mapa.legendaHTML.CAMADASSEMLEGENDA,
467   - n = temas.length,
468   - i,temp;
469   - for(i=0;i<n;i++){
470   - temp = $i(temas[i]);
471   - if(temp){
472   - temp.style.display = "none";
  308 + * Tenta recuperar o mapa caso ocorra algum problema
  309 + *
  310 + * O i3Geo mantem sempre uma copia do arquivo mapfile em uso. Essa funcao tenta usar essa copia para restaurar o funcionamento do
  311 + * mapa
  312 + */
  313 + recupera : {
  314 + /*
  315 + * Armazena a quantidade de tentativas de recuperacao que foram feitas
  316 + *
  317 + * Tipo: {Integer}
  318 + */
  319 + TENTATIVA : 0,
  320 + /*
  321 + * Inicia a tentativa de recuperacao
  322 + */
  323 + inicia : function() {
  324 + i3GEO.mapa.ajustaPosicao();
  325 + i3GEO.janela.fechaAguarde();
  326 + if (this.recupera.TENTATIVA === 0) {
  327 + this.recupera.TENTATIVA++;
  328 + this.recupera.restaura();
473 329 }
  330 + },
  331 + /*
  332 + * Restaura o mapa para a copia de seguranca existente no servidor
  333 + */
  334 + restaura : function() {
  335 + i3GEO.php.recuperamapa(i3GEO.atualiza);
474 336 }
475 337 },
476   - mostraTodosOsTemas: function(){
477   - i3GEO.mapa.legendaHTML.CAMADASSEMLEGENDA = [];
478   - i3GEO.mapa.legendaHTML.atualiza();
479   - },
480 338 /*
481   - Function: libera
482   -
483   - Libera a legenda criando uma janela flutuante sobre o mapa
484   -
485   - Parametros:
  339 + * Classe: i3GEO.mapa.legendaHTML
  340 + *
  341 + * Controla a obtencao da legenda do mapa formatada em HTML.
  342 + *
  343 + * util para mostrar a legenda na tela
  344 + */
  345 + legendaHTML : {
  346 + /*
  347 + * Propriedade: incluiBotaoLibera
  348 + *
  349 + * Define se na legenda sera incluido o botao para liberar a legenda e inclui-la em uma janela flutuante
  350 + *
  351 + * Tipo: {boolean}
  352 + *
  353 + * Default: {true}
  354 + */
  355 + incluiBotaoLibera : false,
  356 + /*
  357 + * Armazena o id definido na criacao da legenda
  358 + */
  359 + ID : "",
  360 + /*
  361 + * Armazena a lista de camadas que devem ficar escondidas na legenda
  362 + */
  363 + CAMADASSEMLEGENDA : [],
  364 + /*
  365 + * Function: cria
  366 + *
  367 + * Cria a legenda HTML
  368 + *
  369 + * O elemento HTML definido em ID deve ter style=display:block
  370 + *
  371 + * A legenda e incluida no id definido. Se id for igual a "", sera apenas definido o evento de atualizacao, permitindo que seja
  372 + * criada a janela flutuante, por exemplo:
  373 + *
  374 + * i3GEO.mapa.legendaHTML.cria(""); i3GEO.mapa.legendaHTML.libera();
  375 + *
  376 + * Parametros:
  377 + *
  378 + * id {String} - id do elemento que recebera a legenda
  379 + */
  380 + cria : function(id) {
  381 + if (typeof (console) !== 'undefined') {
  382 + console.info("i3GEO.mapa.legendaHTML.cria()");
  383 + }
  384 + if (arguments.length === 0) {
  385 + id = "";
  386 + }
  387 + i3GEO.mapa.legendaHTML.ID = id;
  388 + if (i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.mapa.legendaHTML.atualiza()") < 0) {
  389 + i3GEO.eventos.NAVEGAMAPA.push("i3GEO.mapa.legendaHTML.atualiza()");
  390 + }
  391 + i3GEO.mapa.legendaHTML.atualiza();
  392 + },
  393 + /*
  394 + * Function: atualiza
  395 + *
  396 + * Atualiza o elemento HTML do mapa utilizado para mostrar a legenda
  397 + */
  398 + atualiza : function() {
  399 + if (typeof (console) !== 'undefined') {
  400 + console.info("i3GEO.mapa.legendaHTML.atualiza()");
  401 + }
  402 + var idleg = $i("wlegenda_corpo"), temp =
  403 + function(retorno) {
  404 + var legenda = "", ins, re;
  405 + re = new RegExp("<img src='' />", "g");
  406 + if (retorno.data !== "erro" && retorno.data !== undefined) {
  407 + legenda =
  408 + "<div onclick='i3GEO.mapa.legendaHTML.mostraTodosOsTemas()' style=cursor:pointer;font-size:10px;text-align:left; >Mostra tudo</div><br>"
  409 + + retorno.data.legenda;
  410 + }
  411 + if (legenda != "" && idleg) {
  412 + ins = "";
  413 + if (i3GEO.mapa.legendaHTML.incluiBotaoLibera === true) {
  414 + ins +=
  415 + '<div style="cursor: pointer; text-align: left; font-size: 10px; display: block; height: 35px;" onclick="i3GEO.mapa.legendaHTML.libera()"><img id="soltaLeg" src="../imagens/branco.gif" title="clique para liberar" style="margin: 5px; position: relative;"> <p style="position: relative; left: -35px; top: -22px;">'
  416 + + $trad("x11") + '</p></div>';
  417 + }
  418 + legenda = legenda.replace(re, "");
  419 + ins += "<div id='corpoLegi' >" + legenda + "</div>";
486 420  
487   - ck - sim|nao - (opcional) inclui ou nao o checkbox que permitem desligar a camada
488   - */
489   - libera: function(ck,largura,altura,topo,esquerda){
490   - if(!ck){
491   - ck = "nao";
492   - }
493   - if(!largura){
494   - largura = 302;
495   - }
496   - if(!altura){
497   - altura = 300;
498   - }
499   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.legendaHTML.libera()");}
500   - var cabecalho,minimiza,janela;
501   - if (!$i("wlegenda")){
502   - cabecalho = function(){
503   - };
504   - minimiza = function(){
505   - i3GEO.janela.minimiza("wlegenda");
  421 + idleg.innerHTML = legenda;
  422 + }
  423 + i3GEO.mapa.legendaHTML.escondeTemasMarcados();
  424 + };
  425 + if (idleg && idleg.style.display === "block") {
  426 + // para o caso da legenda ja estar aberta
  427 + if (i3GEO.mapa.legendaHTML.ID !== "") {
  428 + idleg = $i(i3GEO.mapa.legendaHTML.ID);
  429 + if (idleg) {
  430 + idleg.innerHTML = "";
  431 + }
  432 + }
  433 + idleg = $i("wlegenda_corpo");
  434 + i3GEO.mapa.legendaHTML.obtem(temp);
  435 + } else {
  436 + if (idleg) {
  437 + idleg.innerHTML = "";
  438 + }
  439 + if (i3GEO.mapa.legendaHTML.ID !== "") {
  440 + idleg = $i(i3GEO.mapa.legendaHTML.ID);
  441 + if (idleg && idleg.style.display === "block") {
  442 + i3GEO.mapa.legendaHTML.obtem(temp);
  443 + }
  444 + }
  445 + }
  446 + },
  447 + /*
  448 + * Faz a chamada em AJAX que gera a legenda
  449 + *
  450 + * O resultado e processado pela funcao passada como parametro
  451 + *
  452 + * Parametro:
  453 + *
  454 + * funcao {function} - funcao que recebera o resultado da chamada AJAX. O objeto CPAINT e enviado como parametro.
  455 + */
  456 + obtem : function(funcao) {
  457 + if (typeof (console) !== 'undefined') {
  458 + console.info("i3GEO.mapa.legendaHTML.obtem()");
  459 + }
  460 + i3GEO.php.criaLegendaHTML(funcao, "", i3GEO.configura.templateLegenda);
  461 + },
  462 + /*
  463 + * Liga ou desliga um unico tema. Utilizado pela legenda HTML, permitindo que um tema seja processado diretamente na legenda.
  464 + *
  465 + * Parametro:
  466 + *
  467 + * inputbox {object) - objeto do tipo input checkbox com a propriedade value indicando o codigo do tema que sera processado
  468 + */
  469 + ativaDesativaTema : function(inputbox) {
  470 + if (typeof (console) !== 'undefined') {
  471 + console.info("i3GEO.mapa.legendaHTML.ativaDesativaTema()");
  472 + }
  473 + var temp = function() {
  474 + // i3GEO.contadorAtualiza++;
  475 + i3GEO.php.corpo(i3GEO.atualiza, i3GEO.configura.tipoimagem);
  476 + i3GEO.arvoreDeCamadas.atualiza("");
  477 + i3GEO.janela.fechaAguarde("redesenha");
506 478 };
507   - janela = i3GEO.janela.cria(
508   - largura+"px",
509   - altura+"px",
510   - "",
511   - "",
512   - "",
513   - $trad("p3"),
514   - "wlegenda",
515   - false,
516   - "hd",
517   - cabecalho,
518   - minimiza
519   - );
520   - }
521   - else{
522   - janela = YAHOO.i3GEO.janela.manager.find("wlegenda");
523   - janela.show();
524   - }
525   - $i("wlegenda_corpo").style.backgroundColor = "white";
  479 + if (!inputbox.checked) {
  480 + i3GEO.php.ligatemas(temp, inputbox.value, "");
  481 + } else {
  482 + i3GEO.php.ligatemas(temp, "", inputbox.value);
  483 + }
  484 + },
  485 + escondeTema : function(tema) {
  486 + var d = $i("legendaLayer_" + tema);
  487 + if (d) {
  488 + d.style.display = "none";
  489 + i3GEO.mapa.legendaHTML.CAMADASSEMLEGENDA.push(tema);
  490 + }
  491 + },
  492 + escondeTemasMarcados : function() {
  493 + var temas = i3GEO.mapa.legendaHTML.CAMADASSEMLEGENDA, n = temas.length, i, temp;
  494 + for (i = 0; i < n; i++) {
  495 + temp = $i(temas[i]);
  496 + if (temp) {
  497 + temp.style.display = "none";
  498 + }
  499 + }
  500 + },
  501 + mostraTodosOsTemas : function() {
  502 + i3GEO.mapa.legendaHTML.CAMADASSEMLEGENDA = [];
  503 + i3GEO.mapa.legendaHTML.atualiza();
  504 + },
  505 + /*
  506 + * Function: libera
  507 + *
  508 + * Libera a legenda criando uma janela flutuante sobre o mapa
  509 + *
  510 + * Parametros:
  511 + *
  512 + * ck - sim|nao - (opcional) inclui ou nao o checkbox que permitem desligar a camada
  513 + */
  514 + libera : function(ck, largura, altura, topo, esquerda) {
  515 + if (!ck) {
  516 + ck = "nao";
  517 + }
  518 + if (!largura) {
  519 + largura = 302;
  520 + }
  521 + if (!altura) {
  522 + altura = 300;
  523 + }
  524 + if (typeof (console) !== 'undefined') {
  525 + console.info("i3GEO.mapa.legendaHTML.libera()");
  526 + }
  527 + var cabecalho, minimiza, janela;
  528 + if (!$i("wlegenda")) {
  529 + cabecalho = function() {
  530 + };
  531 + minimiza = function() {
  532 + i3GEO.janela.minimiza("wlegenda");
  533 + };
  534 + janela =
  535 + i3GEO.janela.cria(
  536 + largura + "px",
  537 + altura + "px",
  538 + "",
  539 + "",
  540 + "",
  541 + $trad("p3"),
  542 + "wlegenda",
  543 + false,
  544 + "hd",
  545 + cabecalho,
  546 + minimiza);
  547 + } else {
  548 + janela = YAHOO.i3GEO.janela.manager.find("wlegenda");
  549 + janela.show();
  550 + }
  551 + $i("wlegenda_corpo").style.backgroundColor = "white";
526 552  
527   - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.mapa.legendaHTML.atualiza()") < 0)
528   - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.mapa.legendaHTML.atualiza()");}
529   - i3GEO.mapa.legendaHTML.atualiza();
530   - if(topo && esquerda){
531   - janela = YAHOO.i3GEO.janela.manager.find("wlegenda");
532   - janela.moveTo(esquerda,topo);
  553 + if (i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.mapa.legendaHTML.atualiza()") < 0) {
  554 + i3GEO.eventos.NAVEGAMAPA.push("i3GEO.mapa.legendaHTML.atualiza()");
  555 + }
  556 + i3GEO.mapa.legendaHTML.atualiza();
  557 + if (topo && esquerda) {
  558 + janela = YAHOO.i3GEO.janela.manager.find("wlegenda");
  559 + janela.moveTo(esquerda, topo);
  560 + }
533 561 }
534   - }
535   - },
536   - /*
537   - Controla a obtencao da legenda do mapa na forma de uma imagem
538   -
539   - e utilizado principalmente para armazenar as imagens para a funcao de
540   - obtencao do historico do mapa
541   - */
542   - legendaIMAGEM:{
543   - /*
544   - Faz a chamada em AJAX que gera a legenda
545   -
546   - O resultado e processado pela funcao passada como parametro
547   -
548   - Parametro:
549   -
550   - funcao {function} - funcao que recebera o resultado da chamada AJAX. O objeto CPAINT e enviado como parametro.
551   - */
552   - obtem: function(funcao){
553   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.legendaIMAGEML.obtem()");}
554   - i3GEO.php.criaLegendaImagem(funcao);
555   - }
556   - },
557   - /*
558   - Classe: i3GEO.mapa.dialogo
559   -
560   - Abre as telas de dialogo das opcoes de manipulacao do mapa atual
561   - */
562   - dialogo:{
563   - /*
564   - Function: geolocal
565   -
566   - Abre a janela de dialogo da ferramenta de geolocalizacao do usuario
567   - */
568   - geolocal: function(){
569   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.geolocal()","geolocal","geolocal");
570 562 },
571 563 /*
572   - Function: listaDeMapasBanco
573   -
574   - Lista os mapas cadastrados no sistema de administracao do i3geo
575   - */
576   - listaDeMapasBanco: function(){
577   - if(i3GEO.guias.CONFIGURA["mapas"]){
578   - var janela,divid;
579   - janela = i3GEO.janela.cria(
580   - "200px",
581   - "450px",
582   - "",
583   - "",
584   - "",
585   - "",
586   - "i3GEOFsalvaMapaLista",
587   - false,
588   - "hd"
589   - );
590   - divid = janela[2].id;
591   - //a funcao que mostra a lista de mapas e a mesma que pode ser utilizada ao incluir a lista de mapas
592   - //como uma guia
593   - i3GEO.guias.CONFIGURA["mapas"].click.call(this,divid);
594   - }
595   - else{
596   - window.open(i3GEO.configura.locaplic+"/admin/rssmapas.php","_blank");
  564 + * Controla a obtencao da legenda do mapa na forma de uma imagem
  565 + *
  566 + * e utilizado principalmente para armazenar as imagens para a funcao de obtencao do historico do mapa
  567 + */
  568 + legendaIMAGEM : {
  569 + /*
  570 + * Faz a chamada em AJAX que gera a legenda
  571 + *
  572 + * O resultado e processado pela funcao passada como parametro
  573 + *
  574 + * Parametro:
  575 + *
  576 + * funcao {function} - funcao que recebera o resultado da chamada AJAX. O objeto CPAINT e enviado como parametro.
  577 + */
  578 + obtem : function(funcao) {
  579 + if (typeof (console) !== 'undefined') {
  580 + console.info("i3GEO.mapa.legendaIMAGEML.obtem()");
  581 + }
  582 + i3GEO.php.criaLegendaImagem(funcao);
597 583 }
598 584 },
599 585 /*
600   - Function: congelaMapa
601   -
602   - Congela a vis&atilde;o atual do mapa mostrando-o em uma janela flutuante
603   - */
604   - congelaMapa: function(){
605   - var url="",
606   - idjanela = YAHOO.util.Dom.generateId(),
607   - cabecalho = function(){
608   - },
609   - minimiza = function(){
  586 + * Classe: i3GEO.mapa.dialogo
  587 + *
  588 + * Abre as telas de dialogo das opcoes de manipulacao do mapa atual
  589 + */
  590 + dialogo : {
  591 + /*
  592 + * Function: geolocal
  593 + *
  594 + * Abre a janela de dialogo da ferramenta de geolocalizacao do usuario
  595 + */
  596 + geolocal : function() {
  597 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.geolocal()", "geolocal", "geolocal");
  598 + },
  599 + /*
  600 + * Function: listaDeMapasBanco
  601 + *
  602 + * Lista os mapas cadastrados no sistema de administracao do i3geo
  603 + */
  604 + listaDeMapasBanco : function() {
  605 + if (i3GEO.guias.CONFIGURA["mapas"]) {
  606 + var janela, divid;
  607 + janela = i3GEO.janela.cria("200px", "450px", "", "", "", "", "i3GEOFsalvaMapaLista", false, "hd");
  608 + divid = janela[2].id;
  609 + // a funcao que mostra a lista de mapas e a mesma que pode ser utilizada ao incluir a lista de mapas
  610 + // como uma guia
  611 + i3GEO.guias.CONFIGURA["mapas"].click.call(this, divid);
  612 + } else {
  613 + window.open(i3GEO.configura.locaplic + "/admin/rssmapas.php", "_blank");
  614 + }
  615 + },
  616 + /*
  617 + * Function: congelaMapa
  618 + *
  619 + * Congela a vis&atilde;o atual do mapa mostrando-o em uma janela flutuante
  620 + */
  621 + congelaMapa : function() {
  622 + var url = "", idjanela = YAHOO.util.Dom.generateId(), cabecalho = function() {
  623 + }, minimiza = function() {
610 624 i3GEO.janela.minimiza(idjanela);
611 625 };
612   - if(i3GEO.Interface.ATUAL === "openlayers" || i3GEO.Interface.ATUAL === "googlemaps"){
613   - url = i3GEO.configura.locaplic+"/ferramentas/congelamapa/openlayers.php?g_sid="+i3GEO.configura.sid+"&ext="+i3GEO.util.extOSM2Geo(i3GEO.parametros.mapexten);
  626 + if (i3GEO.Interface.ATUAL === "openlayers" || i3GEO.Interface.ATUAL === "googlemaps") {
  627 + url =
  628 + i3GEO.configura.locaplic + "/ferramentas/congelamapa/openlayers.php?g_sid=" + i3GEO.configura.sid + "&ext="
  629 + + i3GEO.util.extOSM2Geo(i3GEO.parametros.mapexten);
  630 + i3GEO.janela.cria("500px", "350px", url, "", "", $trad("x64"), idjanela, false, "hd", cabecalho, minimiza);
  631 + }
  632 + },
  633 + /*
  634 + * Function: metaestat
  635 + *
  636 + * Abre a janela de dialogo da ferramenta de cartogramas estatisticos METAESTAT
  637 + */
  638 + metaestat : function() {
  639 + var temp = function() {
  640 + i3GEOF.metaestat.MULTIPARAMETROS = true;
  641 + i3GEOF.metaestat.inicia();
  642 + };
  643 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.metaestat()", "metaestat", "metaestat", "index.js", temp);
  644 + },
  645 + /*
  646 + * Function: metaestatListaMapas
  647 + *
  648 + * Lista os mapas publicados no METAESTAT
  649 + */
  650 + metaestatListaMapas : function() {
  651 + i3GEO.util.dialogoFerramenta(
  652 + "i3GEO.mapa.dialogo.metaestatListaMapas()",
  653 + "metaestat",
  654 + "listamapas",
  655 + "listamapas.js",
  656 + "i3GEOF.listamapas.iniciaJanelaFlutuante()");
  657 + },
  658 + /*
  659 + * Function: preferencias
  660 + *
  661 + * Preferencias do usuario
  662 + */
  663 + preferencias : function() {
  664 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.preferencias()", "preferencias", "preferencias");
  665 + },
  666 + /*
  667 + * Function: locregiao
  668 + *
  669 + * Abre a janela de dialogo da ferramenta de busca de regiao cadastrada no METAESTAT
  670 + */
  671 + locregiao : function() {
  672 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.locregiao()", "metaestat", "locregiao", "locregiao.js");
  673 + },
  674 + /*
  675 + * Function: filtraregiao
  676 + *
  677 + * Abre a janela de dialogo da ferramenta de busca de regioes cadastradas no METAESTAT com opcao de filtrar a regiao escolhida
  678 + */
  679 + filtraregiao : function() {
  680 + i3GEO.util.dialogoFerramenta(
  681 + "i3GEO.mapa.dialogo.filtraregiao()",
  682 + "metaestat",
  683 + "locregiao",
  684 + "locregiao.js",
  685 + "i3GEOF.locregiao.abreComFiltro()");
  686 + },
  687 + /*
  688 + * Function: animacao
  689 + *
  690 + * Abre a janela de dialogo da ferramenta que permite animar o mapa atual
  691 + */
  692 + animacao : function() {
  693 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.animacao()", "animacao", "animacao");
  694 + },
  695 + /*
  696 + * Function: opacidade
  697 + *
  698 + * Abre a janela de dialogo da ferramenta de definicao da transparencia das camadas principais do mapa
  699 + */
  700 + opacidade : function() {
  701 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.opacidade()", "opacidademapa", "opacidademapa");
  702 + },
  703 + /*
  704 + * Function: telaRemota
  705 + *
  706 + * Abre a janela de dialogo da ferramenta de configuracao de uma tela remota
  707 + */
  708 + telaRemota : function() {
  709 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.telaremota()", "telaremota", "telaremota");
  710 + },
  711 + /*
  712 + * Function: t3d
  713 + *
  714 + * Abre a janela de dialogo da ferramenta de geracao da visualizacao em 3d
  715 + */
  716 + t3d : function() {
  717 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.t3d()", "3d", "t3d");
  718 + },
  719 + /*
  720 + * Function: imprimir
  721 + *
  722 + * Abre a janela de dialogo da ferramenta que permite imprimir o mapa atual
  723 + */
  724 + imprimir : function() {
  725 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.imprimir()", "imprimir", "imprimir");
  726 + },
  727 + /*
  728 + * Function: mostraExten
  729 + *
  730 + * Abre a janela de dialogo da ferramenta que mostra a extensao geografica atual do mapa
  731 + */
  732 + mostraExten : function() {
  733 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.mostraExten()", "mostraexten", "mostraExten");
  734 + },
  735 + /*
  736 + * Function: outputformat
  737 + *
  738 + * Abre a janela de dialogo da ferramenta outputformat
  739 + */
  740 + outputformat : function() {
  741 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.outputformat()", "outputformat", "outputformat");
  742 + },
  743 + /*
  744 + * Function: autoredesenha
  745 + *
  746 + * Abre a janela de dialogo da ferramenta opcoes_autoredesenha
  747 + */
  748 + autoredesenha : function() {
  749 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.autoredesenha()", "opcoes_autoredesenha", "opcoesTempo");
  750 + },
  751 + /*
  752 + * Function: salvaMapa
  753 + *
  754 + * Abre a janela de dialogo da ferramenta salvamapa
  755 + */
  756 + salvaMapa : function() {
  757 + if (i3GEO.parametros === "") {
  758 + i3GEO.janela
  759 + .tempoMsg("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto.");
  760 + return;
  761 + }
  762 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.salvaMapa()", "salvamapa", "salvaMapa");
  763 + },
  764 + /*
  765 + * Function: carregaMapa
  766 + *
  767 + * Abre a janela de dialogo da ferramenta carregamapa
  768 + */
  769 + carregaMapa : function() {
  770 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.carregaMapa()", "carregamapa", "carregaMapa");
  771 + },
  772 + /*
  773 + * Function: convertews
  774 + *
  775 + * Abre a janela de dialogo da ferramenta convertews
  776 + */
  777 + convertews : function() {
  778 + if (i3GEO.parametros.mapfile === "") {
  779 + i3GEO.janela
  780 + .tempoMsg("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto.");
  781 + return;
  782 + }
  783 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.convertews()", "convertews", "converteMapaWS");
  784 + },
  785 + /*
  786 + * Function: convertekml
  787 + *
  788 + * Abre a janela de dialogo da ferramenta convertemapakml
  789 + */
  790 + convertekml : function() {
  791 + if (i3GEO.parametros.mapfile === "") {
  792 + alert("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto.");
  793 + return;
  794 + }
  795 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.convertekml()", "convertemapakml", "converteMapaKml");
  796 + },
  797 + /*
  798 + * Function: queryMap
  799 + *
  800 + * Abre a janela de dialogo da ferramenta opcoes_querymap
  801 + */
  802 + queryMap : function() {
  803 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.queryMap()", "opcoes_querymap", "opcoesQuery");
  804 + },
  805 + /*
  806 + * Function: template
  807 + *
  808 + * Abre a janela de dialogo da ferramenta template
  809 + */
  810 + template : function() {
614 811 i3GEO.janela.cria(
615   - "500px",
616   - "350px",
617   - url,
  812 + "300px",
  813 + "400px",
  814 + i3GEO.configura.locaplic + "/ferramentas/template/index.htm",
618 815 "",
619 816 "",
620   - $trad("x64"),
621   - idjanela,
622   - false,
623   - "hd",
624   - cabecalho,
625   - minimiza
626   - );
627   - }
628   - },
629   - /*
630   - Function: metaestat
631   -
632   - Abre a janela de dialogo da ferramenta de cartogramas estatisticos METAESTAT
633   - */
634   - metaestat: function(){
635   - var temp = function(){
636   - i3GEOF.metaestat.MULTIPARAMETROS = true;
637   - i3GEOF.metaestat.inicia();
638   - };
639   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.metaestat()","metaestat","metaestat","index.js",temp);
640   - },
641   - /*
642   - Function: metaestatListaMapas
643   -
644   - Lista os mapas publicados no METAESTAT
645   - */
646   - metaestatListaMapas: function(){
647   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.metaestatListaMapas()","metaestat","listamapas","listamapas.js","i3GEOF.listamapas.iniciaJanelaFlutuante()");
648   - },
649   - /*
650   - Function: preferencias
651   -
652   - Preferencias do usuario
653   - */
654   - preferencias: function(){
655   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.preferencias()","preferencias","preferencias");
656   - },
657   - /*
658   - Function: locregiao
659   -
660   - Abre a janela de dialogo da ferramenta de busca de regiao cadastrada no METAESTAT
661   - */
662   - locregiao: function(){
663   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.locregiao()","metaestat","locregiao","locregiao.js");
664   - },
665   - /*
666   - Function: filtraregiao
667   -
668   - Abre a janela de dialogo da ferramenta de busca de regioes cadastradas no METAESTAT com opcao de filtrar a regiao escolhida
669   - */
670   - filtraregiao: function(){
671   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.filtraregiao()","metaestat","locregiao","locregiao.js","i3GEOF.locregiao.abreComFiltro()");
672   - },
673   - /*
674   - Function: animacao
675   -
676   - Abre a janela de dialogo da ferramenta que permite animar o mapa atual
677   - */
678   - animacao: function(){
679   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.animacao()","animacao","animacao");
680   - },
681   - /*
682   - Function: opacidade
683   -
684   - Abre a janela de dialogo da ferramenta de definicao da transparencia das camadas principais do mapa
685   - */
686   - opacidade: function(){
687   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.opacidade()","opacidademapa","opacidademapa");
688   - },
689   - /*
690   - Function: telaRemota
691   -
692   - Abre a janela de dialogo da ferramenta de configuracao de uma tela remota
693   - */
694   - telaRemota: function(){
695   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.telaremota()","telaremota","telaremota");
696   - },
697   - /*
698   - Function: t3d
699   -
700   - Abre a janela de dialogo da ferramenta de geracao da visualizacao em 3d
701   - */
702   - t3d: function(){
703   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.t3d()","3d","t3d");
704   - },
705   - /*
706   - Function: imprimir
707   -
708   - Abre a janela de dialogo da ferramenta que permite imprimir o mapa atual
709   - */
710   - imprimir: function(){
711   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.imprimir()","imprimir","imprimir");
712   - },
713   - /*
714   - Function: mostraExten
715   -
716   - Abre a janela de dialogo da ferramenta que mostra a extensao geografica atual do mapa
717   - */
718   - mostraExten: function(){
719   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.mostraExten()","mostraexten","mostraExten");
720   - },
721   - /*
722   - Function: outputformat
723   -
724   - Abre a janela de dialogo da ferramenta outputformat
725   - */
726   - outputformat: function(){
727   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.outputformat()","outputformat","outputformat");
728   - },
729   - /*
730   - Function: autoredesenha
731   -
732   - Abre a janela de dialogo da ferramenta opcoes_autoredesenha
733   - */
734   - autoredesenha: function(){
735   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.autoredesenha()","opcoes_autoredesenha","opcoesTempo");
736   - },
737   - /*
738   - Function: salvaMapa
739   -
740   - Abre a janela de dialogo da ferramenta salvamapa
741   - */
742   - salvaMapa: function(){
743   - if(i3GEO.parametros === "")
744   - {i3GEO.janela.tempoMsg("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto.");return;}
745   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.salvaMapa()","salvamapa","salvaMapa");
746   - },
747   - /*
748   - Function: carregaMapa
749   -
750   - Abre a janela de dialogo da ferramenta carregamapa
751   - */
752   - carregaMapa: function(){
753   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.carregaMapa()","carregamapa","carregaMapa");
754   - },
755   - /*
756   - Function: convertews
757   -
758   - Abre a janela de dialogo da ferramenta convertews
759   - */
760   - convertews: function(){
761   - if(i3GEO.parametros.mapfile === "")
762   - {i3GEO.janela.tempoMsg("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto.");return;}
763   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.convertews()","convertews","converteMapaWS");
764   - },
765   - /*
766   - Function: convertekml
767   -
768   - Abre a janela de dialogo da ferramenta convertemapakml
769   - */
770   - convertekml: function(){
771   - if(i3GEO.parametros.mapfile === "")
772   - {alert("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto.");return;}
773   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.convertekml()","convertemapakml","converteMapaKml");
774   - },
775   - /*
776   - Function: queryMap
777   -
778   - Abre a janela de dialogo da ferramenta opcoes_querymap
779   - */
780   - queryMap: function(){
781   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.queryMap()","opcoes_querymap","opcoesQuery");
782   - },
783   - /*
784   - Function: template
785   -
786   - Abre a janela de dialogo da ferramenta template
787   - */
788   - template: function()
789   - {i3GEO.janela.cria("300px","400px",i3GEO.configura.locaplic+"/ferramentas/template/index.htm","","","Template <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=1&idajuda=8' >&nbsp;&nbsp;&nbsp;</a>");},
790   - /*
791   - Function: tamanho
792   -
793   - Abre a janela de dialogo da ferramenta opcoes_tamanho
794   - */
795   - tamanho: function(){
796   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.tamanho()","opcoes_tamanho","opcoesTamanho");
797   - },
798   - /*
799   - Function: tipoimagem
800   -
801   - Abre a janela de dialogo da ferramenta tipoimagem
802   - */
803   - tipoimagem: function(){
804   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.tipoimagem()","tipoimagem","tipoimagem");
805   - },
806   - /*
807   - Function: corFundo
808   -
809   - Abre a janela de dialogo da ferramenta opcoes_fundo
810   - */
811   - corFundo: function(){
812   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.corFundo()","opcoes_fundo","opcoesFundo");
813   - },
814   - /*
815   - Function: opcoesEscala
816   -
817   - Abre a janela de dialogo da ferramenta opcoes_escala
818   - */
819   - opcoesEscala: function(){
820   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.opcoesEscala()","opcoes_escala","opcoesEscala");
821   - },
822   - /*
823   - Function: opcoesLegenda
824   -
825   - Abre a janela de dialogo da ferramenta opcoes_legenda
826   - */
827   - opcoesLegenda: function(){
828   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.opcoesLegenda()","opcoes_legenda","opcoesLegenda");
829   - },
830   - /*
831   - Function: gradeCoord
832   -
833   - Abre a janela de dialogo da ferramenta gradecoord
834   - */
835   - gradeCoord: function(){
836   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.gradeCoord()","gradecoord","gradeCoord");
837   - },
838   - /*
839   - Function: cliqueTexto
840   -
841   - Abre a janela de dialogo da ferramenta inseretxt
842   - */
843   - cliqueTexto: function(){
844   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.cliqueTexto()","inseretxt","inseretxt");
845   - },
846   - /*
847   - Function: selecao
848   -
849   - Abre a janela de dialogo da ferramenta selecao
850   - */
851   - selecao: function(){
852   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.selecao()","selecao","selecao");
853   - },
854   - /*
855   - Function: cliquePonto
856   -
857   - Abre a janela de dialogo da ferramenta inserexy2
858   - */
859   - cliquePonto: function(){
860   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.cliquePonto()","inserexy2","inserexy");
861   - },
862   - /*
863   - Function: cliqueGrafico
864   -
865   - Abre a janela de dialogo da ferramenta inseregrafico
866   - */
867   - cliqueGrafico: function(){
868   - i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.cliqueGrafico()","inseregrafico","insereGrafico");
869   - },
870   - /*
871   - Function: cliqueIdentificaDefault
872   -
873   - Abre a janela de dialogo da ferramenta identifica
874   -
875   - Parameters:
876   -
877   - x,y - opcional
878   -
879   - */
880   - cliqueIdentificaDefault: function(x,y){
881   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.dialogo.cliqueIdentificaDefault()");}
882   - //@FIXIT nada elegante
883   - //evita clicar sobre a barra do googlemaps
884   - if(objposicaocursor.imgx < 70){
885   - return;
886   - }
887   - //evita ativar a ferramenta se o botao nao estiver ativo
888   - //e estiver no modo de clique permanente
889   - if(i3GEO.barraDeBotoes.BOTAOCLICADO !== "identifica" && i3GEO.eventos.cliquePerm.ativo === false){
890   - return;
891   - }
892   - i3GEO.eventos.MOUSEPARADO.remove("verificaTip()");
893   - //na interface googleearth verifica se existe mais eventos no mouseclick
894   - if(i3GEO.Interface.ATUAL === "googleearth" && i3GEO.eventos.MOUSECLIQUE.length > 1){
895   - return;
896   - }
897   - //javascript nao foi carregado
898   - if(typeof(i3GEOF.identifica) === 'undefined'){
899   - //javascript que sera carregado
900   - var js = i3GEO.configura.locaplic+"/ferramentas/identifica/index.js",
901   - temp = function(){
902   - if(x){
903   - i3GEOF.identifica.criaJanelaFlutuante(x,y);
904   - }
905   - else{
906   - i3GEOF.identifica.criaJanelaFlutuante(objposicaocursor.ddx,objposicaocursor.ddy);
  817 + "Template <a class=ajuda_usuario target=_blank href='" + i3GEO.configura.locaplic
  818 + + "/ajuda_usuario.php?idcategoria=1&idajuda=8' >&nbsp;&nbsp;&nbsp;</a>");
  819 + },
  820 + /*
  821 + * Function: tamanho
  822 + *
  823 + * Abre a janela de dialogo da ferramenta opcoes_tamanho
  824 + */
  825 + tamanho : function() {
  826 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.tamanho()", "opcoes_tamanho", "opcoesTamanho");
  827 + },
  828 + /*
  829 + * Function: tipoimagem
  830 + *
  831 + * Abre a janela de dialogo da ferramenta tipoimagem
  832 + */
  833 + tipoimagem : function() {
  834 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.tipoimagem()", "tipoimagem", "tipoimagem");
  835 + },
  836 + /*
  837 + * Function: corFundo
  838 + *
  839 + * Abre a janela de dialogo da ferramenta opcoes_fundo
  840 + */
  841 + corFundo : function() {
  842 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.corFundo()", "opcoes_fundo", "opcoesFundo");
  843 + },
  844 + /*
  845 + * Function: opcoesEscala
  846 + *
  847 + * Abre a janela de dialogo da ferramenta opcoes_escala
  848 + */
  849 + opcoesEscala : function() {
  850 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.opcoesEscala()", "opcoes_escala", "opcoesEscala");
  851 + },
  852 + /*
  853 + * Function: opcoesLegenda
  854 + *
  855 + * Abre a janela de dialogo da ferramenta opcoes_legenda
  856 + */
  857 + opcoesLegenda : function() {
  858 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.opcoesLegenda()", "opcoes_legenda", "opcoesLegenda");
  859 + },
  860 + /*
  861 + * Function: gradeCoord
  862 + *
  863 + * Abre a janela de dialogo da ferramenta gradecoord
  864 + */
  865 + gradeCoord : function() {
  866 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.gradeCoord()", "gradecoord", "gradeCoord");
  867 + },
  868 + /*
  869 + * Function: cliqueTexto
  870 + *
  871 + * Abre a janela de dialogo da ferramenta inseretxt
  872 + */
  873 + cliqueTexto : function() {
  874 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.cliqueTexto()", "inseretxt", "inseretxt");
  875 + },
  876 + /*
  877 + * Function: selecao
  878 + *
  879 + * Abre a janela de dialogo da ferramenta selecao
  880 + */
  881 + selecao : function() {
  882 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.selecao()", "selecao", "selecao");
  883 + },
  884 + /*
  885 + * Function: cliquePonto
  886 + *
  887 + * Abre a janela de dialogo da ferramenta inserexy2
  888 + */
  889 + cliquePonto : function() {
  890 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.cliquePonto()", "inserexy2", "inserexy");
  891 + },
  892 + /*
  893 + * Function: cliqueGrafico
  894 + *
  895 + * Abre a janela de dialogo da ferramenta inseregrafico
  896 + */
  897 + cliqueGrafico : function() {
  898 + i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.cliqueGrafico()", "inseregrafico", "insereGrafico");
  899 + },
  900 + /*
  901 + * Function: cliqueIdentificaDefault
  902 + *
  903 + * Abre a janela de dialogo da ferramenta identifica
  904 + *
  905 + * Parameters:
  906 + *
  907 + * x,y - opcional
  908 + *
  909 + */
  910 + cliqueIdentificaDefault : function(x, y) {
  911 + if (typeof (console) !== 'undefined') {
  912 + console.info("i3GEO.mapa.dialogo.cliqueIdentificaDefault()");
  913 + }
  914 + // @FIXIT nada elegante
  915 + // evita clicar sobre a barra do googlemaps
  916 + if (objposicaocursor.imgx < 70) {
  917 + return;
  918 + }
  919 + // evita ativar a ferramenta se o botao nao estiver ativo
  920 + // e estiver no modo de clique permanente
  921 + if (i3GEO.barraDeBotoes.BOTAOCLICADO !== "identifica" && i3GEO.eventos.cliquePerm.ativo === false) {
  922 + return;
  923 + }
  924 + i3GEO.eventos.MOUSEPARADO.remove("verificaTip()");
  925 + // na interface googleearth verifica se existe mais eventos no mouseclick
  926 + if (i3GEO.Interface.ATUAL === "googleearth" && i3GEO.eventos.MOUSECLIQUE.length > 1) {
  927 + return;
  928 + }
  929 + // javascript nao foi carregado
  930 + if (typeof (i3GEOF.identifica) === 'undefined') {
  931 + // javascript que sera carregado
  932 + var js = i3GEO.configura.locaplic + "/ferramentas/identifica/index.js", temp = function() {
  933 + if (x) {
  934 + i3GEOF.identifica.criaJanelaFlutuante(x, y);
  935 + } else {
  936 + i3GEOF.identifica.criaJanelaFlutuante(objposicaocursor.ddx, objposicaocursor.ddy);
907 937 }
908 938 };
909   - //carrega o script
910   - i3GEO.util.scriptTag(js,temp,"i3GEOF.identifica_script");
911   - }
912   - else{
913   - if(x){
914   - i3GEOF.identifica.buscaDadosTema(i3GEO.temaAtivo,x,y);
  939 + // carrega o script
  940 + i3GEO.util.scriptTag(js, temp, "i3GEOF.identifica_script");
  941 + } else {
  942 + if (x) {
  943 + i3GEOF.identifica.buscaDadosTema(i3GEO.temaAtivo, x, y);
  944 + } else {
  945 + i3GEOF.identifica.buscaDadosTema(i3GEO.temaAtivo, objposicaocursor.ddx, objposicaocursor.ddy);
  946 + }
  947 + return;
915 948 }
916   - else{
917   - i3GEOF.identifica.buscaDadosTema(i3GEO.temaAtivo,objposicaocursor.ddx,objposicaocursor.ddy);
  949 + },
  950 + /*
  951 + * Mostra etiquetas no mapa com informacoes sobre os temas com etiquetas ativas
  952 + *
  953 + * Essa e a funcao padrao definida em i3GEO.configura
  954 + */
  955 + verificaTipDefault : function(e) {
  956 + // evita clicar sobre a barra do googlemaps
  957 + // @FIXIT nada elegante
  958 + // console.warn(objposicaocursor.imgx)
  959 + if (objposicaocursor.imgx < 70) {
  960 + return;
918 961 }
919   - return;
920   - }
921   - },
922   - /*
923   - Mostra etiquetas no mapa com informacoes sobre os temas com etiquetas ativas
  962 + if (typeof (console) !== 'undefined') {
  963 + console.info("i3GEO.mapa.dialogo.verificaTipDefault()");
  964 + }
  965 + if (i3GEO.barraDeBotoes.BOTAOCLICADO !== "identificaBalao" && i3GEO.eventos.cliquePerm.ativo === false) {
  966 + return;
  967 + }
  968 + // na interface googleearth verifica se existe mais eventos no mouseclick
  969 + if (i3GEO.Interface.ATUAL === "googleearth" && i3GEO.eventos.MOUSECLIQUE.length > 1) {
  970 + return;
  971 + }
  972 + var ntemas, etiquetas, j, retorna, targ = "";
924 973  
925   - Essa e a funcao padrao definida em i3GEO.configura
926   - */
927   - verificaTipDefault: function(e){
928   - //evita clicar sobre a barra do googlemaps
929   - //@FIXIT nada elegante
930   - //console.warn(objposicaocursor.imgx)
931   - if(objposicaocursor.imgx < 70){
932   - return;
933   - }
934   - if(typeof(console) !== 'undefined'){console.info("i3GEO.mapa.dialogo.verificaTipDefault()");}
935   - if(i3GEO.barraDeBotoes.BOTAOCLICADO !== "identificaBalao" && i3GEO.eventos.cliquePerm.ativo === false){
936   - return;
937   - }
938   - //na interface googleearth verifica se existe mais eventos no mouseclick
939   - if(i3GEO.Interface.ATUAL === "googleearth" && i3GEO.eventos.MOUSECLIQUE.length > 1){
940   - return;
941   - }
942   - var ntemas,etiquetas,j,retorna,targ = "";
  974 + if (!e) {
  975 + e = window.event;
  976 + }
  977 + try {
  978 + if (e.target) {
  979 + targ = e.target;
  980 + } else {
  981 + if (e.srcElement) {
  982 + targ = e.srcElement;
  983 + }
  984 + }
  985 + if (targ.parentNode) {
  986 + container = targ.parentNode.id;
  987 + // alert(container);
  988 + }
943 989  
944   - if (!e){
945   - e = window.event;
946   - }
947   - try{
948   - if (e.target){
949   - targ = e.target;
  990 + } catch (erro) {
  991 + targ = null;
950 992 }
951   - else{
952   - if (e.srcElement){
953   - targ = e.srcElement;
  993 +
  994 + ntemas = i3GEO.arvoreDeCamadas.CAMADAS.length;
  995 + etiquetas = false;
  996 + for (j = 0; j < ntemas; j += 1) {
  997 + if (i3GEO.arvoreDeCamadas.CAMADAS[j].etiquetas !== "") {
  998 + etiquetas = true;
954 999 }
955 1000 }
956   - if(targ.parentNode){
957   - container = targ.parentNode.id;
958   - //alert(container);
  1001 + if (etiquetas === false) {
  1002 + return;
959 1003 }
960   -
961   - }
962   - catch(erro){ targ = null;}
963   -
964   - ntemas = i3GEO.arvoreDeCamadas.CAMADAS.length;
965   - etiquetas = false;
966   - for(j=0;j<ntemas;j += 1)
967   - {if(i3GEO.arvoreDeCamadas.CAMADAS[j].etiquetas !== "")
968   - {etiquetas = true;}}
969   - if(etiquetas === false)
970   - {return;}
971   - if(i3GEO.Interface.ATUAL === "googleearth")
972   - {i3GEO.Interface.googleearth.aguarde.visibility = "visible";}
973   - retorna = function(retorno){
974   - var classeCor,pos,temp,n,i,mostra,res,temas,ntemas,titulo,tips,j,ntips,ins,r,ds,nds,s,balloon,
975   - configura = i3GEO.configura,
976   - tipotip = configura.tipotip;
977   - i = $i("i3geo_rosa");
978   - if(i)
979   - {i.style.display="none";}
980   - mostra = false;
981   - //try{
982   - retorno = retorno.data;
983   - if (retorno !== "")
984   - {
985   - res = "";
986   - temas = retorno;
987   - if(!temas){return;}
988   - ntemas = temas.length;
989   - for(j=0;j<ntemas;j += 1){
990   - titulo = temas[j].nome;
991   - if (tipotip === "completo" || tipotip === "balao")
992   - {titulo = "<span class='toolTipBalaoTitulo'><b>"+titulo+"</b></span><br>";}
993   - else
994   - {titulo = "";}
995   - tips = (temas[j].resultado.tips).split(",");
996   - ntips = tips.length;
997   - ins = "";
998   - ds = temas[j].resultado.dados;
999   - if(ds !== " " && ds[0] && ds[0] != " "){
1000   - try{
1001   - nds = ds.length;
1002   - classeCor = "toolTipBalaoTexto";
1003   - for(s=0;s<nds;s += 1){
1004   - ins += "<div class='"+classeCor+"'>";
1005   - for(r=0;r<ntips;r += 1){
1006   - try{
1007   - eval("var alias = ds[s]."+tips[r]+".alias");
1008   - eval("var valor = ds[s]."+tips[r]+".valor");
1009   - eval("var link = ds[s]."+tips[r]+".link");
1010   - eval("var img = ds[s]."+tips[r]+".img");
1011   - if (tipotip === "completo" || tipotip === "balao"){
1012   - if(valor !== "" && link === "")
1013   - {ins += "<span>" + alias + " :" + valor + "</span><br>";}
1014   - if(valor !== "" && link !== "")
1015   - {ins += "<span>" + alias + " : <a style='color:blue;cursor:pointer' target=_blanck href='"+link+"' >" + valor + "</a></span><br>";}
1016   - if(img !== "")
1017   - {ins += img+"<br>";}
1018   - mostra = true;
1019   - }
1020   - else{
1021   - ins += "<span>" + valor + "</span><br>";
1022   - mostra = true;
  1004 + if (i3GEO.Interface.ATUAL === "googleearth") {
  1005 + i3GEO.Interface.googleearth.aguarde.visibility = "visible";
  1006 + }
  1007 + retorna =
  1008 + function(retorno) {
  1009 + var classeCor, pos, temp, n, i, mostra, res, temas, ntemas, titulo, tips, j, ntips, ins, r, ds, nds, s, balloon, configura =
  1010 + i3GEO.configura, tipotip = configura.tipotip;
  1011 + i = $i("i3geo_rosa");
  1012 + if (i) {
  1013 + i.style.display = "none";
  1014 + }
  1015 + mostra = false;
  1016 + // try{
  1017 + retorno = retorno.data;
  1018 + if (retorno !== "") {
  1019 + res = "";
  1020 + temas = retorno;
  1021 + if (!temas) {
  1022 + return;
  1023 + }
  1024 + ntemas = temas.length;
  1025 + for (j = 0; j < ntemas; j += 1) {
  1026 + titulo = temas[j].nome;
  1027 + if (tipotip === "completo" || tipotip === "balao") {
  1028 + titulo = "<span class='toolTipBalaoTitulo'><b>" + titulo + "</b></span><br>";
  1029 + } else {
  1030 + titulo = "";
  1031 + }
  1032 + tips = (temas[j].resultado.tips).split(",");
  1033 + ntips = tips.length;
  1034 + ins = "";
  1035 + ds = temas[j].resultado.dados;
  1036 + if (ds !== " " && ds[0] && ds[0] != " ") {
  1037 + try {
  1038 + nds = ds.length;
  1039 + classeCor = "toolTipBalaoTexto";
  1040 + for (s = 0; s < nds; s += 1) {
  1041 + ins += "<div class='" + classeCor + "'>";
  1042 + for (r = 0; r < ntips; r += 1) {
  1043 + try {
  1044 + eval("var alias = ds[s]." + tips[r] + ".alias");
  1045 + eval("var valor = ds[s]." + tips[r] + ".valor");
  1046 + eval("var link = ds[s]." + tips[r] + ".link");
  1047 + eval("var img = ds[s]." + tips[r] + ".img");
  1048 + if (tipotip === "completo" || tipotip === "balao") {
  1049 + if (valor !== "" && link === "") {
  1050 + ins += "<span>" + alias + " :" + valor + "</span><br>";
  1051 + }
  1052 + if (valor !== "" && link !== "") {
  1053 + ins +=
  1054 + "<span>" + alias
  1055 + + " : <a style='color:blue;cursor:pointer' target=_blanck href='"
  1056 + + link + "' >" + valor + "</a></span><br>";
  1057 + }
  1058 + if (img !== "") {
  1059 + ins += img + "<br>";
  1060 + }
  1061 + mostra = true;
  1062 + } else {
  1063 + ins += "<span>" + valor + "</span><br>";
  1064 + mostra = true;
  1065 + }
  1066 + } catch (e) {
1023 1067 }
1024 1068 }
1025   - catch(e){}
1026   - }
1027   - if(classeCor === "toolTipBalaoTexto"){
1028   - classeCor = "toolTipBalaoTexto1";
  1069 + if (classeCor === "toolTipBalaoTexto") {
  1070 + classeCor = "toolTipBalaoTexto1";
  1071 + } else {
  1072 + classeCor = "toolTipBalaoTexto";
  1073 + }
  1074 + ins += "</div>";
1029 1075 }
1030   - else{
1031   - classeCor = "toolTipBalaoTexto";
  1076 +
  1077 + } catch (e) {
  1078 + if (typeof (console) !== 'undefined') {
  1079 + console.error(e);
1032 1080 }
1033   - ins += "</div>";
1034 1081 }
1035   -
1036   -
1037 1082 }
1038   - catch(e){
1039   - if(typeof(console) !== 'undefined'){console.error(e);}
  1083 + if (ins !== "") {
  1084 + res += titulo + ins;
1040 1085 }
1041 1086 }
1042   - if(ins !== "")
1043   - {res += titulo + ins;}
1044   - }
1045   - if(!mostra){
1046   - if($i("tip"))
1047   - {$i("tip").style.display="none";}
1048   - }
1049   - else{
1050   - if(tipotip !== "balao"){
1051   - n = i3GEO.janela.tip();
1052   - $i(n).style.textAlign="left";
1053   - $i(n).innerHTML += res;
1054   - }
1055   - else{
1056   - if(i3GEO.Interface.ATUAL === "googleearth"){
1057   - i3GEO.Interface.googleearth.balao(res,objposicaocursor.ddx,objposicaocursor.ddy);
1058   - i3GEO.Interface.googleearth.aguarde.visibility = "hidden";
  1087 + if (!mostra) {
  1088 + if ($i("tip")) {
  1089 + $i("tip").style.display = "none";
1059 1090 }
1060   - else{
1061   - i3GEO.util.criaPin('marcaIdentifica',configura.locaplic+"/imagens/grabber.gif","12px","12px");
1062   - i3GEO.janela.TIPS.push('marcaIdentifica');
1063   - pos = i3GEO.util.posicionaImagemNoMapa("marcaIdentifica");
1064   - balloon = new Balloon();
1065   - BalloonConfig(balloon,'GBox');
1066   - balloon.delayTime = 0;
1067   - res = "<div style=text-align:left;overflow:auto;height:"+configura.alturatip+";width:"+configura.larguratip+"; >"+res+"</div>";
1068   - temp = $i('marcaIdentifica');
1069   - if(temp){
1070   - balloon.showTooltip(temp,res,null,null,null,pos[1],pos[0]);
1071   - balloon.addCloseButton();
1072   - temp.onclick = function(e){
1073   - if (!e){e = window.event;}
1074   - document.body.removeChild(balloon.getEventTarget(e));
1075   - balloon.hideTooltip();
1076   - };
  1091 + } else {
  1092 + if (tipotip !== "balao") {
  1093 + n = i3GEO.janela.tip();
  1094 + $i(n).style.textAlign = "left";
  1095 + $i(n).innerHTML += res;
  1096 + } else {
  1097 + if (i3GEO.Interface.ATUAL === "googleearth") {
  1098 + i3GEO.Interface.googleearth.balao(res, objposicaocursor.ddx, objposicaocursor.ddy);
  1099 + i3GEO.Interface.googleearth.aguarde.visibility = "hidden";
  1100 + } else {
  1101 + i3GEO.util.criaPin('marcaIdentifica', configura.locaplic + "/imagens/grabber.gif", "12px", "12px");
  1102 + i3GEO.janela.TIPS.push('marcaIdentifica');
  1103 + pos = i3GEO.util.posicionaImagemNoMapa("marcaIdentifica");
  1104 + balloon = new Balloon();
  1105 + BalloonConfig(balloon, 'GBox');
  1106 + balloon.delayTime = 0;
  1107 + res =
  1108 + "<div style=text-align:left;overflow:auto;height:" + configura.alturatip + ";width:"
  1109 + + configura.larguratip + "; >" + res + "</div>";
  1110 + temp = $i('marcaIdentifica');
  1111 + if (temp) {
  1112 + balloon.showTooltip(temp, res, null, null, null, pos[1], pos[0]);
  1113 + balloon.addCloseButton();
  1114 + temp.onclick = function(e) {
  1115 + if (!e) {
  1116 + e = window.event;
  1117 + }
  1118 + document.body.removeChild(balloon.getEventTarget(e));
  1119 + balloon.hideTooltip();
  1120 + };
1077 1121  
  1122 + }
1078 1123 }
1079 1124 }
1080 1125 }
1081 1126 }
  1127 + if ($i(i3GEO.Interface.IDMAPA)) {
  1128 + $i(i3GEO.Interface.IDMAPA).title = "";
  1129 + temp = "identifica";
  1130 + if (i3GEO.Interface.ATIVAMENUCONTEXTO) {
  1131 + temp = "identifica_contexto";
  1132 + }
  1133 + i3GEO.util.mudaCursor(configura.cursores, temp, i3GEO.Interface.IDMAPA, configura.locaplic);
  1134 + }
  1135 + };
  1136 + xy = i3GEO.navega.centroDoMapa();
  1137 + i3GEO.php.identifica3(
  1138 + retorna,
  1139 + objposicaocursor.ddx,
  1140 + objposicaocursor.ddy,
  1141 + "5",
  1142 + "tip",
  1143 + i3GEO.configura.locaplic,
  1144 + i3GEO.configura.sid,
  1145 + "ligados",
  1146 + i3GEO.parametros.mapexten);
  1147 + }
  1148 + },
  1149 + /*
  1150 + * Function: compactaLayerGrafico
  1151 + *
  1152 + * Retorna uma string no formato base64 + JSON contendo as geometrias existentes no layer grafico do mapa Essas geometrias podem ser
  1153 + * criadas com o editor vetorial
  1154 + */
  1155 + compactaLayerGrafico : function() {
  1156 + var geos = false, geometrias = [], n = 0, i, g;
  1157 + if (i3GEO.editorOL && i3GEO.desenho.layergrafico && i3GEO.desenho.layergrafico.features) {
  1158 + geos = i3GEO.desenho.layergrafico.features;
  1159 + n = geos.length;
  1160 + for (i = 0; i < n; i++) {
  1161 + g = {
  1162 + "atributos" : geos[i].attributes,
  1163 + "geometria" : geos[i].geometry.toString()
  1164 + };
  1165 + geometrias.push(g);
  1166 + }
  1167 + }
  1168 + g = YAHOO.lang.JSON.stringify(geometrias);
  1169 + return i3GEO.util.base64encode(g);
  1170 + },
  1171 + /*
  1172 + * Function: desCompactaLayerGrafico
  1173 + *
  1174 + * Descompacta um layer grafico criado com compactaLayerGrafico
  1175 + */
  1176 + desCompactaLayerGrafico : function(geometrias) {
  1177 + geometrias = YAHOO.lang.JSON.parse(geometrias);
  1178 + // carrega o script do editor vetorial
  1179 + if (geometrias.length > 0) {
  1180 + var inicia = function() {
  1181 + i3GEO.barraDeBotoes.editor.ativaPainel();
  1182 + var n = geometrias.length, i;
  1183 + for (i = 0; i < n; i++) {
  1184 + i3GEO.editorOL.adicionaFeatureWkt(geometrias[i].geometria, geometrias[i].atributos);
1082 1185 }
1083   - if($i(i3GEO.Interface.IDMAPA)){
1084   - $i(i3GEO.Interface.IDMAPA).title = "";
1085   - temp = "identifica";
1086   - if(i3GEO.Interface.ATIVAMENUCONTEXTO)
1087   - {temp = "identifica_contexto";}
1088   - i3GEO.util.mudaCursor(configura.cursores,temp,i3GEO.Interface.IDMAPA,configura.locaplic);
1089   - }
1090   - };
1091   - xy = i3GEO.navega.centroDoMapa();
1092   - i3GEO.php.identifica3(retorna,objposicaocursor.ddx,objposicaocursor.ddy,"5","tip",i3GEO.configura.locaplic,i3GEO.configura.sid,"ligados",i3GEO.parametros.mapexten);
1093   - }
1094   - },
1095   - /*
1096   - Function: compactaLayerGrafico
1097   -
1098   - Retorna uma string no formato base64 + JSON contendo as geometrias existentes no layer grafico do mapa
1099   - Essas geometrias podem ser criadas com o editor vetorial
1100   - */
1101   - compactaLayerGrafico: function(){
1102   - var geos = false,
1103   - geometrias = [],
1104   - n = 0,
1105   - i,g;
1106   - if(i3GEO.editorOL && i3GEO.desenho.layergrafico && i3GEO.desenho.layergrafico.features){
1107   - geos = i3GEO.desenho.layergrafico.features;
1108   - n = geos.length;
1109   - for(i = 0;i < n; i++){
1110   - g = {
1111   - "atributos": geos[i].attributes,
1112   - "geometria": geos[i].geometry.toString()
  1186 + $i(i3GEO.editorOL.layergrafico.id).style.zIndex = 5000;
1113 1187 };
1114   - geometrias.push(g);
  1188 + i3GEO.util.scriptTag(i3GEO.configura.locaplic + "/mashups/openlayers.js", inicia, "openlayers.js", true);
1115 1189 }
1116   - }
1117   - g = YAHOO.lang.JSON.stringify(geometrias);
1118   - return i3GEO.util.base64encode(g);
1119   - },
1120   - /*
1121   - Function: desCompactaLayerGrafico
1122   -
1123   - Descompacta um layer grafico criado com compactaLayerGrafico
1124   - */
1125   - desCompactaLayerGrafico: function(geometrias){
1126   - geometrias = YAHOO.lang.JSON.parse(geometrias);
1127   - //carrega o script do editor vetorial
1128   - if(geometrias.length > 0){
1129   - var inicia = function(){
1130   - i3GEO.barraDeBotoes.editor.ativaPainel();
1131   - var n = geometrias.length,
1132   - i;
1133   - for(i=0;i<n;i++){
1134   - i3GEO.editorOL.adicionaFeatureWkt(geometrias[i].geometria,geometrias[i].atributos);
1135   - }
1136   - $i(i3GEO.editorOL.layergrafico.id).style.zIndex = 5000;
1137   - };
1138   - i3GEO.util.scriptTag(
1139   - i3GEO.configura.locaplic+"/mashups/openlayers.js",
1140   - inicia,
1141   - "openlayers.js",
1142   - true
1143   - );
1144   - }
1145   - },
1146   - //
1147   - //aplica as preferencias armazenadas localmente ou vindas de um mapa salvo no banco de dados
1148   - //
1149   - aplicaPreferencias: function(cookies){
1150   - //aplica preferencias do usuario
1151   - var props,
1152   - nprops,
1153   - i,
1154   - temp = [],
1155   - pint;
1156   - if(!cookies){
1157   - cookies = i3GEO.util.pegaDadosLocal("preferenciasDoI3Geo");
1158   - }
1159   - if(cookies){
1160   - props = cookies.split("::");
1161   - nprops = props.length;
1162   - for(i=0;i<nprops;i++){
1163   - try{
1164   - temp = props[i].split("|");
1165   - pint = parseInt(temp[1],10);
1166   - if(temp[1] === 'true' || temp[1] === 'false'){
1167   - if(temp[1] === 'true'){
1168   - temp[1] = true;
  1190 + },
  1191 + /*
  1192 + * Function: restauraGraficos
  1193 + *
  1194 + * Descompacta graficos salvos no mapa atual
  1195 + */
  1196 + restauraGraficos : function(graficos) {
  1197 + // carrega o script do editor vetorial
  1198 + if (graficos.length > 0) {
  1199 + var inicia = function() {
  1200 + i3GEOF.graficointerativo1.restauraGraficos(graficos);
  1201 + };
  1202 + i3GEO.util.scriptTag(
  1203 + i3GEO.configura.locaplic + "/ferramentas/graficointerativo1/dependencias.php",
  1204 + inicia,
  1205 + "graficointerativo1",
  1206 + true);
  1207 + }
  1208 + },
  1209 + //
  1210 + // aplica as preferencias armazenadas localmente ou vindas de um mapa salvo no banco de dados
  1211 + //
  1212 + aplicaPreferencias : function(cookies) {
  1213 + // aplica preferencias do usuario
  1214 + var props, nprops, i, temp = [], pint;
  1215 + if (!cookies) {
  1216 + cookies = i3GEO.util.pegaDadosLocal("preferenciasDoI3Geo");
  1217 + }
  1218 + if (cookies) {
  1219 + props = cookies.split("::");
  1220 + nprops = props.length;
  1221 + for (i = 0; i < nprops; i++) {
  1222 + try {
  1223 + temp = props[i].split("|");
  1224 + pint = parseInt(temp[1], 10);
  1225 + if (temp[1] === 'true' || temp[1] === 'false') {
  1226 + if (temp[1] === 'true') {
  1227 + temp[1] = true;
  1228 + }
  1229 + if (temp[1] === 'false') {
  1230 + temp[1] = false;
  1231 + }
  1232 + eval(temp[0] + " = " + temp[1] + ";");
  1233 + } else if (pint + "px" == temp[1]) {
  1234 + eval(temp[0] + " = '" + temp[1] + "';");
  1235 + } else if (YAHOO.lang.isNumber(pint)) {
  1236 + eval(temp[0] + " = " + temp[1] + ";");
  1237 + } else {
  1238 + eval(temp[0] + " = '" + temp[1] + "';");
1169 1239 }
1170   - if(temp[1] === 'false'){
1171   - temp[1] = false;
  1240 + // algumas propriedades usam cookies
  1241 + if (temp[0] == "i3GEO.configura.mapaRefDisplay") {
  1242 + i3GEO.util.insereCookie("i3GEO.configura.mapaRefDisplay", temp[1]);
  1243 + }
  1244 + } catch (e) {
  1245 + if (typeof (console) !== 'undefined') {
  1246 + console.warn(temp[0] + " = " + temp[1] + ";");
1172 1247 }
1173   - eval(temp[0]+" = "+temp[1]+";");
1174   - }
1175   - else if(pint+"px" == temp[1]){
1176   - eval(temp[0]+" = '"+temp[1]+"';");
1177   - }
1178   - else if(YAHOO.lang.isNumber(pint)){
1179   - eval(temp[0]+" = "+temp[1]+";");
1180   - }
1181   - else{
1182   - eval(temp[0]+" = '"+temp[1]+"';");
1183   - }
1184   - //algumas propriedades usam cookies
1185   - if(temp[0] == "i3GEO.configura.mapaRefDisplay"){
1186   - i3GEO.util.insereCookie("i3GEO.configura.mapaRefDisplay",temp[1]);
1187 1248 }
1188 1249 }
1189   - catch(e){
1190   - if(typeof(console) !== 'undefined'){console.warn(temp[0]+" = "+temp[1]+";");}
1191   - }
1192 1250 }
1193 1251 }
1194   - }
1195   -};
1196   -//YAHOO.log("carregou classe mapa", "Classes i3geo");
  1252 + };
  1253 +// YAHOO.log("carregou classe mapa", "Classes i3geo");
... ...
classesjs/classe_php.js
... ... @@ -1670,7 +1670,7 @@ i3GEO.php = {
1670 1670  
1671 1671 Salva o mapfile atual no banco de dados de administracao
1672 1672 */
1673   - salvaMapaBanco: function(funcao,titulo,id_mapa,preferencias,geometrias){
  1673 + salvaMapaBanco: function(funcao,titulo,id_mapa,preferencias,geometrias,graficos){
1674 1674 //pega as preferencias do usuario tambem
1675 1675 if(preferencias){
1676 1676 try{
... ... @@ -1698,6 +1698,22 @@ i3GEO.php = {
1698 1698 else{
1699 1699 geometrias = "";
1700 1700 }
  1701 + //pega as ferramentas do tipo grafico
  1702 + if(graficos && i3GEOF && i3GEOF.graficointerativo1){
  1703 + try{
  1704 + graficos = i3GEOF.graficointerativo1.compactaConfig();
  1705 + if(!graficos){
  1706 + graficos = "";
  1707 + }
  1708 + }
  1709 + catch(e){
  1710 + graficos = "";
  1711 + }
  1712 + }
  1713 + else{
  1714 + graficos = "";
  1715 + }
  1716 +
1701 1717 var url = (window.location.href.split("?")[0]),
1702 1718 p = i3GEO.configura.locaplic+"/admin/php/mapas.php?";
1703 1719 par = "funcao=salvaMapfile" +
... ... @@ -1708,7 +1724,7 @@ i3GEO.php = {
1708 1724 cp = new cpaint();
1709 1725 cp.set_transfer_mode('POST');
1710 1726 cp.set_response_type("JSON");
1711   - cp.call(p+par,"foo",funcao,"&preferenciasbase64=" + preferencias + "&geometriasbase64=" + geometrias);
  1727 + cp.call(p+par,"foo",funcao,"&preferenciasbase64=" + preferencias + "&geometriasbase64=" + geometrias + "&graficosbase64=" + graficos);
1712 1728 },
1713 1729 /*
1714 1730 Function: marcadores2shp
... ...
classesjs/classe_util.js
... ... @@ -2882,7 +2882,7 @@ i3GEO.util = {
2882 2882 YAHOO.util.Connect.asyncRequest("GET", sUrl, callback);
2883 2883 },
2884 2884 /*
2885   - Verifica se a fun��o html de armazenamento local esta disponivel no navegador
  2885 + Verifica se a funcao html de armazenamento local esta disponivel no navegador
2886 2886 */
2887 2887 verifica_html5_storage: function(){
2888 2888 if(typeof(Storage)!=="undefined"){
... ...
classesphp/mapa_inicia.php
... ... @@ -372,7 +372,7 @@ function iniciaMapa()
372 372 //parametros de inicializacao armazenados com o mapa quando o usuario utiliza a opcao de salvar mapa no nbanco de dados
373 373 $customizacoesinit = $m->mapa->getmetadata("CUSTOMIZACOESINIT");
374 374 $res["editavel"] = $m->mapa->getmetadata("EDITAVEL");
375   - $m->mapa->setmetadata("CUSTOMIZACOESINIT","");
  375 + //$m->mapa->setmetadata("CUSTOMIZACOESINIT","");
376 376 $m->salva();
377 377 copy($map_file,(str_replace(".map","reinc.map",$map_file)));
378 378 copy($map_file,(str_replace(".map","seguranca.map",$map_file)));
... ...
ferramentas/graficointerativo1/index.js
1 1 /**
2 2 * Title: Gr&aacute;fico interativo 1
3   - *
  3 + *
4 4 * Representa&ccedil;&atilde;o gr&aacute;fica de dados. O gr&aacute;fico &eacute; constru&iacute;do tendo como base os atributos de um tema
5 5 * e &eacute; modificado conforme o usu&aacute;rio navega pelo mapa. A renderiza&ccedil;&atilde;o do gr&aacute;fico &eacute; feito pelo
6 6 * navegador por meio do aplicativo openflashchart. Os dados que ser&atilde;o utilizados no gr&aacute;fico s&atilde;o baseados em um
7 7 * elemento TABLE. Esse elemento pode ser montado com base na tabela de atributos e editada pelo usu&aacute;rio. Os dados podem
8 8 * tamb&eacute;m ser inseridos como par&acirc;metros na inicializa&ccedil;&atilde;o da ferramenta, permitindo que o gr&aacute;fico seja
9 9 * utilizado por outras ferramentas.
10   - *
  10 + *
  11 + * Gr&aacute;ficos podem ser salvos no mapa. Veja a fun&ccedil;&atilde;o compactaConfig que gera uma string em base64 com as configura&ccedil;&otilde;es em JSON
  12 + * de todos os gr&aacute;ficos abertos no mapa
  13 + *
  14 + * Os gr&aacute;ficos podem ser restaurados usando-se a fun&ccedil;&atilde;o restauraGraficos
  15 + *
11 16 * Veja:
12   - *
  17 + *
13 18 * <i3GEO.analise.dialogo.graficointerativo1>
14   - *
  19 + *
15 20 * Arquivo:
16   - *
  21 + *
17 22 * i3geo/ferramentas/graficointerativo1/index.js.php
18   - *
  23 + *
19 24 * Licenca:
20   - *
  25 + *
21 26 * GPL2
22   - *
  27 + *
23 28 * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
24   - *
  29 + *
25 30 * Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
26   - *
  31 + *
27 32 * Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a
28 33 * P&uacute;blica Geral GNU conforme publicada pela Free Software Foundation;
29   - *
  34 + *
30 35 * Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til, por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a
31 36 * garantia impl&iacute;cita de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA. Consulte a Licen&ccedil;a
32 37 * P&uacute;blica Geral do GNU para mais detalhes. Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do
... ... @@ -38,7 +43,7 @@ if (typeof (i3GEOF) === &#39;undefined&#39;) {
38 43 }
39 44 /**
40 45 * Classe: i3GEOF.graficointerativo1
41   - *
  46 + *
42 47 */
43 48 i3GEOF.graficointerativo1 =
44 49 {
... ... @@ -57,124 +62,304 @@ i3GEOF.graficointerativo1 =
57 62 mustacheHash : function(idjanela) {
58 63 return {
59 64 "idjanela" : idjanela,
60   - "idjanelaA" : '"'+idjanela+'"',
  65 + "idjanelaA" : '"' + idjanela + '"',
61 66 "locaplic" : i3GEO.configura.locaplic,
62   - "prop": $trad("p13"),
63   - "tipo": $trad(1, i3GEOF.graficointerativo1.dicionario),
64   - "dados": $trad(2, i3GEOF.graficointerativo1.dicionario),
65   - "grafico": $trad(3, i3GEOF.graficointerativo1.dicionario),
66   - "escolhatipo": $trad(4, i3GEOF.graficointerativo1.dicionario),
67   - "pizza2d": $trad(5, i3GEOF.graficointerativo1.dicionario),
68   - "areasimp": $trad(6, i3GEOF.graficointerativo1.dicionario),
69   - "distpt": $trad(7, i3GEOF.graficointerativo1.dicionario),
70   - "linhassimp": $trad(8, i3GEOF.graficointerativo1.dicionario),
71   - "arvore": $trad(9, i3GEOF.graficointerativo1.dicionario),
72   - "barrasv": $trad(10, i3GEOF.graficointerativo1.dicionario),
73   - "barrash": $trad(11, i3GEOF.graficointerativo1.dicionario),
74   - "configgr": $trad(12, i3GEOF.graficointerativo1.dicionario),
75   - "tema": $trad(13, i3GEOF.graficointerativo1.dicionario),
76   - "titulo": $trad(50, i3GEOF.graficointerativo1.dicionario),
77   - "titux": $trad(51, i3GEOF.graficointerativo1.dicionario),
78   - "tituy":$trad(52, i3GEOF.graficointerativo1.dicionario),
79   - "itemcx": $trad(14, i3GEOF.graficointerativo1.dicionario),
80   - "itemcy": $trad(15, i3GEOF.graficointerativo1.dicionario),
81   - "excluirval": $trad(16, i3GEOF.graficointerativo1.dicionario),
82   - "geracor": $trad(17, i3GEOF.graficointerativo1.dicionario),
83   - "obterdados": $trad(18, i3GEOF.graficointerativo1.dicionario),
84   - "seescolher": $trad(19, i3GEOF.graficointerativo1.dicionario),
85   - "inclinax": $trad(20, i3GEOF.graficointerativo1.dicionario),
86   - "adlinbarras": $trad(21, i3GEOF.graficointerativo1.dicionario),
87   - "utilizvalacum": $trad(22, i3GEOF.graficointerativo1.dicionario),
88   - "utilizvalrelat": $trad(23, i3GEOF.graficointerativo1.dicionario),
89   - "ordenax": $trad(24, i3GEOF.graficointerativo1.dicionario),
90   - "naoprocessa": $trad(25, i3GEOF.graficointerativo1.dicionario),
91   - "stacked": $trad(48, i3GEOF.graficointerativo1.dicionario),
92   - "linhasnascols": $trad(49, i3GEOF.graficointerativo1.dicionario),
93   - "media": $trad(27, i3GEOF.graficointerativo1.dicionario),
94   - "tipoagregay": $trad(28, i3GEOF.graficointerativo1.dicionario),
95   - "fatcalclarg": $trad(29, i3GEOF.graficointerativo1.dicionario),
96   - "janelasep": $trad(30, i3GEOF.graficointerativo1.dicionario),
97   - "soma": $trad(26, i3GEOF.graficointerativo1.dicionario),
98   - "i3GEOgraficointerativo1Titulo": $inputText("", "", idjanela + "i3GEOgraficointerativo1Titulo", "", 40, ""),
99   - "i3GEOgraficointerativo1TituloX": $inputText("", "", idjanela + "i3GEOgraficointerativo1TituloX", "", 40, ""),
100   - "i3GEOgraficointerativo1TituloY": $inputText("", "", idjanela + "i3GEOgraficointerativo1TituloY", "", 40, ""),
101   - "i3GEOgraficointerativo1excluir": $inputText("", "", idjanela + "i3GEOgraficointerativo1excluir", "", 3, "")
  67 + "prop" : $trad("p13"),
  68 + "tipo" : $trad(1, i3GEOF.graficointerativo1.dicionario),
  69 + "dados" : $trad(2, i3GEOF.graficointerativo1.dicionario),
  70 + "grafico" : $trad(3, i3GEOF.graficointerativo1.dicionario),
  71 + "escolhatipo" : $trad(4, i3GEOF.graficointerativo1.dicionario),
  72 + "pizza2d" : $trad(5, i3GEOF.graficointerativo1.dicionario),
  73 + "areasimp" : $trad(6, i3GEOF.graficointerativo1.dicionario),
  74 + "distpt" : $trad(7, i3GEOF.graficointerativo1.dicionario),
  75 + "linhassimp" : $trad(8, i3GEOF.graficointerativo1.dicionario),
  76 + "arvore" : $trad(9, i3GEOF.graficointerativo1.dicionario),
  77 + "barrasv" : $trad(10, i3GEOF.graficointerativo1.dicionario),
  78 + "barrash" : $trad(11, i3GEOF.graficointerativo1.dicionario),
  79 + "configgr" : $trad(12, i3GEOF.graficointerativo1.dicionario),
  80 + "tema" : $trad(13, i3GEOF.graficointerativo1.dicionario),
  81 + "titulo" : $trad(50, i3GEOF.graficointerativo1.dicionario),
  82 + "titux" : $trad(51, i3GEOF.graficointerativo1.dicionario),
  83 + "tituy" : $trad(52, i3GEOF.graficointerativo1.dicionario),
  84 + "itemcx" : $trad(14, i3GEOF.graficointerativo1.dicionario),
  85 + "itemcy" : $trad(15, i3GEOF.graficointerativo1.dicionario),
  86 + "excluirval" : $trad(16, i3GEOF.graficointerativo1.dicionario),
  87 + "geracor" : $trad(17, i3GEOF.graficointerativo1.dicionario),
  88 + "obterdados" : $trad(18, i3GEOF.graficointerativo1.dicionario),
  89 + "seescolher" : $trad(19, i3GEOF.graficointerativo1.dicionario),
  90 + "inclinax" : $trad(20, i3GEOF.graficointerativo1.dicionario),
  91 + "adlinbarras" : $trad(21, i3GEOF.graficointerativo1.dicionario),
  92 + "utilizvalacum" : $trad(22, i3GEOF.graficointerativo1.dicionario),
  93 + "utilizvalrelat" : $trad(23, i3GEOF.graficointerativo1.dicionario),
  94 + "ordenax" : $trad(24, i3GEOF.graficointerativo1.dicionario),
  95 + "naoprocessa" : $trad(25, i3GEOF.graficointerativo1.dicionario),
  96 + "stacked" : $trad(48, i3GEOF.graficointerativo1.dicionario),
  97 + "linhasnascols" : $trad(49, i3GEOF.graficointerativo1.dicionario),
  98 + "media" : $trad(27, i3GEOF.graficointerativo1.dicionario),
  99 + "tipoagregay" : $trad(28, i3GEOF.graficointerativo1.dicionario),
  100 + "fatcalclarg" : $trad(29, i3GEOF.graficointerativo1.dicionario),
  101 + "janelasep" : $trad(30, i3GEOF.graficointerativo1.dicionario),
  102 + "soma" : $trad(26, i3GEOF.graficointerativo1.dicionario),
  103 + "i3GEOgraficointerativo1Titulo" : $inputText("", "", idjanela + "i3GEOgraficointerativo1Titulo", "", 40, ""),
  104 + "i3GEOgraficointerativo1TituloX" : $inputText("", "", idjanela + "i3GEOgraficointerativo1TituloX", "", 40, ""),
  105 + "i3GEOgraficointerativo1TituloY" : $inputText("", "", idjanela + "i3GEOgraficointerativo1TituloY", "", 40, ""),
  106 + "i3GEOgraficointerativo1excluir" : $inputText("", "", idjanela + "i3GEOgraficointerativo1excluir", "", 3, "")
102 107 };
103 108 },
104 109 /**
105 110 * Propriedade: dados
106   - *
  111 + *
107 112 * Dados que serao utilizados. Pode ser passado como parametro.
108   - *
  113 + *
109 114 * Default: {false}
110 115 */
111 116 dados : false,
112 117 /**
113 118 * Propriedade: titulo
114   - *
  119 + *
115 120 * T&iacute;tulo do gr&aacute;fico. Se for vazio, ser&aacute; obtido do nome do tema selecionado
116 121 */
117 122 titulo : "",
118 123 /**
119 124 * Propriedade: tipo
120   - *
  125 + *
121 126 * Tipo de gr&aacute;fico escolhido pelo usu&aacute;rio.
122 127 */
123 128 tipo : "",
124 129 /**
125 130 * Propriedade: acumula
126   - *
  131 + *
127 132 * Acumula os valores ao gerar o gr&aacute;fico
128   - *
  133 + *
129 134 * Type: {boolean}
130   - *
  135 + *
131 136 * Default: {false}
132 137 */
133 138 acumula : false,
134 139 /**
135 140 * Propriedade: relativa
136   - *
  141 + *
137 142 * Utiliza valores relativos ao criar o gr&aacute;fico
138   - *
  143 + *
139 144 * Type: {boolean}
140   - *
  145 + *
141 146 * Default: {false}
142 147 */
143 148 relativa : false,
144 149 /**
145 150 * Propriedade: dadospuros
146   - *
  151 + *
147 152 * N&atilde;o faz nenhum tipo de processamento nos dados antes de gerar o gr&aacute;fico
148   - *
  153 + *
149 154 * Type: {boolean}
150   - *
  155 + *
151 156 * Default: {false}
152 157 */
153 158 dadospuros : false,
154 159 /**
155   - * Function: iniciaDicionario
156   - *
  160 + * iniciaDicionario (depreciado na versao 6.0)
  161 + *
157 162 * Carrega o dicion&aacute;rio e chama a fun&ccedil;&atilde;o que inicia a ferramenta
158   - *
  163 + *
159 164 * O Javascript &eacute; carregado com o id i3GEOF.nomedaferramenta.dicionario_script
160 165 */
161   - iniciaDicionario : function(dados) {
162   - i3GEOF.tabela.iniciaJanelaFlutuante(dados);
  166 + iniciaDicionario : function(parametros) {
  167 + i3GEOF.tabela.iniciaJanelaFlutuante(parametros);
  168 + },
  169 + /**
  170 + * Configura o grafico conforme um objeto contendo parametros e opcionalmente os dados Alguns parametros possuem definicoes padrao,
  171 + * usadas quando o valor nao e passado
  172 + *
  173 + * Qualquer outro campo de formulario pode ter seu valor passado como parametro, desde que use o mesmo ID, excluindo-se do nome do
  174 + * ID o prefixo (codigo da janela)
  175 + *
  176 + * parametros {objeto} com os seguintes elementos:
  177 + *
  178 + * idjanela - id do grafico. Usado como prefixo para inserir os identificadores dos elementos DOM que fazem parte da interface do
  179 + * grafico. Se existir um elemento dom esse id, o grafico sera inserido nesse elemento
  180 + *
  181 + * tema - codigo do tema existente no mapa e que sera a fonte para os dados
  182 + *
  183 + * atualiza true|false - a janela sera atualizada na navegacao do mapa ou nao
  184 + *
  185 + * dados - dados que comporao o mapa. Caso nao existam, serao obtidos de tema
  186 + *
  187 + * acumula true|false - acumula os valores de cada elemento do grafico
  188 + *
  189 + * relativa true|false - utiliza valores relativos nos eixos
  190 + *
  191 + * dadospuros true|false - realiza ou nao processos de adequacao dos dados
  192 + */
  193 + configura : function(parametros) {
  194 + var idjanela;
  195 + if (!parametros.idjanela) {
  196 + idjanela = "graficoi" + parseInt(Math.random() * 1000000, 10);
  197 + } else {
  198 + idjanela = parametros.idjanela;
  199 + }
  200 + i3GEOF.graficointerativo1.janelas.push(idjanela);
  201 + if (parametros) {
  202 + i3GEOF.graficointerativo1.propJanelas[idjanela] = parametros;
  203 + } else {
  204 + i3GEOF.graficointerativo1.propJanelas[idjanela] = {};
  205 + }
  206 + if (!parametros.tema) {
  207 + i3GEOF.graficointerativo1.propJanelas[idjanela].tema = "";
  208 + }
  209 + if (!parametros.atualiza) {
  210 + i3GEOF.graficointerativo1.propJanelas[idjanela].atualiza = true;
  211 + }
  212 + // guarda para esse grafico alguns valores default obtidos dos
  213 + // parametros gerais da ferramenta
  214 + if (!parametros.acumula) {
  215 + i3GEOF.graficointerativo1.propJanelas[idjanela].acumula = parametros.acumula;
  216 + }
  217 + if (!parametros.relativa) {
  218 + i3GEOF.graficointerativo1.propJanelas[idjanela].relativa = parametros.relativa;
  219 + }
  220 + if (!parametros.dadospuros) {
  221 + i3GEOF.graficointerativo1.propJanelas[idjanela].dadospuros = parametros.dadospuros;
  222 + }
  223 + return idjanela;
  224 + },
  225 + /**
  226 + * Aplica ao grafico os parametros de configuracao definidos para cada interface que controla o grafico Os parametros de
  227 + * configuracao sao obtidos na inicializacao, passados como parametros Essa funcao deve ser executada apos os elementos html terem
  228 + * sido renderizados
  229 + */
  230 + aplicaConfig : function(idjanela) {
  231 + var config, i, atualizaConfigGr;
  232 + config = i3GEOF.graficointerativo1.propJanelas[idjanela];
  233 + nomesIds = i3GEO.util.listaChaves(config);
  234 + atualizaConfigGr = function() {
  235 + var i,o,n,j;
  236 + n = nomesIds.length;
  237 + for (j=0;j<n;j++) {
  238 + i = nomesIds[j];
  239 + o = $i(idjanela + i);
  240 + if (o && config[i]) {
  241 + if (o.type.toLowerCase() === "radio" || o.type.toLowerCase() === "checkbox") {
  242 + o.checked = config[i];
  243 + } else {
  244 + o.value = config[i];
  245 + }
  246 + }
  247 + }
  248 + };
  249 + // preenche os campos existentes
  250 + atualizaConfigGr();
  251 + // ativa o tipo de grafico
  252 + if (config.tema) {
  253 + i3GEOF.graficointerativo1.ativaTipo("", idjanela);
  254 + i3GEOF.graficointerativo1.comboTemas(idjanela);
  255 + // cria as entradas de parametros para o eixo y
  256 + if(config.numeroColunasY && config.numeroColunasY > 0){
  257 + for(i=0;i<config.numeroColunasY;i++){
  258 + i3GEOF.graficointerativo1.comboItensSel(idjanela);
  259 + }
  260 + }
  261 + // atualiza novamente os campos criados
  262 + atualizaConfigGr();
  263 + if (i3GEOF.graficointerativo1.propJanelas[idjanela].dados != "") {
  264 + i3GEOF.graficointerativo1.obterDados(idjanela);
  265 + }
  266 + }
  267 + },
  268 + /**
  269 + * Obtem os parametros de cada janela e converte em base64 Cada janela e inserida como um item em um objeto A compactacao e
  270 + * utilizada para salvar as configuracoes no mapfile atual
  271 + */
  272 + compactaConfig : function() {
  273 + var c,g, par, janelas, i,n;
  274 + par = [];
  275 + janelas = i3GEOF.graficointerativo1.janelas;
  276 + n = janelas.length;
  277 + for (i = 0; i < n; i++) {
  278 + c = i3GEOF.graficointerativo1.retornaConfig(janelas[i]);
  279 + par.push(c);
  280 + }
  281 + g = YAHOO.lang.JSON.stringify(par);
  282 + return i3GEO.util.base64encode(g);
  283 + },
  284 + restauraGraficos: function(par){
  285 + var n,i;
  286 + par = i3GEO.util.base64decode(par);
  287 + par = YAHOO.lang.JSON.parse(par);
  288 + n = par.length;
  289 + for(i=0;i<n;i++){
  290 + i3GEOF.graficointerativo1.iniciaJanelaFlutuante(par[i]);
  291 + }
  292 + },
  293 + /**
  294 + * Retorna um objeto contendo os valores de todos os parametros utilizados no grafico de tal forma que um grafico possa ser
  295 + * renderizado novamente
  296 + *
  297 + * A funcao i3GEO.php.salvaMapaBanco utiliza retornaConfig e cria um objeto que ira armazenar os parametros de cada janela
  298 + */
  299 + retornaConfig : function(idjanela) {
  300 + // as chaves do objeto correspondem ao ID de cada elemento
  301 + var c, par, objs, obj = "", contador = 0;
  302 + par = i3GEOF.graficointerativo1.propJanelas[idjanela];
  303 + c = $i(idjanela);
  304 + // pega todos os elementos do tipo checkbox
  305 + objs = c.getElementsByTagName("checkbox");
  306 + for (obj in objs) {
  307 + if (objs[obj].id) {
  308 + par[objs[obj].id] = objs[obj].checked;
  309 + }
  310 + }
  311 + // pega todos os elementos do tipo input
  312 + objs = c.getElementsByTagName("input");
  313 + for (obj in objs) {
  314 + // nao inclui agora os dados e cores
  315 + if (objs[obj].id && objs[obj].id.search(idjanela + "i3GEOgraficointerativo1Dados") < 0) {
  316 + par[objs[obj].id] = objs[obj].value;
  317 + }
  318 + }
  319 + // pega todos os elementos do tipo select
  320 + objs = c.getElementsByTagName("select");
  321 + for (obj in objs) {
  322 + if (objs[obj].id) {
  323 + par[objs[obj].id] = objs[obj].value;
  324 + }
  325 + }
  326 + // se a janela esta marcada para ser atualizada ao navegar, os dados nao devem ser incluidos
  327 + if (i3GEOF.graficointerativo1.propJanelas[idjanela].atualiza === false) {
  328 + // inclui a tabela com os dados
  329 + c = $i(idjanela + "i3GEOgraficointerativo1Dados");
  330 + objs = c.getElementsByTagName("input");
  331 + for (obj in objs) {
  332 + if (objs[obj].id) {
  333 + par[objs[obj].id] = objs[obj].value;
  334 + }
  335 + }
  336 + } else {
  337 + par.dados = "";
  338 + }
  339 + // conta o numero de combos do eixo y
  340 + c = $i(idjanela + "i3GEOgraficointerativo1ComboYlinha");
  341 + objs = c.getElementsByTagName("select");
  342 + for (obj in objs) {
  343 + if (objs[obj].value && objs[obj].value != "") {
  344 + contador++;
  345 + }
  346 + }
  347 + par["numeroColunasY"] = contador;
  348 + return par;
163 349 },
164 350 /**
165 351 * Function: inicia
166   - *
  352 + *
167 353 * Inicia a ferramenta. &Eacute; chamado por criaJanelaFlutuante
168   - *
  354 + *
169 355 * Parametros:
170   - *
  356 + *
171 357 * iddiv {String} - id do div que receber&aacute; o conteudo HTML da ferramenta
172   - *
  358 + *
173 359 * dados {JSON} - dados para o gr&aacute;fico (opcional) exemplo
174 360 * ["n;x","'Argentina';33796870","'Paraguay';4773464","'Brazil';151525400","'Chile';13772710"]
175 361 */
176 362 inicia : function(iddiv, idjanela) {
177   - // try{
178 363 $i(iddiv).innerHTML += i3GEOF.graficointerativo1.html(idjanela);
179 364 $i(idjanela + "i3GEOgraficointerativo1Acumula").checked = i3GEOF.graficointerativo1.propJanelas[idjanela].acumula;
180 365 $i(idjanela + "i3GEOgraficointerativo1Relativa").checked = i3GEOF.graficointerativo1.propJanelas[idjanela].relativa;
... ... @@ -218,7 +403,7 @@ i3GEOF.graficointerativo1 =
218 403 };
219 404 $i(idjanela + "i3GEOgraficointerativo1guia5").onclick =
220 405 function() {
221   - if (i3GEOF.graficointerativo1.tipo === "") {
  406 + if (i3GEOF.graficointerativo1.propJanelas[idjanela].tipo === "") {
222 407 alert($trad(4, i3GEOF.graficointerativo1.dicionario));
223 408 return;
224 409 }
... ... @@ -228,11 +413,11 @@ i3GEOF.graficointerativo1 =
228 413 i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOgraficointerativo1guia5", idjanela + "i3GEOgraficointerativo1guia");
229 414 $i(idjanela + "i3GEOgraficointerativo1Grafico").style.display = "none";
230 415 $i(idjanela + "i3GEOgraficointerativo1guia5obj").innerHTML =
231   - "<textarea rows='20' cols='52' >" + (i3GEOF.graficointerativo1.tabela2csv()).join("\n") + "</textarea>";
  416 + "<textarea rows='20' cols='52' >" + (i3GEOF.graficointerativo1.tabela2csv(idjanela)).join("\n") + "</textarea>";
232 417 };
233 418 $i(idjanela + "i3GEOgraficointerativo1guia6").onclick =
234 419 function() {
235   - if (i3GEOF.graficointerativo1.tipo === "") {
  420 + if (i3GEOF.graficointerativo1.propJanelas[idjanela].tipo === "") {
236 421 alert($trad(4, i3GEOF.graficointerativo1.dicionario));
237 422 return;
238 423 }
... ... @@ -261,21 +446,27 @@ i3GEOF.graficointerativo1 =
261 446 }
262 447 }
263 448 });
264   - if (i3GEOF.graficointerativo1.propJanelas[idjanela].dados
265   - && i3GEOF.graficointerativo1.propJanelas[idjanela].dados != "undefined") {
  449 + if (i3GEOF.graficointerativo1.propJanelas[idjanela].dados != "") {
266 450 i3GEOF.graficointerativo1.montaTabelaDados(idjanela, i3GEOF.graficointerativo1.propJanelas[idjanela].dados);
267 451 $i(idjanela + "i3GEOgraficointerativo1guia4").onclick.call();
268 452 } else {
269 453 i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOgraficointerativo1guia1", idjanela + "i3GEOgraficointerativo1guia");
270 454 }
  455 + //
  456 + // Apos todos os elementos HTML da ferramenta terem sido renderizados
  457 + // aplicam-se os parametros armazenados nas propriedades da janela atual
  458 + // Isso e necessario pois os parametros podem ter sido enviados na inicializacao da ferramenta,
  459 + // por exemplo, quando um mapa e salvo, os parametros sao armazenados e depois recuperados
  460 + //
  461 + i3GEOF.graficointerativo1.aplicaConfig(idjanela);
271 462 },
272 463 /**
273 464 * Function: html
274   - *
  465 + *
275 466 * Gera o c&oacute;digo html para apresenta&ccedil;&atilde;o das op&ccedil;&otilde;es da ferramenta
276   - *
  467 + *
277 468 * Retorno:
278   - *
  469 + *
279 470 * String com o c&oacute;digo html
280 471 */
281 472 html : function(idjanela) {
... ... @@ -284,128 +475,138 @@ i3GEOF.graficointerativo1 =
284 475 },
285 476 /**
286 477 * Function: iniciaJanelaFlutuante
287   - *
  478 + *
288 479 * Cria a janela flutuante para controle da ferramenta.
289   - *
290   - * Parametro
291   - *
292   - * dados {JSON} - dados para o gr&aacute;fico
  480 + *
  481 + * Parametro:
  482 + *
  483 + * parametros {obj} - parametros para o gr&aacute;fico. Contem parametros utilizados para configurar o grafico e tambem pode conter
  484 + * os dados. Para compatibilidade, se nao contiver o item com chave chamada dados, sera considerado como sendo um objeto com apenas
  485 + * os dados estatisticos
  486 + *
293 487 */
294   - iniciaJanelaFlutuante : function(dados) {
  488 + iniciaJanelaFlutuante : function(parametros) {
295 489 var minimiza, cabecalho, janela, divid, temp, titulo, idjanela;
296   - // id utilizado para diferenciar cada janela e seus respectivos
297   - // componentes
298   - idjanela = "graficoi" + parseInt(Math.random() * 1000000, 10);
299   - i3GEOF.graficointerativo1.janelas.push(idjanela);
300   - i3GEOF.graficointerativo1.propJanelas[idjanela] = {};
301   - i3GEOF.graficointerativo1.propJanelas[idjanela].tema = i3GEO.temaAtivo;
302   - i3GEOF.graficointerativo1.propJanelas[idjanela].atualiza = true;
303   - i3GEOF.graficointerativo1.propJanelas[idjanela].dados = dados;
304   -
305   - // guarda para esse grafico alguns valores default obtidos dos
306   - // parametros gerais da ferramenta
307   - i3GEOF.graficointerativo1.propJanelas[idjanela].acumula = i3GEOF.graficointerativo1.acumula;
308   - i3GEOF.graficointerativo1.propJanelas[idjanela].relativa = i3GEOF.graficointerativo1.relativa;
309   - i3GEOF.graficointerativo1.propJanelas[idjanela].dadospuros = i3GEOF.graficointerativo1.dadospuros;
310   -
311   - if (dados) {
312   - i3GEOF.graficointerativo1.propJanelas[idjanela].dados = dados;
  490 + //
  491 + // verifica se parametros contem dados, caso contrario compatibiliza o objeto
  492 + // com a versao 6.0 do i3Geo
  493 + //
  494 + if (!parametros) {
  495 + parametros = {
  496 + "dados": ""
  497 + };
  498 + } else if (!parametros.dados) {
  499 + parametros = {
  500 + "dados" : parametros
  501 + };
313 502 }
  503 + //
  504 + // configura o grafico baseado no objeto parametros
  505 + // se em parametros existir um idjanela, o mesmo e retornado, caso contrario, e criado
  506 + //
  507 + idjanela = i3GEOF.graficointerativo1.configura(parametros);
  508 + //
  509 + // se existir um elemento HTML com o mesmo ID da janela, a renderizacao ocorrera
  510 + // nesse elemento, caso contrario, sera criada uma janela flutuante
  511 + //
  512 + if (!$i(idjanela)) {
  513 + // cria a janela flutuante
  514 + cabecalho = function() {
  515 + i3GEOF.graficointerativo1.ativaFoco(idjanela);
  516 + };
  517 + minimiza = function() {
  518 + i3GEO.janela.minimiza(idjanela);
  519 + };
  520 + mudaTamanhoGrafico = function() {
  521 + var t = $i(idjanela + "i3GEOgraficointerativo1Grafico");
  522 + if (t.style.display === "block") {
  523 + i3GEOF.graficointerativo1.tabela2dados(idjanela);
  524 + }
  525 + };
  526 + duplica = function() {
  527 + i3GEOF.graficointerativo1.iniciaJanelaFlutuante();
  528 + };
  529 + titulo =
  530 + "&nbsp;&nbsp;&nbsp;" + $trad("t37b") + " <a class=ajuda_usuario target=_blank href='" + i3GEO.configura.locaplic
  531 + + "/ajuda_usuario.php?idcategoria=3&idajuda=84' >&nbsp;&nbsp;&nbsp;</a>";
  532 + janela =
  533 + i3GEO.janela.cria(
  534 + "480px",
  535 + "450px",
  536 + "",
  537 + "",
  538 + "",
  539 + titulo,
  540 + idjanela,
  541 + false,
  542 + "hd",
  543 + cabecalho,
  544 + minimiza,
  545 + mudaTamanhoGrafico,
  546 + true,
  547 + i3GEO.configura.locaplic + "/imagens/oxygen/16x16/view-statistics.png",
  548 + duplica);
  549 + divid = janela[2].id;
  550 + $i(idjanela + "_corpo").style.backgroundColor = "white";
  551 + $i(idjanela + "_corpo").style.overflow = "auto";
  552 + // indica se a janela sera atualizada na navegacao
  553 + temp = 'i3GEOF.graficointerativo1.propJanelas["' + idjanela + '"].atualiza = this.checked';
  554 + janela[0]
  555 + .setFooter("<div style=background-color:#F2F2F2; ><input class='inputsb' checked style='cursor:pointer;position:relative;top:2px;' onclick='"
  556 + + temp + "' type=checkbox />&nbsp;" + $trad(53, i3GEOF.graficointerativo1.dicionario) + " (" + idjanela + ")</div>");
314 557  
315   - // cria a janela flutuante
316   - cabecalho = function() {
317   - i3GEOF.graficointerativo1.ativaFoco(idjanela);
318   - };
319   - minimiza = function() {
320   - i3GEO.janela.minimiza(idjanela);
321   - };
322   - mudaTamanhoGrafico = function() {
323   - var t = $i(idjanela + "i3GEOgraficointerativo1Grafico");
324   - if (t.style.display === "block") {
325   - i3GEOF.graficointerativo1.tabela2dados(idjanela);
326   - }
327   - };
328   - duplica = function() {
329   - i3GEOF.graficointerativo1.iniciaJanelaFlutuante();
330   - };
331   - titulo =
332   - "&nbsp;&nbsp;&nbsp;" + $trad("t37b") + " <a class=ajuda_usuario target=_blank href='" + i3GEO.configura.locaplic
333   - + "/ajuda_usuario.php?idcategoria=3&idajuda=84' >&nbsp;&nbsp;&nbsp;</a>";
334   - janela =
335   - i3GEO.janela.cria(
336   - "480px",
337   - "450px",
338   - "",
339   - "",
340   - "",
341   - titulo,
342   - idjanela,
343   - false,
344   - "hd",
345   - cabecalho,
346   - minimiza,
347   - mudaTamanhoGrafico,
348   - true,
349   - i3GEO.configura.locaplic + "/imagens/oxygen/16x16/view-statistics.png",
350   - duplica);
  558 + temp = function() {
  559 + i3GEOF.graficointerativo1.janelas.remove(idjanela);
  560 + i3GEOF.graficointerativo1.propJanelas[idjanela] = null;
  561 + if (i3GEOF.graficointerativo1.janelas.length === 0 && i3GEO.Interface) {
  562 + if (i3GEO.Interface.ATUAL === "openlayers") {
  563 + i3GEO.eventos.NAVEGAMAPA.remove("i3GEOF.graficointerativo1.atualizaListaDeRegistros()");
  564 + } else if (i3GEO.Interface.ATUAL === "googlemaps") {
  565 + google.maps.event.removeListener(graficointerativo1Dragend);
  566 + google.maps.event.removeListener(graficointerativo1Zoomend);
  567 + } else if (i3GEO.Interface.ATUAL === "googleearth") {
  568 + google.earth.removeEventListener(graficointerativo1Dragend);
  569 + }
  570 + i3GEOF.graficointerativo1.propJanelas = {};
  571 + i3GEOF.graficointerativo1.janelas = [];
  572 + }
  573 + };
  574 + YAHOO.util.Event.addListener(janela[0].close, "click", temp);
  575 + janela[0].bringToTop();
351 576  
352   - divid = janela[2].id;
  577 + } else {
  578 + // o grafico sera renderizado em $i(idjanela)
  579 + divid = idjanela;
  580 + }
353 581 i3GEOF.graficointerativo1.aguarde = $i(idjanela + "_imagemCabecalho").style;
354   - $i(idjanela + "_corpo").style.backgroundColor = "white";
355   - $i(idjanela + "_corpo").style.overflow = "auto";
356   -
357 582 i3GEOF.graficointerativo1.propJanelas[idjanela].aguarde = $i(idjanela + "_imagemCabecalho").style;
358 583 i3GEOF.graficointerativo1.propJanelas[idjanela].atualiza = true;
359   - // indica se a janela sera atualizada na navegacao
360   - temp = 'i3GEOF.graficointerativo1.propJanelas["' + idjanela + '"].atualiza = this.checked';
361   - janela[0]
362   - .setFooter("<div style=background-color:#F2F2F2; ><input class='inputsb' checked style='cursor:pointer;position:relative;top:2px;' onclick='"
363   - + temp + "' type=checkbox />&nbsp;" + $trad(53, i3GEOF.graficointerativo1.dicionario) + " (" + idjanela + ")</div>");
364 584  
365 585 i3GEOF.graficointerativo1.inicia(divid, idjanela);
366 586  
367   - if (!i3GEO.Interface) {
368   - return;
369   - }
370   - i3GEO.janela.tempoMsg($trad(37, i3GEOF.graficointerativo1.dicionario));
371   - if (i3GEO.Interface.ATUAL === "openlayers") {
372   - i3GEO.eventos.NAVEGAMAPA.push("i3GEOF.graficointerativo1.atualizaListaDeRegistros()");
373   - }
374   - if (i3GEO.Interface.ATUAL === "googlemaps") {
375   - graficointerativo1Dragend = GEvent.addListener(i3GeoMap, "dragend", function() {
376   - i3GEOF.graficointerativo1.atualizaListaDeRegistros();
377   - });
378   - graficointerativo1Zoomend = GEvent.addListener(i3GeoMap, "zoomend", function() {
379   - i3GEOF.graficointerativo1.atualizaListaDeRegistros();
380   - });
381   - }
382   - if (i3GEO.Interface.ATUAL === "googleearth") {
383   - graficointerativo1Dragend = google.earth.addEventListener(i3GeoMap.getView(), "viewchangeend", function() {
384   - i3GEOF.graficointerativo1.atualizaListaDeRegistros();
385   - });
386   - }
387   - temp = function() {
388   - i3GEOF.graficointerativo1.janelas.remove(idjanela);
389   - i3GEOF.graficointerativo1.propJanelas[idjanela] = null;
390   - if (i3GEOF.graficointerativo1.janelas.length === 0) {
391   - if (i3GEO.Interface.ATUAL === "openlayers") {
392   - i3GEO.eventos.NAVEGAMAPA.remove("i3GEOF.graficointerativo1.atualizaListaDeRegistros()");
393   - }
394   - if (i3GEO.Interface.ATUAL === "googlemaps") {
395   - google.maps.event.removeListener(graficointerativo1Dragend);
396   - google.maps.event.removeListener(graficointerativo1Zoomend);
397   - }
398   - if (i3GEO.Interface.ATUAL === "googleearth") {
399   - google.earth.removeEventListener(graficointerativo1Dragend);
400   - }
  587 + // eventos que ocorrem no mapa e afetam os graficos
  588 + if (i3GEO.Interface) {
  589 + i3GEO.janela.tempoMsg($trad(37, i3GEOF.graficointerativo1.dicionario));
  590 + if (i3GEO.Interface.ATUAL === "openlayers"
  591 + && i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEOF.graficointerativo1.atualizaListaDeRegistros()") < 0) {
  592 + i3GEO.eventos.NAVEGAMAPA.push("i3GEOF.graficointerativo1.atualizaListaDeRegistros()");
  593 + } else if (i3GEO.Interface.ATUAL === "googlemaps" && graficointerativo1Dragend == undefined) {
  594 + graficointerativo1Dragend = GEvent.addListener(i3GeoMap, "dragend", function() {
  595 + i3GEOF.graficointerativo1.atualizaListaDeRegistros();
  596 + });
  597 + graficointerativo1Zoomend = GEvent.addListener(i3GeoMap, "zoomend", function() {
  598 + i3GEOF.graficointerativo1.atualizaListaDeRegistros();
  599 + });
  600 + } else if (i3GEO.Interface.ATUAL === "googleearth" && graficointerativo1Dragend == undefined) {
  601 + graficointerativo1Dragend = google.earth.addEventListener(i3GeoMap.getView(), "viewchangeend", function() {
  602 + i3GEOF.graficointerativo1.atualizaListaDeRegistros();
  603 + });
401 604 }
402   - };
403   - YAHOO.util.Event.addListener(janela[0].close, "click", temp);
404   - janela[0].bringToTop();
  605 + }
405 606 },
406 607 /**
407 608 * Function: ativaFoco
408   - *
  609 + *
409 610 * Refaz a interface da ferramenta quando a janela flutuante tem seu foco ativado
410 611 */
411 612 ativaFoco : function(idjanela) {
... ... @@ -436,7 +637,7 @@ i3GEOF.graficointerativo1 =
436 637 },
437 638 /**
438 639 * Function: comboTemas
439   - *
  640 + *
440 641 * Monta o combo para escolha do tema que ser&aacute; utilizado no gr&aacute;fico
441 642 */
442 643 comboTemas : function(idjanela) {
... ... @@ -452,19 +653,20 @@ i3GEOF.graficointerativo1 =
452 653 i3GEOF.graficointerativo1.comboItensSel(idjanela);
453 654 };
454 655 }
455   - if (i3GEO.temaAtivo !== "") {
456   - $i(idjanela + "i3GEOgraficointerativo1ComboTemasId").value = i3GEO.temaAtivo;
  656 + var j = i3GEOF.graficointerativo1.propJanelas[idjanela];
  657 + if (j.tema && j.tema !== "") {
  658 + $i(idjanela + "i3GEOgraficointerativo1ComboTemasId").value = j.tema;
457 659 $i(idjanela + "i3GEOgraficointerativo1ComboTemasId").onchange.call();
458 660 }
459 661 }, idjanela + "i3GEOgraficointerativo1ComboTemas", "", false, "ligados", "font-size:12px;width:350px");
460 662 },
461 663 /**
462 664 * Function: ativaTipo
463   - *
  665 + *
464 666 * Define a vari&aacute;vel com o tipo de gr&aacute;fico e mostra a guia2
465 667 */
466 668 ativaTipo : function(obj, idjanela) {
467   - if (obj) {
  669 + if (obj && obj != "") {
468 670 i3GEOF.graficointerativo1.propJanelas[idjanela].tipo = obj.value;
469 671 }
470 672 if (i3GEOF.graficointerativo1.propJanelas[idjanela].tipo == "ponto_1") {
... ... @@ -492,9 +694,15 @@ i3GEOF.graficointerativo1 =
492 694 }
493 695 $i(idjanela + "i3GEOgraficointerativo1guia4").onclick.call();
494 696 },
  697 + alteraFatorPixelMenos : function(tipo, idjanela) {
  698 + i3GEOF.graficointerativo1.alteraFatorPixel("menos", idjanela);
  699 + },
  700 + alteraFatorPixelMais : function(tipo, idjanela) {
  701 + i3GEOF.graficointerativo1.alteraFatorPixel("mais", idjanela);
  702 + },
495 703 /**
496 704 * Function: configuraDados
497   - *
  705 + *
498 706 * Configura o formul&aacute;rio para obten&ccedil;&atilde;o dos dados para cada tipo de gr&aacute;fico
499 707 */
500 708 configuraDados : function(idjanela) {
... ... @@ -517,11 +725,11 @@ i3GEOF.graficointerativo1 =
517 725 },
518 726 /**
519 727 * Function: comboItensSel
520   - *
  728 + *
521 729 * Cria um combo para selecionar os itens do tema escolhido
522   - *
  730 + *
523 731 * Veja:
524   - *
  732 + *
525 733 * <i3GEO.util.comboItens>
526 734 */
527 735 comboItensSel : function(idjanela) {
... ... @@ -584,11 +792,11 @@ i3GEOF.graficointerativo1 =
584 792 },
585 793 /**
586 794 * Function: obterDados
587   - *
  795 + *
588 796 * Obt&eacute;m os dados que ser&atilde;o utilizados no gr&aacute;fico
589   - *
  797 + *
590 798 * Veja:
591   - *
  799 + *
592 800 * <GRAFICOSELECAO>
593 801 */
594 802 obterDados : function(idjanela) {
... ... @@ -601,10 +809,9 @@ i3GEOF.graficointerativo1 =
601 809 var tema, excluir, cp, tipo, ordenax, monta, p, x, y, i, n, temp;
602 810  
603 811 tema = $i(idjanela + "i3GEOgraficointerativo1ComboTemasId");
604   - if(!tema){
  812 + if (!tema) {
605 813 return;
606   - }
607   - else{
  814 + } else {
608 815 tema = tema.value;
609 816 }
610 817 excluir = $i(idjanela + "i3GEOgraficointerativo1excluir").value;
... ... @@ -720,11 +927,11 @@ i3GEOF.graficointerativo1 =
720 927 },
721 928 /**
722 929 * Function: montaTabelaDados
723   - *
  930 + *
724 931 * Monta a tabela com os dados que ser&atilde;o utilizados no gr&aacute;fico
725   - *
  932 + *
726 933 * Parametro:
727   - *
  934 + *
728 935 * retorno {JSON} - dados no formato JSON
729 936 */
730 937 montaTabelaDados : function(idjanela, retorno) {
... ... @@ -783,7 +990,7 @@ i3GEOF.graficointerativo1 =
783 990 },
784 991 /**
785 992 * Function: tabela2csv
786   - *
  993 + *
787 994 * Obt&eacute;m os dados da tabela em CSV
788 995 */
789 996 tabela2csv : function(idjanela) {
... ... @@ -802,7 +1009,7 @@ i3GEOF.graficointerativo1 =
802 1009 },
803 1010 /**
804 1011 * Function: tabela2dados
805   - *
  1012 + *
806 1013 * Obt&eacute;m os dados da tabela para compor o gr&aacute;fico
807 1014 */
808 1015 tabela2dados : function(idjanela) {
... ... @@ -925,7 +1132,7 @@ i3GEOF.graficointerativo1 =
925 1132 },
926 1133 /**
927 1134 * Function: excluilinha
928   - *
  1135 + *
929 1136 * Exclui uma linha da tabela de dados
930 1137 */
931 1138 excluilinha : function(celula) {
... ... @@ -937,7 +1144,7 @@ i3GEOF.graficointerativo1 =
937 1144 },
938 1145 /**
939 1146 * Function: corj
940   - *
  1147 + *
941 1148 * Abre a janela para o usu&aacute;rio selecionar uma cor interativamente
942 1149 */
943 1150 corj : function(obj) {
... ... @@ -945,7 +1152,7 @@ i3GEOF.graficointerativo1 =
945 1152 },
946 1153 /**
947 1154 * Function: ordenaColuna
948   - *
  1155 + *
949 1156 * Ordena uma coluna da tabela
950 1157 */
951 1158 ordenaColuna : function(coluna, cid) {
... ...
ferramentas/graficointerativo1/template_mst.html
1 1 <div id='{{{idjanela}}}i3GEOgraficointerativo1guiasYUI' class='yui-navset' style='top: 0px; cursor: pointer; left: 0px;'>
2 2 <ul class='yui-nav' style='border-width: 0pt 0pt 0px; border-color: rgb(240, 240, 240); border-bottom-color: white;'>
3   - <li><a><em><div id='{{{idjanela}}}i3GEOgraficointerativo1guia3' style='text-align: center; left: 0px;'>
4   - <img class='ticPropriedades2' style='height: 14px' title='{{{prop}}}' src='{{{locaplic}}}/imagens/visual/default/branco.gif'>
5   - </div></em></a></li>
6   - <li><a><em><div id='{{{idjanela}}}i3GEOgraficointerativo1guia1' style='text-align: center; left: 0px;'>{{{tipo}}}</div></em></a></li>
7   - <li><a><em><div id='{{{idjanela}}}i3GEOgraficointerativo1guia2' style='text-align: center; left: 0px;'>{{{dados}}}</div></em></a></li>
8   - <li><a><em><div id='{{{idjanela}}}i3GEOgraficointerativo1guia4' style='text-align: center; left: 0px;'>{{{grafico}}}</div></em></a></li>
9   - <li><a><em><div id='{{{idjanela}}}i3GEOgraficointerativo1guia5' style='text-align: center; left: 0px;'>CSV</div></em></a></li>
10   - <li><a><em><div id='{{{idjanela}}}i3GEOgraficointerativo1guia6' style='text-align: center; left: 0px;'>PNG</div></em></a></li>
  3 + <li><div id='{{{idjanela}}}i3GEOgraficointerativo1guia3' style='text-align: center; left: 0px;'>
  4 + <a><em><img class='ticPropriedades2' style='height: 14px' title='{{{prop}}}'
  5 + src='{{{locaplic}}}/imagens/visual/default/branco.gif'></em> </a>
  6 + </div></li>
  7 + <li><div id='{{{idjanela}}}i3GEOgraficointerativo1guia1' style='text-align: center; left: 0px;'>
  8 + <a><em>{{{tipo}}}</em></a>
  9 + </div></li>
  10 + <li><div id='{{{idjanela}}}i3GEOgraficointerativo1guia2' style='text-align: center; left: 0px;'>
  11 + <a><em>{{{dados}}}</em></a>
  12 + </div></li>
  13 + <li><div id='{{{idjanela}}}i3GEOgraficointerativo1guia4' style='text-align: center; left: 0px;'>
  14 + <a><em>{{{grafico}}}</em></a>
  15 + </div></li>
  16 + <li><div id='{{{idjanela}}}i3GEOgraficointerativo1guia5' style='text-align: center; left: 0px;'>
  17 + <a><em>CSV</em></a>
  18 + </div></li>
  19 + <li><div id='{{{idjanela}}}i3GEOgraficointerativo1guia6' style='text-align: center; left: 0px;'>
  20 + <a><em>PNG</em></a>
  21 + </div></li>
11 22 </ul>
12 23 </div>
13 24 <br>
... ... @@ -16,7 +27,8 @@
16 27 <table class=lista6>
17 28 <tr>
18 29 <td><img style='cursor: text;' src='{{{locaplic}}}/imagens/oxygen/22x22/Actions-office-chart-pie-icon.png' /></td>
19   - <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='pizza_1' name='tipoGrafico' style='border: 0px solid white; cursor: pointer'></td>
  30 + <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='pizza_1' name='tipoGrafico'
  31 + style='border: 0px solid white; cursor: pointer'></td>
20 32 <td>{{{pizza2d}}}</td>
21 33 </tr>
22 34 <tr>
... ... @@ -24,7 +36,8 @@
24 36 </tr>
25 37 <tr>
26 38 <td><img style='cursor: text;' src='{{{locaplic}}}/imagens/oxygen/22x22/Actions-office-chart-area-stacked-icon.png' /></td>
27   - <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='area_1' name='tipoGrafico' style='border: 0px solid white; cursor: pointer'></td>
  39 + <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='area_1' name='tipoGrafico'
  40 + style='border: 0px solid white; cursor: pointer'></td>
28 41 <td>{{{areasimp}}}</td>
29 42 </tr>
30 43 <tr>
... ... @@ -32,7 +45,8 @@
32 45 </tr>
33 46 <tr>
34 47 <td><img style='cursor: text;' src='{{{locaplic}}}/imagens/oxygen/22x22/Actions-office-chart-scatter-icon.png' /></td>
35   - <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='ponto_1' name='tipoGrafico' style='border: 0px solid white; cursor: pointer'></td>
  48 + <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='ponto_1' name='tipoGrafico'
  49 + style='border: 0px solid white; cursor: pointer'></td>
36 50 <td>{{{distpt}}}</td>
37 51 </tr>
38 52 <tr>
... ... @@ -40,7 +54,8 @@
40 54 </tr>
41 55 <tr>
42 56 <td><img style='cursor: text;' src='{{{locaplic}}}/imagens/oxygen/22x22/Actions-office-chart-line-stacked-icon.png' /></td>
43   - <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='linha_1' name='tipoGrafico' style='border: 0px solid white; cursor: pointer'></td>
  57 + <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='linha_1' name='tipoGrafico'
  58 + style='border: 0px solid white; cursor: pointer'></td>
44 59 <td>{{{linhassimp}}}</td>
45 60 </tr>
46 61 <tr>
... ... @@ -48,7 +63,8 @@
48 63 </tr>
49 64 <tr>
50 65 <td><img style='cursor: text;' src='{{{locaplic}}}/imagens/oxygen/22x22/Actions-office-chart-bar-icon-t.png' /></td>
51   - <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='arvore_1' name='tipoGrafico' style='border: 0px solid white; cursor: pointer'></td>
  66 + <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='arvore_1' name='tipoGrafico'
  67 + style='border: 0px solid white; cursor: pointer'></td>
52 68 <td>{{{arvore}}}</td>
53 69 </tr>
54 70 <tr>
... ... @@ -56,7 +72,8 @@
56 72 </tr>
57 73 <tr>
58 74 <td><img style='cursor: text;' src='{{{locaplic}}}/imagens/oxygen/22x22/Actions-office-chart-bar-icon.png' /></td>
59   - <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='bar_1' name='tipoGrafico' style='border: 0px solid white; cursor: pointer'></td>
  75 + <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='bar_1' name='tipoGrafico'
  76 + style='border: 0px solid white; cursor: pointer'></td>
60 77 <td>{{{barrasv}}}</td>
61 78 </tr>
62 79 <tr>
... ... @@ -64,7 +81,8 @@
64 81 </tr>
65 82 <tr>
66 83 <td><img style='cursor: text;' src='{{{locaplic}}}/imagens/oxygen/22x22/Actions-office-chart-bar-icon-h.png' /></td>
67   - <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='bar_2' name='tipoGrafico' style='border: 0px solid white; cursor: pointer'></td>
  84 + <td><input type=radio onclick='i3GEOF.graficointerativo1.ativaTipo(this,{{{idjanelaA}}})' value='bar_2' name='tipoGrafico'
  85 + style='border: 0px solid white; cursor: pointer'></td>
68 86 <td>{{{barrash}}}</td>
69 87 </tr>
70 88 </table>
... ... @@ -93,46 +111,39 @@
93 111 {{{geracor}}}
94 112 </p>
95 113 <p class=paragrafo>
96   - <input id='{{{idjanela}}}i3GEOgraficointerativo1botao1' type='buttom' value='{{{obterdados}}}' />
  114 + <input id='{{{idjanela}}}i3GEOgraficointerativo1botao1' type='button' value='{{{obterdados}}}' />
97 115 </p>
98 116 <div id='{{{idjanela}}}i3GEOgraficointerativo1Dados'></div>
99 117 <div class=paragrafo id='{{{idjanela}}}i3GEOgraficointerativo1AjudaPizza'>{{{seescolher}}}</div>
100 118 </div>
101 119 <div class=guiaobj id='{{{idjanela}}}i3GEOgraficointerativo1guia3obj' style='left: 1px; display: none; top: -5px'>
102 120 <p class=paragrafo>
103   - <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1xInclinado' checked />
104   - {{{inclinax}}}
  121 + <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1xInclinado' checked /> {{{inclinax}}}
105 122 </p>
106 123 <p class=paragrafo>
107   - <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1AdLinhas' checked />
108   - {{{adlinbarras}}}
  124 + <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1AdLinhas' checked /> {{{adlinbarras}}}
109 125 </p>
110 126 <p class=paragrafo>
111   - <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1Acumula' />
112   - {{{utilizvalacum}}}
  127 + <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1Acumula' /> {{{utilizvalacum}}}
113 128 </p>
114 129 <p class=paragrafo>
115   - <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1Relativa' />
116   - {{{utilizvalrelat}}} (%)
  130 + <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1Relativa' /> {{{utilizvalrelat}}} (%)
117 131 </p>
118 132 <p class=paragrafo>
119   - <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1OrdenaX' checked />
120   - {{{ordenax}}}
  133 + <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1OrdenaX' checked /> {{{ordenax}}}
121 134 </p>
122 135 <p class=paragrafo>
123   - <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1DadosPuros' />
124   - {{{naoprocessa}}}
  136 + <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOgraficointerativo1DadosPuros' /> {{{naoprocessa}}}
125 137 </p>
126 138 <p class=paragrafo>
127   - <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOFgraficointerativo1ativaStacked' />
128   - {{{stacked}}}
  139 + <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOFgraficointerativo1ativaStacked' /> {{{stacked}}}
129 140 </p>
130 141 <p class=paragrafo>
131   - <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOFgraficointerativo1ativaRowsInColumns' />
132   - {{{linhasnascols}}}
  142 + <input style='cursor: pointer' type=checkbox id='{{{idjanela}}}i3GEOFgraficointerativo1ativaRowsInColumns' /> {{{linhasnascols}}}
133 143 </p>
134 144 <p class=paragrafo>
135   - <select onchange='i3GEOF.graficointerativo1.obterDados()' id='{{{idjanela}}}i3GEOgraficointerativo1TipoAgregacao'><option value='soma'>{{{soma}}}</option>
  145 + <select onchange='i3GEOF.graficointerativo1.obterDados()' id='{{{idjanela}}}i3GEOgraficointerativo1TipoAgregacao'><option
  146 + value='soma'>{{{soma}}}</option>
136 147 <option value='media'>{{{media}}}</option>
137 148 </select>{{{tipoagregay}}}
138 149 </p>
... ... @@ -142,9 +153,10 @@
142 153 </p>
143 154 </div>
144 155 <div class=guiaobj id='{{{idjanela}}}i3GEOgraficointerativo1guia4obj' style='left: 1px; display: none; top: -10px'>
145   - <a style='position: absolute; left: 50px;' href='#' onclick='i3GEOF.graficointerativo1.novaJanela()'> {{{janelasep}}} </a>
146   - <img onclick='i3GEOF.graficointerativo1.alteraFatorPixel(\'menos\',{{{idjanelaA}}})' style='position: absolute;' src='{{{locaplic}}}/imagens/player_volta.png' />
147   - <img onclick='i3GEOF.graficointerativo1.alteraFatorPixel(\'mais\',{{{idjanelaA}}})' style='position: absolute; left: 20px;' src='{{{locaplic}}}/imagens/player_avanca.png' />
  156 + <a style='position: absolute; left: 50px;' href='#' onclick='i3GEOF.graficointerativo1.novaJanela()'> {{{janelasep}}} </a> <img
  157 + onclick='i3GEOF.graficointerativo1.alteraFatorPixelMenos({{{idjanelaA}}})' style='position: absolute;'
  158 + src='{{{locaplic}}}/imagens/player_volta.png' /> <img onclick='i3GEOF.graficointerativo1.alteraFatorPixelMais({{{idjanelaA}}})'
  159 + style='position: absolute; left: 20px;' src='{{{locaplic}}}/imagens/player_avanca.png' />
148 160 <div id='{{{idjanela}}}i3GEOgraficointerativo1guia4objCanvas' style='top: 15px;'></div>
149 161 </div>
150 162 <div class=guiaobj id='{{{idjanela}}}i3GEOgraficointerativo1guia5obj' style='font-size: 10px; left: 10px; display: none; top: -0px'></div>
... ...
ferramentas/salvamapa/dicionario.js
... ... @@ -79,7 +79,7 @@ i3GEOF.salvaMapa.dicionario = {
79 79 it:""
80 80 }],
81 81 14: [{
82   - pt:"Fa&ccedil;a login e cadastre o mapa atual no banco de dados existente no servidor web. Com isso o mapa ser&aacute; salvo de forma permanente e outros usu&aacute;rios poder�o utiliz&aacute;-lo. Consulte o admnistrador do site que voc� est� utilizando para saber mais sobre a pol&iacute;tica de uso do mapa que for salvo",
  82 + pt:"Fa&ccedil;a login e cadastre o mapa atual no banco de dados existente no servidor web. Com isso o mapa ser&aacute; salvo de forma permanente e outros usu&aacute;rios poder&atilde;o utiliz&aacute;-lo. Consulte o admnistrador do site que voc&ecirc; est&aacute; utilizando para saber mais sobre a pol&iacute;tica de uso do mapa que for salvo",
83 83 en:"",
84 84 es:"",
85 85 it:""
... ...
ferramentas/salvamapa/index.js
... ... @@ -146,7 +146,7 @@ i3GEOF.salvaMapa = {
146 146 }
147 147 }
148 148 };
149   - i3GEO.php.salvaMapaBanco(temp,titulo,id_mapa,$i("i3GEOFsalvaPref").checked,true);
  149 + i3GEO.php.salvaMapaBanco(temp,titulo,id_mapa,$i("i3GEOFsalvaPref").checked,true,true);
150 150 };
151 151 texto = $trad(7,i3GEOF.salvaMapa.dicionario)+"<br><div id=i3GEOFsalvamapaMapa ></div><br><br><input style='position:relative;top:2px;' checked type=checkbox id=i3GEOFsalvaPref />"+$trad(15,i3GEOF.salvaMapa.dicionario);
152 152 i3GEO.janela.prompt(texto + "<br><br>"+$trad(8,i3GEOF.salvaMapa.dicionario),funcaoOK);
... ...