From 0625955c40e67202fe1de931db2fd2d4ba452a07 Mon Sep 17 00:00:00 2001
From: Edmar Moretti
Date: Thu, 9 Dec 2010 14:18:55 +0000
Subject: [PATCH] Opção da arvore de camadas pemrite agora destacar os temas q não estão na abrangencia ëspacial do mapa
---
aplicmap/geral1.map | 1 +
aplicmap/geral1windows.map | 1 +
classesjs/classe_analise.js | 3 +++
classesjs/classe_arvoredecamadas.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
classesjs/classe_interface.js | 4 ++--
classesjs/classe_util.js | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
classesphp/classe_mapa.php | 14 +++++++++++---
interface/openlayers.htm | 1 +
8 files changed, 151 insertions(+), 9 deletions(-)
diff --git a/aplicmap/geral1.map b/aplicmap/geral1.map
index 4544e8e..29735e5 100644
--- a/aplicmap/geral1.map
+++ b/aplicmap/geral1.map
@@ -239,6 +239,7 @@ MAP
"ESCALA" "250000" #escala utilizada nas marcas ao lado do tema na legenda
"IDENTIFICA" "nao"
"cache" "sim"
+ "EXTENSAO" "-97.911949 -39.413578 -8.185829 9.511159"
END
NAME "estados"
SIZEUNITS PIXELS
diff --git a/aplicmap/geral1windows.map b/aplicmap/geral1windows.map
index d9a4a04..49373b1 100644
--- a/aplicmap/geral1windows.map
+++ b/aplicmap/geral1windows.map
@@ -239,6 +239,7 @@ MAP
"ESCALA" "250000" #escala utilizada nas marcas ao lado do tema na legenda
"IDENTIFICA" "nao"
#"ESCONDIDO" "sim"
+ "EXTENSAO" "-97.911949 -39.413578 -8.185829 9.511159"
"cache" "sim"
END
NAME "estados"
diff --git a/classesjs/classe_analise.js b/classesjs/classe_analise.js
index 5cf0c3e..6d8b68b 100644
--- a/classesjs/classe_analise.js
+++ b/classesjs/classe_analise.js
@@ -323,6 +323,8 @@ i3GEO.analise = {
YAHOO.util.Event.removeListener(YAHOO.janelaDocamede.xp.panel.close, "click");
i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()");
i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()");
+ i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()");
+
if($i("mostradistancia_c")){document.body.removeChild($i("mostradistancia_c"));}
i3GEO.barraDeBotoes.ativaBotoes();
},
@@ -570,6 +572,7 @@ i3GEO.analise = {
YAHOO.util.Event.removeListener(YAHOO.janelaDocaarea.xp.panel.close, "click");
i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeArea.clique()");
i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeArea.movimento()");
+ i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeArea.fechaJanela()");
if($i("mostraarea_c")){document.body.removeChild($i("mostraarea_c"));}
i3GEO.barraDeBotoes.ativaBotoes();
},
diff --git a/classesjs/classe_arvoredecamadas.js b/classesjs/classe_arvoredecamadas.js
index 5aef4c7..8869456 100644
--- a/classesjs/classe_arvoredecamadas.js
+++ b/classesjs/classe_arvoredecamadas.js
@@ -47,6 +47,20 @@ Exemplos:
*/
i3GEO.arvoreDeCamadas = {
/*
+ Propriedade: VERIFICAABRANGENCIATEMAS
+
+ Verifica ou não se um tema da árvore está dentro da abrangência do mapa atual
+
+ A verificação só é feita se o tema possuir a extensão geográfica registrada (veja o sistema de administração)
+
+ Default:
+ {true}
+
+ Type:
+ {boolean}
+ */
+ VERIFICAABRANGENCIATEMAS: true,
+ /*
Propriedade: finaliza
Nome de uma função que será executada após a árvore ter sido montada
@@ -248,7 +262,9 @@ i3GEO.arvoreDeCamadas = {
"iconetema":"",
- "permitecomentario":""
+ "permitecomentario":"",
+
+ "exttema":""
}
]
@@ -508,6 +524,10 @@ i3GEO.arvoreDeCamadas = {
if(i3GEO.temaAtivo !== ""){
i3GEO.mapa.ativaTema(i3GEO.temaAtivo);
}
+ i3GEO.arvoreDeCamadas.verificaAbrangenciaTemas();
+ if(i3GEO.arvoreDeCamadas.VERIFICAABRANGENCIATEMAS == true && i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.arvoreDeCamadas.verificaAbrangenciaTemas()") < 0)
+ {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.arvoreDeCamadas.verificaAbrangenciaTemas()");}
+
},
/*
Function: ativaDragDrop
@@ -1020,9 +1040,9 @@ i3GEO.arvoreDeCamadas = {
{estilo = "cursor:move;vertical-align:top;";}
if(i3GEO.arvoreDeCamadas.AGUARDALEGENDA)
- {html += " "+tema.tema+"";}
+ {html += " "+tema.tema+"";}
else
- {html += " "+tema.tema+"";}
+ {html += " "+tema.tema+"";}
html += "
";
return(html);
@@ -1359,5 +1379,38 @@ i3GEO.arvoreDeCamadas = {
}
while(i < nelementos);
}
- }
+ },
+ verificaAbrangenciaTemas: function(){
+ if(typeof(console) !== 'undefined'){console.info("i3GEO.arvoreDeCamadas.verificaAbrangenciaTemas()");}
+ if(i3GEO.arvoreDeCamadas.VERIFICAABRANGENCIATEMAS == false)
+ {return}
+ try{
+ var resultado = [],
+ i = 0,
+ temp,
+ nelementos = i3GEO.arvoreDeCamadas.CAMADAS.length,
+ ltema,
+ intersec,
+ node;
+ if (nelementos > 0){
+ do{
+ ltema = i3GEO.arvoreDeCamadas.CAMADAS[i];
+ temp = ltema.exttema;
+ if(temp != ""){
+ intersec = i3GEO.util.intersectaBox(temp,i3GEO.parametros.mapexten);
+ node = $i("ArvoreTituloTema"+ltema.name);
+ if(intersec == false){
+ node.style.color = "gray";
+ }
+ else{
+ node.style.color = "black";
+ }
+ }
+ i++;
+ }
+ while(i < nelementos);
+ }
+ }
+ catch(e){}
+ }
};
diff --git a/classesjs/classe_interface.js b/classesjs/classe_interface.js
index a9e60a0..57f777f 100644
--- a/classesjs/classe_interface.js
+++ b/classesjs/classe_interface.js
@@ -908,14 +908,14 @@ i3GEO.Interface = {
},
loadStartLayer: function(event){
i3GEO.Interface.STATUS.atualizando.push(event.object.name);
- var i = $i("arrastar_"+event.object.name);
+ var i = $i("ArvoreTituloTema"+event.object.name);
if(i){
i.style.backgroundColor = "RGB(240,240,240)";
}
},
loadStopLayer: function(event){
i3GEO.Interface.STATUS.atualizando.remove(event.object.name);
- var i = $i("arrastar_"+event.object.name);
+ var i = $i("ArvoreTituloTema"+event.object.name);
if(i){
i.style.backgroundColor = "";
}
diff --git a/classesjs/classe_util.js b/classesjs/classe_util.js
index ff1e0e2..6fe7a64 100644
--- a/classesjs/classe_util.js
+++ b/classesjs/classe_util.js
@@ -1953,12 +1953,87 @@ i3GEO.util = {
var js = i3GEO.configura.locaplic+"/ferramentas/"+dir+"/index.js.php";
i3GEO.util.scriptTag(js,"i3GEOF."+nome+".criaJanelaFlutuante()","i3GEOF."+nome+"_script");
},
+ /*
+ Function: bookmark
+
+ Cria os botões de bookmark em redes sociais
+
+ Gera o HTML contendo as tags IMG com os links
+
+ Parametro:
+
+ link {string} - link que será marcado
+
+ Return:
+
+ HTML com os botões
+ */
bookmark: function(link){
ins = "
";
ins += "
";
ins += "
";
ins += "
";
return ins;
+ },
+ /*
+ Function: intersectaBox
+
+ Verifica se um retângulo está dentro de outro retângulo
+
+ Parametros:
+
+ box1 - retângulo que será verificado
+
+ box2 - retângulo de referência
+
+ Return:
+
+ boolean
+ */
+ intersectaBox: function(box1,box2){
+ var box1 = box1.split(" "),
+ box2 = box2.split(" "),
+ box1i = box2,
+ box2i = box1,
+ coordx,
+ coordy,
+ i;
+ coordx = box1[0]*1;
+ coordy = box1[1]*1;
+ if(coordx >= box2[0]*1 && coordx <= box2[2]*1 && coordy >= box2[1]*1 && coordy <= box2[3]*1)
+ coordx = box1[0]*1;
+ coordy = box1[3]*1;
+ if(coordx >= box2[0]*1 && coordx <= box2[2]*1 && coordy >= box2[1]*1 && coordy <= box2[3]*1)
+ {return true;}
+ coordx = box1[2]*1;
+ coordy = box1[3]*1;
+ if(coordx >= box2[0]*1 && coordx <= box2[2]*1 && coordy >= box2[1]*1 && coordy <= box2[3]*1)
+ {return true;}
+ coordx = box1[2]*1;
+ coordy = box1[1]*1;
+ if(coordx >= box2[0]*1 && coordx <= box2[2]*1 && coordy >= box2[1]*1 && coordy <= box2[3]*1)
+ {return true;}
+
+ box1 = box1i;
+ box2 = box2i;
+
+ coordx = box1[0]*1;
+ coordy = box1[1]*1;
+ if(coordx >= box2[0]*1 && coordx <= box2[2]*1 && coordy >= box2[1]*1 && coordy <= box2[3]*1)
+ coordx = box1[0]*1;
+ coordy = box1[3]*1;
+ if(coordx >= box2[0]*1 && coordx <= box2[2]*1 && coordy >= box2[1]*1 && coordy <= box2[3]*1)
+ {return true;}
+ coordx = box1[2]*1;
+ coordy = box1[3]*1;
+ if(coordx >= box2[0]*1 && coordx <= box2[2]*1 && coordy >= box2[1]*1 && coordy <= box2[3]*1)
+ {return true;}
+ coordx = box1[2]*1;
+ coordy = box1[1]*1;
+ if(coordx >= box2[0]*1 && coordx <= box2[2]*1 && coordy >= box2[1]*1 && coordy <= box2[3]*1)
+ {return true;}
+
+ return false;
}
};
diff --git a/classesphp/classe_mapa.php b/classesphp/classe_mapa.php
index d822f7a..906c28e 100644
--- a/classesphp/classe_mapa.php
+++ b/classesphp/classe_mapa.php
@@ -197,9 +197,16 @@ string - javascript com os parametros
//
//verifica se o tema pode receber a operação de zoom para o tema
//
- $zoomtema = "sim";
if (($ct != 1) && ($oLayer->getmetadata("extensao") == ""))
- {$zoomtema = "nao";}
+ {
+ $zoomtema = "nao";
+ $exttema = "";
+ }
+ else
+ {
+ $zoomtema = "sim";
+ $exttema = $oLayer->getmetadata("extensao");
+ }
//
//verifica se existe restrição de escala
//
@@ -244,7 +251,8 @@ string - javascript com os parametros
"escondido"=>strtolower($escondido),
"iconetema"=>($oLayer->getmetadata("iconetema")),
"classe"=>($oLayer->getmetadata("classe")),
- "permitecomentario"=>$permitecomentario
+ "permitecomentario"=>$permitecomentario,
+ "exttema"=>$exttema
);
}
}
diff --git a/interface/openlayers.htm b/interface/openlayers.htm
index 6588c3e..09fcb65 100644
--- a/interface/openlayers.htm
+++ b/interface/openlayers.htm
@@ -207,6 +207,7 @@ i3GEO.Interface.ATIVAMENUCONTEXTO = false;
i3GEO.arvoreDeTemas.TIPOBOTAO = "radio";
i3GEO.arvoreDeTemas.ATIVATEMAIMEDIATO = true;
i3GEO.arvoreDeTemas.OPCOESADICIONAIS.comentarios = true;
+i3GEO.arvoreDeCamadas.VERIFICAABRANGENCIATEMAS = true;
//
//esta é uma variável interna do OpenLayers que define o endereço do diretório onde estão as imagens usadas nos ícones
//
--
libgit2 0.21.2