Commit ff5027d447cb62d8de672141c76bcbfb2dc6dcb2

Authored by Edmar Moretti
1 parent 64b2c7d0

resolvido ticket #12 Permitir o deslocamento do retângulo mostrado no mapa de re…

…ferência do tipo "arrastar e soltar"
classesjs/classe_calculo.js
@@ -110,15 +110,18 @@ i3GEO.calculo = { @@ -110,15 +110,18 @@ i3GEO.calculo = {
110 } 110 }
111 if(!docmapa) 111 if(!docmapa)
112 {var docmapa = window.document;} 112 {var docmapa = window.document;}
113 - var dc = docmapa.getElementById("img");  
114 - if(!dc){var dc = docmapa;} 113 + try{
  114 + var dc = docmapa.getElementById("img");
  115 + if(!dc){var dc = docmapa;}
  116 + }
  117 + catch(e){var dc = docmapa;}
115 var pos = i3GEO.util.pegaPosicaoObjeto(dc); 118 var pos = i3GEO.util.pegaPosicaoObjeto(dc);
116 var imgext = ext; //i3GEO.parametros.mapexten; 119 var imgext = ext; //i3GEO.parametros.mapexten;
117 var imgext = imgext.split(" "); 120 var imgext = imgext.split(" ");
118 vx = (vx * 1) - (imgext[0] * 1); 121 vx = (vx * 1) - (imgext[0] * 1);
119 vy = (vy * -1) + (imgext[3] * 1); 122 vy = (vy * -1) + (imgext[3] * 1);
120 c = cellsize * 1; 123 c = cellsize * 1;
121 - var xy = new Array(); 124 + //var xy = new Array();
122 return [(vx / c) + pos[0],(vy / c) + pos[1]]; 125 return [(vx / c) + pos[0],(vy / c) + pos[1]];
123 } 126 }
124 catch(e){return(new Array());} 127 catch(e){return(new Array());}
@@ -333,6 +336,18 @@ i3GEO.calculo = { @@ -333,6 +336,18 @@ i3GEO.calculo = {
333 Function: rect2ext 336 Function: rect2ext
334 337
335 Calcula a extensão geográfica de um retângulo desenhado sobre o mapa. 338 Calcula a extensão geográfica de um retângulo desenhado sobre o mapa.
  339 +
  340 + Parameters:
  341 +
  342 + idrect - id do elemento html com o retangulo
  343 +
  344 + mapext - extensao geografica do mapa onde está o retangulo
  345 +
  346 + pixel - tamanho do pixel do mapa em dd
  347 +
  348 + return:
  349 +
  350 + {Array} - extensão, xmin, ymin, xmax, ymax
336 */ 351 */
337 rect2ext: function(idrect,mapext,pixel){ 352 rect2ext: function(idrect,mapext,pixel){
338 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")"); 353 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")");
@@ -359,13 +374,67 @@ i3GEO.calculo = { @@ -359,13 +374,67 @@ i3GEO.calculo = {
359 var xfig = pix - pos[0]; 374 var xfig = pix - pos[0];
360 var yfig = piy - pos[1]; 375 var yfig = piy - pos[1];
361 if (dy < 0) dy=dy * -1; 376 if (dy < 0) dy=dy * -1;
362 - var nx = i3GEO.parametros.pixelsize * xfig;  
363 - var ny = i3GEO.parametros.pixelsize * yfig; 377 + var nx = pixel * xfig;
  378 + var ny = pixel * yfig;
364 var x2 = (amext[0] * 1) + nx; 379 var x2 = (amext[0] * 1) + nx;
365 var y2 = (amext[3] * 1) - ny; 380 var y2 = (amext[3] * 1) - ny;
366 var v = x2+" "+y2+" "+x1+" "+y1; 381 var v = x2+" "+y2+" "+x1+" "+y1;
367 var res = new Array(v,x1,y1,x2,y2); 382 var res = new Array(v,x1,y1,x2,y2);
368 return (res); 383 return (res);
  384 + },
  385 + /*
  386 + Function: ext2rect
  387 +
  388 + Calcula o posicionamento de um retângulo com base na extensão geográfica.
  389 +
  390 + Parameters:
  391 +
  392 + idrect {String} - id do elemento html com o retangulo, pode ser vazio
  393 +
  394 + mapext {String} - extensao geografica do mapa onde está o retangulo
  395 +
  396 + boxext {String} - extensao geografica do retangulo
  397 +
  398 + pixel {Number} - tamanho do pixel do mapa em dd
  399 +
  400 + documento {Object DOM} - objeto sob o qual o retângulo será posicionado
  401 +
  402 + Return:
  403 +
  404 + {Array} - width,heigth,top,left
  405 + */
  406 + ext2rect: function(idrect,mapext,boxext,pixel,documento){
  407 + var rectbox = boxext.split(" ");
  408 + var rectmap = mapext.split(" ");
  409 +
  410 + if (rectbox[0]*1 < rectmap[0]*1){rectbox[0] = rectmap[0]}
  411 + if (rectbox[0]*1 > rectmap[2]*1){rectbox[0] = rectmap[2]}
  412 + if (rectbox[2]*1 > rectmap[2]*1){rectbox[2] = rectmap[2]}
  413 + if (rectbox[2]*1 < rectmap[0]*1){rectbox[2] = rectmap[0]}
  414 +
  415 + if (rectbox[3]*1 > rectmap[3]*1){rectbox[3] = rectmap[3]}
  416 + if (rectbox[2]*1 > rectmap[3]*1){rectbox[2] = rectmap[3]}
  417 + if (rectbox[1]*1 < rectmap[1]*1){rectbox[1] = rectmap[1]}
  418 + if (rectbox[3]*1 < rectmap[1]*1){rectbox[3] = rectmap[1]}
  419 +
  420 + var xyMin = i3GEO.calculo.dd2tela(rectbox[0],rectbox[1],documento,boxext,pixel);
  421 + var xyMax = i3GEO.calculo.dd2tela(rectbox[2],rectbox[3],documento,boxext,pixel);
  422 + var w = xyMax[0]-xyMin[0];
  423 + var h = xyMin[1]-xyMax[1];
  424 + var tl = i3GEO.calculo.dd2tela(rectbox[0],rectbox[3],documento,mapext,pixel);
  425 + var pos = i3GEO.util.pegaPosicaoObjeto(documento);
  426 + var t = tl[1] - pos[1];
  427 + var l = tl[0] - pos[0];
  428 + var d = "block"
  429 + if($i(idrect)){
  430 + var box = $i(idrect);
  431 + box.style.width = w;
  432 + box.style.height = h;
  433 + box.style.top = t + "px";
  434 + box.style.left = l + "px";
  435 + box.style.display=d;
  436 + }
  437 + return new Array(w,h,xyMax[1],xyMin[0]);
369 } 438 }
370 }; 439 };
371 //YAHOO.log("carregou classe calculo", "Classes i3geo"); 440 //YAHOO.log("carregou classe calculo", "Classes i3geo");
372 \ No newline at end of file 441 \ No newline at end of file
classesjs/classe_maparef.js
@@ -50,7 +50,7 @@ i3GEO.maparef = { @@ -50,7 +50,7 @@ i3GEO.maparef = {
50 novoel.id = "i3geo_winRef"; 50 novoel.id = "i3geo_winRef";
51 novoel.style.display="none"; 51 novoel.style.display="none";
52 novoel.style.borderColor="gray"; 52 novoel.style.borderColor="gray";
53 - var ins = '<div class="hd">'; 53 + var ins = '<div class="hd" style="text-align:left">';
54 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == -1){i3GEO.maparef.fatorZoomDinamico = 1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico + 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();"; 54 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == -1){i3GEO.maparef.fatorZoomDinamico = 1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico + 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";
55 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />"; 55 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />";
56 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == 1){i3GEO.maparef.fatorZoomDinamico = -1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico - 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();"; 56 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == 1){i3GEO.maparef.fatorZoomDinamico = -1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico - 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";
@@ -63,8 +63,8 @@ i3GEO.maparef = { @@ -63,8 +63,8 @@ i3GEO.maparef = {
63 ins += "</select>"; 63 ins += "</select>";
64 ins += "</div>"; 64 ins += "</div>";
65 //ins += '<input style="cursor:pointer" onclick="javascript:i3GEO.maparef.atualiza()" type="checkbox" id="refDinamico" />&nbsp;'+$trad("o6")+'</div>'; 65 //ins += '<input style="cursor:pointer" onclick="javascript:i3GEO.maparef.atualiza()" type="checkbox" id="refDinamico" />&nbsp;'+$trad("o6")+'</div>';
66 - ins += '<div class="bd" style="text-align:left;padding:3px;" id="mapaReferencia" onmouseover="this.onmousemove=function(exy){i3GEO.eventos.posicaoMouseMapa(exy)}" onclick="javascript:i3GEO.maparef.click()">';  
67 - ins += '<img style="cursor:pointer;" id=imagemReferencia src="" >'; 66 + ins += '<div class="bd" style="text-align:left;padding:3px;" id="mapaReferencia" onmouseover="this.onmousemove=function(exy){i3GEO.eventos.posicaoMouseMapa(exy)}" >';
  67 + ins += '<img style="cursor:pointer;" id=imagemReferencia src="" onclick="javascript:i3GEO.maparef.click()">';
68 //ins += '<div id=boxRef style="position:absolute;top:0px;left:0px;width:10px;height:10px;border:2px solid blue;display:none"></div></div>'; 68 //ins += '<div id=boxRef style="position:absolute;top:0px;left:0px;width:10px;height:10px;border:2px solid blue;display:none"></div></div>';
69 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>'; 69 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>';
70 novoel.innerHTML = ins; 70 novoel.innerHTML = ins;
@@ -94,7 +94,6 @@ i3GEO.maparef = { @@ -94,7 +94,6 @@ i3GEO.maparef = {
94 //YAHOO.log("Fim initJanelaRef", "i3geo"); 94 //YAHOO.log("Fim initJanelaRef", "i3geo");
95 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0) 95 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0)
96 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");} 96 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");}
97 -  
98 this.atualiza(); 97 this.atualiza();
99 }, 98 },
100 /* 99 /*
@@ -115,7 +114,6 @@ i3GEO.maparef = { @@ -115,7 +114,6 @@ i3GEO.maparef = {
115 if ($i("refDinamico")) 114 if ($i("refDinamico"))
116 {var tiporef = $i("refDinamico").value;} 115 {var tiporef = $i("refDinamico").value;}
117 if ($i("mapaReferencia")){ 116 if ($i("mapaReferencia")){
118 - //YAHOO.log("Atualizando o mapa de referência", "i3geo");  
119 if(tiporef == "dinamico"){ 117 if(tiporef == "dinamico"){
120 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef); 118 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef);
121 } 119 }
@@ -161,7 +159,7 @@ i3GEO.maparef = { @@ -161,7 +159,7 @@ i3GEO.maparef = {
161 m.src = refimagem; 159 m.src = refimagem;
162 $i("imagemReferencia").src=m.src; 160 $i("imagemReferencia").src=m.src;
163 if ((i3GEO.parametros.mapscale < 15000000) && (i3GEO.parametros.mapscale > 10000000)){ 161 if ((i3GEO.parametros.mapscale < 15000000) && (i3GEO.parametros.mapscale > 10000000)){
164 - $i("refmensagem").innerHTML = "Para navegar no mapa principal, voc&ecirc; pode clicar em um ponto no mapa de refer&ecirc;ncia."; 162 + $i("refmensagem").innerHTML = "Para navegar no mapa principal, voc&ecirc; pode clicar em um ponto no mapa de refer&ecirc;ncia ou arrastar o box.";
165 $i("refmensagem").style.fontSize="10px"; 163 $i("refmensagem").style.fontSize="10px";
166 } 164 }
167 else{ 165 else{
@@ -170,10 +168,47 @@ i3GEO.maparef = { @@ -170,10 +168,47 @@ i3GEO.maparef = {
170 } 168 }
171 } 169 }
172 i3GEO.gadgets.quadros.grava("referencia",refimagem); 170 i3GEO.gadgets.quadros.grava("referencia",refimagem);
173 - //YAHOO.log("Concluída imagem de referência", "redesenho"); 171 + var tiporef = "fixo";
  172 + if ($i("refDinamico"))
  173 + {var tiporef = $i("refDinamico").value;}
  174 + var box = $i("boxref");
  175 + if(tiporef != "fixo"){
  176 + if (box){box.style.display = "none"}
  177 + return;
  178 + }
  179 + if (!box){
  180 + var novoel = document.createElement("div");
  181 + novoel.id = "boxref";
  182 + novoel.style.zIndex=10;
  183 + novoel.style.position = 'absolute';
  184 + //novoel.style.border = '1px solid blue';
  185 + novoel.style.backgroundColor = "RGB(120,220,220)";
  186 + novoel.style.cursor = "move";
  187 + if (navm)
  188 + {novoel.style.filter='alpha(opacity=40)';}
  189 + else
  190 + {novoel.style.opacity= .4;}
  191 + $i("mapaReferencia").appendChild(novoel);
  192 + var boxrefdd = new YAHOO.util.DD("boxref");
  193 + novoel.onmouseup = function(){
  194 + var rect = $i("boxref");
  195 + var telaminx = parseInt(rect.style.left);
  196 + var telamaxy = parseInt(rect.style.top);
  197 + var telamaxx = telaminx + parseInt(rect.style.width);
  198 + var telaminy = telamaxy + parseInt(rect.style.height);
  199 + var m = i3GEO.calculo.tela2dd(telaminx,telaminy,i3GEO.parametros.celularef,i3GEO.parametros.extentref);
  200 + var x = i3GEO.calculo.tela2dd(telamaxx,telamaxy,i3GEO.parametros.celularef,i3GEO.parametros.extentref);
  201 + var ext = m[0]+" "+m[1]+" "+x[0]+" "+x[1];
  202 + i3GEO.navega.zoomExt(i3GEO.configura.locaplic,i3GEO.configura.sid,"",ext);
  203 + }
  204 + var box = $i("boxref");
  205 + }
  206 + i3GEO.calculo.ext2rect("boxref",extentref,i3GEO.parametros.mapexten,g_celularef,$i("mapaReferencia"));
  207 + if(parseInt(box.style.width) > 120)
  208 + box.style.display = "none";
  209 + else
  210 + box.style.display = "block";
174 } 211 }
175 - else  
176 - {YAHOO.log("Erro na imagem de referência", "redesenho");}  
177 }, 212 },
178 /* 213 /*
179 Function: click 214 Function: click
classesjs/compactados/classe_calculo_compacto.js
1 -if(typeof(i3GEO)=='undefined'){i3GEO=new Array()}i3GEO.calculo={dms2dd:function(cd,cm,cs){try{var sinal='positivo';if(cd<0){cd=cd*-1;sinal='negativo'}spm=cs/3600;mpg=cm/60;var dd=(cd*1)+(mpg*1)+(spm*1);if(sinal=='negativo'){dd=dd*-1}return(dd)}catch(e){return(0)}},dd2tela:function(vx,vy,docmapa,ext,cellsize){try{if(i3GEO.interface.ATUAL=="googlemaps"){var pos=i3GEO.util.pegaPosicaoObjeto($i(i3GEO.interface.IDCORPO));var latlng=new GLatLng(vy,vx);var xyn=i3GeoMap.fromLatLngToContainerPixel(latlng);var xy=new Array();return[(xyn.x)+pos[0],(xyn.y)+pos[1]]}if(arguments.length==3){var ext=i3GEO.parametros.mapexten;var cellsize=i3GEO.parametros.pixelsize}if(arguments.length==4){var cellsize=i3GEO.parametros.pixelsize}if(!docmapa){var docmapa=window.document}var dc=docmapa.getElementById("img");if(!dc){var dc=docmapa}var pos=i3GEO.util.pegaPosicaoObjeto(dc);var imgext=ext;var imgext=imgext.split(" ");vx=(vx*1)-(imgext[0]*1);vy=(vy*-1)+(imgext[3]*1);c=cellsize*1;var xy=new Array();return[(vx/c)+pos[0],(vy/c)+pos[1]]}catch(e){return(new Array())}},dd2dms:function(x,y){var m=0;var s=0;var dx=parseInt(x);if(dx>0){var restod=x-dx}if(dx<0){restod=(x*-1)-(dx*-1)}dx=dx;if(restod!=0){var mm=restod*60;var m=parseInt(restod*60);var restos=mm-m;var mx=m;if(restos!=0){var s=restos*60;var s=(s+"_").substring(0,5);var sx=s}else{s="00.00"}}else{var mx="00";var sx="00.00"}if(m.length==2){m="0"+m+""}if(s*1<10){s="0"+s}var xv=dx+" "+mx+" "+sx;var m=0;var s=0;var dy=parseInt(y);if(dy>0){var restod=y-dy}if(dy<0){var restod=(y*-1)-(dy*-1)}dy=dy;if(restod!=0){var mm=restod*60;var m=parseInt(restod*60);var restos=mm-m;var my=m;if(restos!=0){var s=restos*60;s=(s+"_").substring(0,5);var sy=s}else{var s="00.00"}}else{var my="00";var sy="00.00"}if(m.length==2){m="0"+m}if(s*1<10){s="0"+s}var yv=dy+" "+my+" "+sy;var res=new Array();res[0]=xv;res[1]=yv;return res},tela2dd:function(xfign,yfign,g_celula,imgext){try{if(navm){xfign=xfign-2.2;yfign=yfign-2.7}else{xfign=xfign-0.12;yfign=yfign-1.05}var nx=g_celula*xfign;var ny=g_celula*yfign;var amext=imgext.split(" ");var longdd=(amext[0]*1)+nx;var latdd=(amext[3]*1)-ny;var res=new Array();res[0]=longdd;res[1]=latdd;return(res)}catch(e){return(0)}},area:function(pontos,pixel){try{if(pontos.xpt.length>2){var $array_length=pontos.xpt.length;pontos.xtela.push(pontos.xtela[0]);pontos.ytela.push(pontos.ytela[0]);pontos.xtela.push(pontos.xtela[0]);pontos.ytela.push(pontos.ytela[1]);var $polygon_area=0;for(var $i=0;$i<=$array_length;$i++){$polygon_area+=((pontos.xtela[$i]*pontos.ytela[$i+1])-(pontos.ytela[$i]*pontos.xtela[$i+1]))}$polygon_area=Math.abs($polygon_area)/2}else{$polygon_area="Sao necessarios pelo menos tres pontos para o calculo"}return $polygon_area*pixel}catch(e){return(0)}},distancia:function(lga,lta,lgb,ltb){try{var er=6366.707;var radlat1=Math.PI*lta/180;var radlat2=Math.PI*ltb/180;var radlong1=Math.PI*lga/180;var radlong2=Math.PI*lgb/180;if(lta>0){radlat1=Math.PI/2-radlat1}if(lta<0){radlat1=Math.PI/2+radlat1}if(lga<0){radlong1=Math.PI*2-radlong1}if(ltb>0){radlat2=Math.PI/2-radlat2}if(ltb<0){radlat2=Math.PI/2+radlat2}if(lgb<0){radlong2=Math.PI*2-radlong2}var x1=er*Math.cos(radlong1)*Math.sin(radlat1);var y1=er*Math.sin(radlong1)*Math.sin(radlat1);var z1=er*Math.cos(radlat1);var x2=er*Math.cos(radlong2)*Math.sin(radlat2);var y2=er*Math.sin(radlong2)*Math.sin(radlat2);var z2=er*Math.cos(radlat2);var d=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));var theta=Math.acos((er*er+er*er-d*d)/(2*er*er));return theta*er}catch(e){return(0)}},rect2ext:function(idrect,mapext,pixel){eval('pix = parseInt(document.getElementById("'+idrect+'").style.'+g_tipoleft+")");eval('piy = parseInt(document.getElementById("'+idrect+'").style.'+g_tipotop+")");if($i(idrect)){var bx=$i(idrect);var bxs=bx.style}else{alert("Box nao encontrado");return}var pos=i3GEO.util.pegaPosicaoObjeto($i("img"));var xfig0=parseInt(bxs.width)-pos[0];var yfig0=parseInt(bxs.height)-pos[1];var xfig=pix+(parseInt(bxs.width))-pos[0];var yfig=piy+(parseInt(bxs.height))-pos[1];var amext=mapext.split(" ");var dx=((amext[0]*-1)-(amext[2]*-1))/-1;var dy=((amext[1]*1)-(amext[3]*1))/-1;if(dy<0)dy=dy*-1;var nx=pixel*xfig;var ny=pixel*yfig;var x1=(amext[0]*1)+nx;var y1=(amext[3]*1)-ny;var xfig=pix-pos[0];var yfig=piy-pos[1];if(dy<0)dy=dy*-1;var nx=i3GEO.parametros.pixelsize*xfig;var ny=i3GEO.parametros.pixelsize*yfig;var x2=(amext[0]*1)+nx;var y2=(amext[3]*1)-ny;var v=x2+" "+y2+" "+x1+" "+y1;var res=new Array(v,x1,y1,x2,y2);return(res)}};  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +if(typeof(i3GEO)=='undefined'){i3GEO=new Array()}i3GEO.calculo={dms2dd:function(cd,cm,cs){try{var sinal='positivo';if(cd<0){cd=cd*-1;sinal='negativo'}spm=cs/3600;mpg=cm/60;var dd=(cd*1)+(mpg*1)+(spm*1);if(sinal=='negativo'){dd=dd*-1}return(dd)}catch(e){return(0)}},dd2tela:function(vx,vy,docmapa,ext,cellsize){try{if(i3GEO.interface.ATUAL=="googlemaps"){var pos=i3GEO.util.pegaPosicaoObjeto($i(i3GEO.interface.IDCORPO));var latlng=new GLatLng(vy,vx);var xyn=i3GeoMap.fromLatLngToContainerPixel(latlng);var xy=new Array();return[(xyn.x)+pos[0],(xyn.y)+pos[1]]}if(arguments.length==3){var ext=i3GEO.parametros.mapexten;var cellsize=i3GEO.parametros.pixelsize}if(arguments.length==4){var cellsize=i3GEO.parametros.pixelsize}if(!docmapa){var docmapa=window.document}try{var dc=docmapa.getElementById("img");if(!dc){var dc=docmapa}}catch(e){var dc=docmapa}var pos=i3GEO.util.pegaPosicaoObjeto(dc);var imgext=ext;var imgext=imgext.split(" ");vx=(vx*1)-(imgext[0]*1);vy=(vy*-1)+(imgext[3]*1);c=cellsize*1;return[(vx/c)+pos[0],(vy/c)+pos[1]]}catch(e){return(new Array())}},dd2dms:function(x,y){var m=0;var s=0;var dx=parseInt(x);if(dx>0){var restod=x-dx}if(dx<0){restod=(x*-1)-(dx*-1)}dx=dx;if(restod!=0){var mm=restod*60;var m=parseInt(restod*60);var restos=mm-m;var mx=m;if(restos!=0){var s=restos*60;var s=(s+"_").substring(0,5);var sx=s}else{s="00.00"}}else{var mx="00";var sx="00.00"}if(m.length==2){m="0"+m+""}if(s*1<10){s="0"+s}var xv=dx+" "+mx+" "+sx;var m=0;var s=0;var dy=parseInt(y);if(dy>0){var restod=y-dy}if(dy<0){var restod=(y*-1)-(dy*-1)}dy=dy;if(restod!=0){var mm=restod*60;var m=parseInt(restod*60);var restos=mm-m;var my=m;if(restos!=0){var s=restos*60;s=(s+"_").substring(0,5);var sy=s}else{var s="00.00"}}else{var my="00";var sy="00.00"}if(m.length==2){m="0"+m}if(s*1<10){s="0"+s}var yv=dy+" "+my+" "+sy;var res=new Array();res[0]=xv;res[1]=yv;return res},tela2dd:function(xfign,yfign,g_celula,imgext){try{if(navm){xfign=xfign-2.2;yfign=yfign-2.7}else{xfign=xfign-0.12;yfign=yfign-1.05}var nx=g_celula*xfign;var ny=g_celula*yfign;var amext=imgext.split(" ");var longdd=(amext[0]*1)+nx;var latdd=(amext[3]*1)-ny;var res=new Array();res[0]=longdd;res[1]=latdd;return(res)}catch(e){return(0)}},area:function(pontos,pixel){try{if(pontos.xpt.length>2){var $array_length=pontos.xpt.length;pontos.xtela.push(pontos.xtela[0]);pontos.ytela.push(pontos.ytela[0]);pontos.xtela.push(pontos.xtela[0]);pontos.ytela.push(pontos.ytela[1]);var $polygon_area=0;for(var $i=0;$i<=$array_length;$i++){$polygon_area+=((pontos.xtela[$i]*pontos.ytela[$i+1])-(pontos.ytela[$i]*pontos.xtela[$i+1]))}$polygon_area=Math.abs($polygon_area)/2}else{$polygon_area="Sao necessarios pelo menos tres pontos para o calculo"}return $polygon_area*pixel}catch(e){return(0)}},distancia:function(lga,lta,lgb,ltb){try{var er=6366.707;var radlat1=Math.PI*lta/180;var radlat2=Math.PI*ltb/180;var radlong1=Math.PI*lga/180;var radlong2=Math.PI*lgb/180;if(lta>0){radlat1=Math.PI/2-radlat1}if(lta<0){radlat1=Math.PI/2+radlat1}if(lga<0){radlong1=Math.PI*2-radlong1}if(ltb>0){radlat2=Math.PI/2-radlat2}if(ltb<0){radlat2=Math.PI/2+radlat2}if(lgb<0){radlong2=Math.PI*2-radlong2}var x1=er*Math.cos(radlong1)*Math.sin(radlat1);var y1=er*Math.sin(radlong1)*Math.sin(radlat1);var z1=er*Math.cos(radlat1);var x2=er*Math.cos(radlong2)*Math.sin(radlat2);var y2=er*Math.sin(radlong2)*Math.sin(radlat2);var z2=er*Math.cos(radlat2);var d=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));var theta=Math.acos((er*er+er*er-d*d)/(2*er*er));return theta*er}catch(e){return(0)}},rect2ext:function(idrect,mapext,pixel){eval('pix = parseInt(document.getElementById("'+idrect+'").style.'+g_tipoleft+")");eval('piy = parseInt(document.getElementById("'+idrect+'").style.'+g_tipotop+")");if($i(idrect)){var bx=$i(idrect);var bxs=bx.style}else{alert("Box nao encontrado");return}var pos=i3GEO.util.pegaPosicaoObjeto($i("img"));var xfig0=parseInt(bxs.width)-pos[0];var yfig0=parseInt(bxs.height)-pos[1];var xfig=pix+(parseInt(bxs.width))-pos[0];var yfig=piy+(parseInt(bxs.height))-pos[1];var amext=mapext.split(" ");var dx=((amext[0]*-1)-(amext[2]*-1))/-1;var dy=((amext[1]*1)-(amext[3]*1))/-1;if(dy<0)dy=dy*-1;var nx=pixel*xfig;var ny=pixel*yfig;var x1=(amext[0]*1)+nx;var y1=(amext[3]*1)-ny;var xfig=pix-pos[0];var yfig=piy-pos[1];if(dy<0)dy=dy*-1;var nx=pixel*xfig;var ny=pixel*yfig;var x2=(amext[0]*1)+nx;var y2=(amext[3]*1)-ny;var v=x2+" "+y2+" "+x1+" "+y1;var res=new Array(v,x1,y1,x2,y2);return(res)},ext2rect:function(idrect,mapext,boxext,pixel,documento){var rectbox=boxext.split(" ");var rectmap=mapext.split(" ");if(rectbox[0]*1<rectmap[0]*1){rectbox[0]=rectmap[0]}if(rectbox[0]*1>rectmap[2]*1){rectbox[0]=rectmap[2]}if(rectbox[2]*1>rectmap[2]*1){rectbox[2]=rectmap[2]}if(rectbox[2]*1<rectmap[0]*1){rectbox[2]=rectmap[0]}if(rectbox[3]*1>rectmap[3]*1){rectbox[3]=rectmap[3]}if(rectbox[2]*1>rectmap[3]*1){rectbox[2]=rectmap[3]}if(rectbox[1]*1<rectmap[1]*1){rectbox[1]=rectmap[1]}if(rectbox[3]*1<rectmap[1]*1){rectbox[3]=rectmap[1]}var xyMin=i3GEO.calculo.dd2tela(rectbox[0],rectbox[1],documento,boxext,pixel);var xyMax=i3GEO.calculo.dd2tela(rectbox[2],rectbox[3],documento,boxext,pixel);var w=xyMax[0]-xyMin[0];var h=xyMin[1]-xyMax[1];var tl=i3GEO.calculo.dd2tela(rectbox[0],rectbox[3],documento,mapext,pixel);var pos=i3GEO.util.pegaPosicaoObjeto(documento);var t=tl[1]-pos[1];var l=tl[0]-pos[0];var d="block"if($i(idrect)){var box=$i(idrect);box.style.width=w;box.style.height=h;box.style.top=t+"px";box.style.left=l+"px";box.style.display=d}return new Array(w,h,xyMax[1],xyMin[0])}};
3 \ No newline at end of file 3 \ No newline at end of file
classesjs/compactados/classe_maparef_compacto.js
1 -if(typeof(i3GEO)=='undefined'){i3GEO=new Array()}i3GEO.maparef={fatorZoomDinamico:-3,inicia:function(){if(!$i("i3geo_winRef")){var novoel=document.createElement("div");novoel.id="i3geo_winRef";novoel.style.display="none";novoel.style.borderColor="gray";var ins='<div class="hd">';var temp="javascript:if(i3GEO.maparef.fatorZoomDinamico == -1){i3GEO.maparef.fatorZoomDinamico = 1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico + 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";ins+="<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />";var temp="javascript:if(i3GEO.maparef.fatorZoomDinamico == 1){i3GEO.maparef.fatorZoomDinamico = -1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico - 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";ins+="<img class=menos onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />&nbsp;";ins+="<select id='refDinamico' onchange='javascript:i3GEO.maparef.atualiza()'>";ins+="<option value='fixo' select >fixo</option>";ins+="<option value='mapa' >mapa</option>";ins+="<option value='dinamico' >dinâmico</option>";ins+="</select>";ins+="</div>";ins+='<div class="bd" style="text-align:left;padding:3px;" id="mapaReferencia" onmouseover="this.onmousemove=function(exy){i3GEO.eventos.posicaoMouseMapa(exy)}" onclick="javascript:i3GEO.maparef.click()">';ins+='<img style="cursor:pointer;" id=imagemReferencia src="" >';ins+='<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>';novoel.innerHTML=ins;document.body.appendChild(novoel)}if($i("i3geo_winRef").style.display!="block"){$i("i3geo_winRef").style.display="block";YAHOO.namespace("janelaRef.xp");YAHOO.janelaRef.xp.panel=new YAHOO.widget.Panel("i3geo_winRef",{width:"156px",fixedcenter:false,constraintoviewport:true,underlay:"shadow",close:true,visible:true,draggable:true,modal:false});YAHOO.janelaRef.xp.panel.render();var pos=i3GEO.util.pegaPosicaoObjeto($i("img"));if(navm){YAHOO.janelaRef.xp.panel.moveTo((pos[0]+i3GEO.parametros.w-160),pos[1]+4)}else{YAHOO.janelaRef.xp.panel.moveTo((pos[0]+i3GEO.parametros.w-160),pos[1]+4)}var escondeRef=function(){YAHOO.util.Event.removeListener(YAHOO.janelaRef.xp.panel.close,"click");YAHOO.janelaRef.xp.panel.destroy();i3GEO.util.insereCookie("i3GEO.configura.mapaRefDisplay","none")};YAHOO.util.Event.addListener(YAHOO.janelaRef.xp.panel.close,"click",escondeRef);i3GEO.util.insereCookie("i3GEO.configura.mapaRefDisplay","block");if(typeof(atualizaLocalizarxy)=="function"){if(i3GEO.gadgets.PARAMETROS.mostraCoordenadasGEO.idhtml)YAHOO.util.Event.addListener($i("imagemReferencia"),"mousemove",atualizaLocalizarxy)}}if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()")<0){i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()")}this.atualiza()},atualiza:function(){var dinamico=false;if($i("refDinamico")){var tiporef=$i("refDinamico").value}if($i("mapaReferencia")){if(tiporef=="dinamico"){i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef)}if(tiporef=="fixo"){if(($i("imagemReferencia").src=="")||(i3GEO.parametros.cgi!="sim")){i3GEO.php.referencia(i3GEO.maparef.processaImagem)}else{var re=new RegExp("&mode=map","g");$i("imagemReferencia").src=$i(i3GEO.interface.IDMAPA).src.replace(re,'&mode=reference');i3GEO.gadgets.quadros.grava("referencia",$i("imagemReferencia").src)}}if(tiporef=="mapa"){i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef)}}else{if($i("imagemReferencia"))i3GEO.gadgets.quadros.grava("referencia",$i("imagemReferencia").src);i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.maparef.atualiza()")}},processaImagem:function(retorno){i3GEO.janela.fechaAguarde("ajaxreferencia1");if((retorno.data!="erro")&&(retorno.data!=undefined)){eval(retorno.data);i3GEO.parametros.celularef=g_celularef;i3GEO.parametros.extentref=extentref;if($i("imagemReferencia")){var m=new Image();m.src=refimagem;$i("imagemReferencia").src=m.src;if((i3GEO.parametros.mapscale<15000000)&&(i3GEO.parametros.mapscale>10000000)){$i("refmensagem").innerHTML="Para navegar no mapa principal, voc&ecirc; pode clicar em um ponto no mapa de refer&ecirc;ncia.";$i("refmensagem").style.fontSize="10px"}else{$i("refmensagem").innerHTML="";$i("refmensagem").style.fontSize="0px"}}i3GEO.gadgets.quadros.grava("referencia",refimagem)}else{YAHOO.log("Erro na imagem de referência","redesenho")}},click:function(){try{i3GEO.janela.abreAguarde("i3GEO.atualiza",$trad("o1"));i3GEO.php.pan(i3GEO.atualiza,i3GEO.parametros.mapscale,"ref",objposicaocursor.refx,objposicaocursor.refy)}catch(e){var e="";i3GEO.janela.fechaAguarde("i3GEO.atualiza")}}};  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +if(typeof(i3GEO)=='undefined'){i3GEO=new Array()}i3GEO.maparef={fatorZoomDinamico:-3,inicia:function(){if(!$i("i3geo_winRef")){var novoel=document.createElement("div");novoel.id="i3geo_winRef";novoel.style.display="none";novoel.style.borderColor="gray";var ins='<div class="hd" style="text-align:left">';var temp="javascript:if(i3GEO.maparef.fatorZoomDinamico == -1){i3GEO.maparef.fatorZoomDinamico = 1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico + 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";ins+="<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />";var temp="javascript:if(i3GEO.maparef.fatorZoomDinamico == 1){i3GEO.maparef.fatorZoomDinamico = -1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico - 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";ins+="<img class=menos onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />&nbsp;";ins+="<select id='refDinamico' onchange='javascript:i3GEO.maparef.atualiza()'>";ins+="<option value='fixo' select >fixo</option>";ins+="<option value='mapa' >mapa</option>";ins+="<option value='dinamico' >dinâmico</option>";ins+="</select>";ins+="</div>";ins+='<div class="bd" style="text-align:left;padding:3px;" id="mapaReferencia" onmouseover="this.onmousemove=function(exy){i3GEO.eventos.posicaoMouseMapa(exy)}" >';ins+='<img style="cursor:pointer;" id=imagemReferencia src="" onclick="javascript:i3GEO.maparef.click()">';ins+='<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>';novoel.innerHTML=ins;document.body.appendChild(novoel)}if($i("i3geo_winRef").style.display!="block"){$i("i3geo_winRef").style.display="block";YAHOO.namespace("janelaRef.xp");YAHOO.janelaRef.xp.panel=new YAHOO.widget.Panel("i3geo_winRef",{width:"156px",fixedcenter:false,constraintoviewport:true,underlay:"shadow",close:true,visible:true,draggable:true,modal:false});YAHOO.janelaRef.xp.panel.render();var pos=i3GEO.util.pegaPosicaoObjeto($i("img"));if(navm){YAHOO.janelaRef.xp.panel.moveTo((pos[0]+i3GEO.parametros.w-160),pos[1]+4)}else{YAHOO.janelaRef.xp.panel.moveTo((pos[0]+i3GEO.parametros.w-160),pos[1]+4)}var escondeRef=function(){YAHOO.util.Event.removeListener(YAHOO.janelaRef.xp.panel.close,"click");YAHOO.janelaRef.xp.panel.destroy();i3GEO.util.insereCookie("i3GEO.configura.mapaRefDisplay","none")};YAHOO.util.Event.addListener(YAHOO.janelaRef.xp.panel.close,"click",escondeRef);i3GEO.util.insereCookie("i3GEO.configura.mapaRefDisplay","block");if(typeof(atualizaLocalizarxy)=="function"){if(i3GEO.gadgets.PARAMETROS.mostraCoordenadasGEO.idhtml)YAHOO.util.Event.addListener($i("imagemReferencia"),"mousemove",atualizaLocalizarxy)}}if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()")<0){i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()")}this.atualiza()},atualiza:function(){var dinamico=false;if($i("refDinamico")){var tiporef=$i("refDinamico").value}if($i("mapaReferencia")){if(tiporef=="dinamico"){i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef)}if(tiporef=="fixo"){if(($i("imagemReferencia").src=="")||(i3GEO.parametros.cgi!="sim")){i3GEO.php.referencia(i3GEO.maparef.processaImagem)}else{var re=new RegExp("&mode=map","g");$i("imagemReferencia").src=$i(i3GEO.interface.IDMAPA).src.replace(re,'&mode=reference');i3GEO.gadgets.quadros.grava("referencia",$i("imagemReferencia").src)}}if(tiporef=="mapa"){i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef)}}else{if($i("imagemReferencia"))i3GEO.gadgets.quadros.grava("referencia",$i("imagemReferencia").src);i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.maparef.atualiza()")}},processaImagem:function(retorno){i3GEO.janela.fechaAguarde("ajaxreferencia1");if((retorno.data!="erro")&&(retorno.data!=undefined)){eval(retorno.data);i3GEO.parametros.celularef=g_celularef;i3GEO.parametros.extentref=extentref;if($i("imagemReferencia")){var m=new Image();m.src=refimagem;$i("imagemReferencia").src=m.src;if((i3GEO.parametros.mapscale<15000000)&&(i3GEO.parametros.mapscale>10000000)){$i("refmensagem").innerHTML="Para navegar no mapa principal, voc&ecirc; pode clicar em um ponto no mapa de refer&ecirc;ncia ou arrastar o box.";$i("refmensagem").style.fontSize="10px"}else{$i("refmensagem").innerHTML="";$i("refmensagem").style.fontSize="0px"}}i3GEO.gadgets.quadros.grava("referencia",refimagem);var tiporef="fixo";if($i("refDinamico")){var tiporef=$i("refDinamico").value}var box=$i("boxref");if(tiporef!="fixo"){if(box){box.style.display="none"}return}if(!box){var novoel=document.createElement("div");novoel.id="boxref";novoel.style.zIndex=10;novoel.style.position='absolute';novoel.style.backgroundColor="RGB(120,220,220)";novoel.style.cursor="move";if(navm){novoel.style.filter='alpha(opacity=40)'}else{novoel.style.opacity=.4}$i("mapaReferencia").appendChild(novoel);var boxrefdd=new YAHOO.util.DD("boxref");novoel.onmouseup=function(){var rect=$i("boxref");var telaminx=parseInt(rect.style.left);var telamaxy=parseInt(rect.style.top);var telamaxx=telaminx+parseInt(rect.style.width);var telaminy=telamaxy+parseInt(rect.style.height);var m=i3GEO.calculo.tela2dd(telaminx,telaminy,i3GEO.parametros.celularef,i3GEO.parametros.extentref);var x=i3GEO.calculo.tela2dd(telamaxx,telamaxy,i3GEO.parametros.celularef,i3GEO.parametros.extentref);var ext=m[0]+" "+m[1]+" "+x[0]+" "+x[1];i3GEO.navega.zoomExt(i3GEO.configura.locaplic,i3GEO.configura.sid,"",ext)}var box=$i("boxref")}i3GEO.calculo.ext2rect("boxref",extentref,i3GEO.parametros.mapexten,g_celularef,$i("mapaReferencia"));if(parseInt(box.style.width)>120)box.style.display="none";else box.style.display="block"}},click:function(){try{i3GEO.janela.abreAguarde("i3GEO.atualiza",$trad("o1"));i3GEO.php.pan(i3GEO.atualiza,i3GEO.parametros.mapscale,"ref",objposicaocursor.refx,objposicaocursor.refy)}catch(e){var e="";i3GEO.janela.fechaAguarde("i3GEO.atualiza")}}};
3 \ No newline at end of file 3 \ No newline at end of file
classesjs/i3geo_tudo_compacto.js
@@ -9611,15 +9611,18 @@ i3GEO.calculo = { @@ -9611,15 +9611,18 @@ i3GEO.calculo = {
9611 } 9611 }
9612 if(!docmapa) 9612 if(!docmapa)
9613 {var docmapa = window.document;} 9613 {var docmapa = window.document;}
9614 - var dc = docmapa.getElementById("img");  
9615 - if(!dc){var dc = docmapa;} 9614 + try{
  9615 + var dc = docmapa.getElementById("img");
  9616 + if(!dc){var dc = docmapa;}
  9617 + }
  9618 + catch(e){var dc = docmapa;}
9616 var pos = i3GEO.util.pegaPosicaoObjeto(dc); 9619 var pos = i3GEO.util.pegaPosicaoObjeto(dc);
9617 var imgext = ext; //i3GEO.parametros.mapexten; 9620 var imgext = ext; //i3GEO.parametros.mapexten;
9618 var imgext = imgext.split(" "); 9621 var imgext = imgext.split(" ");
9619 vx = (vx * 1) - (imgext[0] * 1); 9622 vx = (vx * 1) - (imgext[0] * 1);
9620 vy = (vy * -1) + (imgext[3] * 1); 9623 vy = (vy * -1) + (imgext[3] * 1);
9621 c = cellsize * 1; 9624 c = cellsize * 1;
9622 - var xy = new Array(); 9625 + //var xy = new Array();
9623 return [(vx / c) + pos[0],(vy / c) + pos[1]]; 9626 return [(vx / c) + pos[0],(vy / c) + pos[1]];
9624 } 9627 }
9625 catch(e){return(new Array());} 9628 catch(e){return(new Array());}
@@ -9834,6 +9837,18 @@ i3GEO.calculo = { @@ -9834,6 +9837,18 @@ i3GEO.calculo = {
9834 Function: rect2ext 9837 Function: rect2ext
9835 9838
9836 Calcula a extensão geográfica de um retângulo desenhado sobre o mapa. 9839 Calcula a extensão geográfica de um retângulo desenhado sobre o mapa.
  9840 +
  9841 + Parameters:
  9842 +
  9843 + idrect - id do elemento html com o retangulo
  9844 +
  9845 + mapext - extensao geografica do mapa onde está o retangulo
  9846 +
  9847 + pixel - tamanho do pixel do mapa em dd
  9848 +
  9849 + return:
  9850 +
  9851 + {Array} - extensão, xmin, ymin, xmax, ymax
9837 */ 9852 */
9838 rect2ext: function(idrect,mapext,pixel){ 9853 rect2ext: function(idrect,mapext,pixel){
9839 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")"); 9854 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")");
@@ -9860,13 +9875,67 @@ i3GEO.calculo = { @@ -9860,13 +9875,67 @@ i3GEO.calculo = {
9860 var xfig = pix - pos[0]; 9875 var xfig = pix - pos[0];
9861 var yfig = piy - pos[1]; 9876 var yfig = piy - pos[1];
9862 if (dy < 0) dy=dy * -1; 9877 if (dy < 0) dy=dy * -1;
9863 - var nx = i3GEO.parametros.pixelsize * xfig;  
9864 - var ny = i3GEO.parametros.pixelsize * yfig; 9878 + var nx = pixel * xfig;
  9879 + var ny = pixel * yfig;
9865 var x2 = (amext[0] * 1) + nx; 9880 var x2 = (amext[0] * 1) + nx;
9866 var y2 = (amext[3] * 1) - ny; 9881 var y2 = (amext[3] * 1) - ny;
9867 var v = x2+" "+y2+" "+x1+" "+y1; 9882 var v = x2+" "+y2+" "+x1+" "+y1;
9868 var res = new Array(v,x1,y1,x2,y2); 9883 var res = new Array(v,x1,y1,x2,y2);
9869 return (res); 9884 return (res);
  9885 + },
  9886 + /*
  9887 + Function: ext2rect
  9888 +
  9889 + Calcula o posicionamento de um retângulo com base na extensão geográfica.
  9890 +
  9891 + Parameters:
  9892 +
  9893 + idrect {String} - id do elemento html com o retangulo, pode ser vazio
  9894 +
  9895 + mapext {String} - extensao geografica do mapa onde está o retangulo
  9896 +
  9897 + boxext {String} - extensao geografica do retangulo
  9898 +
  9899 + pixel {Number} - tamanho do pixel do mapa em dd
  9900 +
  9901 + documento {Object DOM} - objeto sob o qual o retângulo será posicionado
  9902 +
  9903 + Return:
  9904 +
  9905 + {Array} - width,heigth,top,left
  9906 + */
  9907 + ext2rect: function(idrect,mapext,boxext,pixel,documento){
  9908 + var rectbox = boxext.split(" ");
  9909 + var rectmap = mapext.split(" ");
  9910 +
  9911 + if (rectbox[0]*1 < rectmap[0]*1){rectbox[0] = rectmap[0]}
  9912 + if (rectbox[0]*1 > rectmap[2]*1){rectbox[0] = rectmap[2]}
  9913 + if (rectbox[2]*1 > rectmap[2]*1){rectbox[2] = rectmap[2]}
  9914 + if (rectbox[2]*1 < rectmap[0]*1){rectbox[2] = rectmap[0]}
  9915 +
  9916 + if (rectbox[3]*1 > rectmap[3]*1){rectbox[3] = rectmap[3]}
  9917 + if (rectbox[2]*1 > rectmap[3]*1){rectbox[2] = rectmap[3]}
  9918 + if (rectbox[1]*1 < rectmap[1]*1){rectbox[1] = rectmap[1]}
  9919 + if (rectbox[3]*1 < rectmap[1]*1){rectbox[3] = rectmap[1]}
  9920 +
  9921 + var xyMin = i3GEO.calculo.dd2tela(rectbox[0],rectbox[1],documento,boxext,pixel);
  9922 + var xyMax = i3GEO.calculo.dd2tela(rectbox[2],rectbox[3],documento,boxext,pixel);
  9923 + var w = xyMax[0]-xyMin[0];
  9924 + var h = xyMin[1]-xyMax[1];
  9925 + var tl = i3GEO.calculo.dd2tela(rectbox[0],rectbox[3],documento,mapext,pixel);
  9926 + var pos = i3GEO.util.pegaPosicaoObjeto(documento);
  9927 + var t = tl[1] - pos[1];
  9928 + var l = tl[0] - pos[0];
  9929 + var d = "block"
  9930 + if($i(idrect)){
  9931 + var box = $i(idrect);
  9932 + box.style.width = w;
  9933 + box.style.height = h;
  9934 + box.style.top = t + "px";
  9935 + box.style.left = l + "px";
  9936 + box.style.display=d;
  9937 + }
  9938 + return new Array(w,h,xyMax[1],xyMin[0]);
9870 } 9939 }
9871 }; 9940 };
9872 //YAHOO.log("carregou classe calculo", "Classes i3geo"); 9941 //YAHOO.log("carregou classe calculo", "Classes i3geo");
@@ -12109,7 +12178,7 @@ i3GEO.maparef = { @@ -12109,7 +12178,7 @@ i3GEO.maparef = {
12109 novoel.id = "i3geo_winRef"; 12178 novoel.id = "i3geo_winRef";
12110 novoel.style.display="none"; 12179 novoel.style.display="none";
12111 novoel.style.borderColor="gray"; 12180 novoel.style.borderColor="gray";
12112 - var ins = '<div class="hd">'; 12181 + var ins = '<div class="hd" style="text-align:left">';
12113 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == -1){i3GEO.maparef.fatorZoomDinamico = 1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico + 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();"; 12182 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == -1){i3GEO.maparef.fatorZoomDinamico = 1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico + 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";
12114 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />"; 12183 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />";
12115 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == 1){i3GEO.maparef.fatorZoomDinamico = -1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico - 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();"; 12184 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == 1){i3GEO.maparef.fatorZoomDinamico = -1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico - 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";
@@ -12122,8 +12191,8 @@ i3GEO.maparef = { @@ -12122,8 +12191,8 @@ i3GEO.maparef = {
12122 ins += "</select>"; 12191 ins += "</select>";
12123 ins += "</div>"; 12192 ins += "</div>";
12124 //ins += '<input style="cursor:pointer" onclick="javascript:i3GEO.maparef.atualiza()" type="checkbox" id="refDinamico" />&nbsp;'+$trad("o6")+'</div>'; 12193 //ins += '<input style="cursor:pointer" onclick="javascript:i3GEO.maparef.atualiza()" type="checkbox" id="refDinamico" />&nbsp;'+$trad("o6")+'</div>';
12125 - ins += '<div class="bd" style="text-align:left;padding:3px;" id="mapaReferencia" onmouseover="this.onmousemove=function(exy){i3GEO.eventos.posicaoMouseMapa(exy)}" onclick="javascript:i3GEO.maparef.click()">';  
12126 - ins += '<img style="cursor:pointer;" id=imagemReferencia src="" >'; 12194 + ins += '<div class="bd" style="text-align:left;padding:3px;" id="mapaReferencia" onmouseover="this.onmousemove=function(exy){i3GEO.eventos.posicaoMouseMapa(exy)}" >';
  12195 + ins += '<img style="cursor:pointer;" id=imagemReferencia src="" onclick="javascript:i3GEO.maparef.click()">';
12127 //ins += '<div id=boxRef style="position:absolute;top:0px;left:0px;width:10px;height:10px;border:2px solid blue;display:none"></div></div>'; 12196 //ins += '<div id=boxRef style="position:absolute;top:0px;left:0px;width:10px;height:10px;border:2px solid blue;display:none"></div></div>';
12128 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>'; 12197 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>';
12129 novoel.innerHTML = ins; 12198 novoel.innerHTML = ins;
@@ -12153,7 +12222,6 @@ i3GEO.maparef = { @@ -12153,7 +12222,6 @@ i3GEO.maparef = {
12153 //YAHOO.log("Fim initJanelaRef", "i3geo"); 12222 //YAHOO.log("Fim initJanelaRef", "i3geo");
12154 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0) 12223 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0)
12155 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");} 12224 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");}
12156 -  
12157 this.atualiza(); 12225 this.atualiza();
12158 }, 12226 },
12159 /* 12227 /*
@@ -12174,7 +12242,6 @@ i3GEO.maparef = { @@ -12174,7 +12242,6 @@ i3GEO.maparef = {
12174 if ($i("refDinamico")) 12242 if ($i("refDinamico"))
12175 {var tiporef = $i("refDinamico").value;} 12243 {var tiporef = $i("refDinamico").value;}
12176 if ($i("mapaReferencia")){ 12244 if ($i("mapaReferencia")){
12177 - //YAHOO.log("Atualizando o mapa de referência", "i3geo");  
12178 if(tiporef == "dinamico"){ 12245 if(tiporef == "dinamico"){
12179 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef); 12246 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef);
12180 } 12247 }
@@ -12220,7 +12287,7 @@ i3GEO.maparef = { @@ -12220,7 +12287,7 @@ i3GEO.maparef = {
12220 m.src = refimagem; 12287 m.src = refimagem;
12221 $i("imagemReferencia").src=m.src; 12288 $i("imagemReferencia").src=m.src;
12222 if ((i3GEO.parametros.mapscale < 15000000) && (i3GEO.parametros.mapscale > 10000000)){ 12289 if ((i3GEO.parametros.mapscale < 15000000) && (i3GEO.parametros.mapscale > 10000000)){
12223 - $i("refmensagem").innerHTML = "Para navegar no mapa principal, voc&ecirc; pode clicar em um ponto no mapa de refer&ecirc;ncia."; 12290 + $i("refmensagem").innerHTML = "Para navegar no mapa principal, voc&ecirc; pode clicar em um ponto no mapa de refer&ecirc;ncia ou arrastar o box.";
12224 $i("refmensagem").style.fontSize="10px"; 12291 $i("refmensagem").style.fontSize="10px";
12225 } 12292 }
12226 else{ 12293 else{
@@ -12229,10 +12296,47 @@ i3GEO.maparef = { @@ -12229,10 +12296,47 @@ i3GEO.maparef = {
12229 } 12296 }
12230 } 12297 }
12231 i3GEO.gadgets.quadros.grava("referencia",refimagem); 12298 i3GEO.gadgets.quadros.grava("referencia",refimagem);
12232 - //YAHOO.log("Concluída imagem de referência", "redesenho"); 12299 + var tiporef = "fixo";
  12300 + if ($i("refDinamico"))
  12301 + {var tiporef = $i("refDinamico").value;}
  12302 + var box = $i("boxref");
  12303 + if(tiporef != "fixo"){
  12304 + if (box){box.style.display = "none"}
  12305 + return;
  12306 + }
  12307 + if (!box){
  12308 + var novoel = document.createElement("div");
  12309 + novoel.id = "boxref";
  12310 + novoel.style.zIndex=10;
  12311 + novoel.style.position = 'absolute';
  12312 + //novoel.style.border = '1px solid blue';
  12313 + novoel.style.backgroundColor = "RGB(120,220,220)";
  12314 + novoel.style.cursor = "move";
  12315 + if (navm)
  12316 + {novoel.style.filter='alpha(opacity=40)';}
  12317 + else
  12318 + {novoel.style.opacity= .4;}
  12319 + $i("mapaReferencia").appendChild(novoel);
  12320 + var boxrefdd = new YAHOO.util.DD("boxref");
  12321 + novoel.onmouseup = function(){
  12322 + var rect = $i("boxref");
  12323 + var telaminx = parseInt(rect.style.left);
  12324 + var telamaxy = parseInt(rect.style.top);
  12325 + var telamaxx = telaminx + parseInt(rect.style.width);
  12326 + var telaminy = telamaxy + parseInt(rect.style.height);
  12327 + var m = i3GEO.calculo.tela2dd(telaminx,telaminy,i3GEO.parametros.celularef,i3GEO.parametros.extentref);
  12328 + var x = i3GEO.calculo.tela2dd(telamaxx,telamaxy,i3GEO.parametros.celularef,i3GEO.parametros.extentref);
  12329 + var ext = m[0]+" "+m[1]+" "+x[0]+" "+x[1];
  12330 + i3GEO.navega.zoomExt(i3GEO.configura.locaplic,i3GEO.configura.sid,"",ext);
  12331 + }
  12332 + var box = $i("boxref");
  12333 + }
  12334 + i3GEO.calculo.ext2rect("boxref",extentref,i3GEO.parametros.mapexten,g_celularef,$i("mapaReferencia"));
  12335 + if(parseInt(box.style.width) > 120)
  12336 + box.style.display = "none";
  12337 + else
  12338 + box.style.display = "block";
12233 } 12339 }
12234 - else  
12235 - {YAHOO.log("Erro na imagem de referência", "redesenho");}  
12236 }, 12340 },
12237 /* 12341 /*
12238 Function: click 12342 Function: click
classesjs/i3geo_tudo_compacto.js.php
@@ -9611,15 +9611,18 @@ i3GEO.calculo = { @@ -9611,15 +9611,18 @@ i3GEO.calculo = {
9611 } 9611 }
9612 if(!docmapa) 9612 if(!docmapa)
9613 {var docmapa = window.document;} 9613 {var docmapa = window.document;}
9614 - var dc = docmapa.getElementById("img");  
9615 - if(!dc){var dc = docmapa;} 9614 + try{
  9615 + var dc = docmapa.getElementById("img");
  9616 + if(!dc){var dc = docmapa;}
  9617 + }
  9618 + catch(e){var dc = docmapa;}
9616 var pos = i3GEO.util.pegaPosicaoObjeto(dc); 9619 var pos = i3GEO.util.pegaPosicaoObjeto(dc);
9617 var imgext = ext; //i3GEO.parametros.mapexten; 9620 var imgext = ext; //i3GEO.parametros.mapexten;
9618 var imgext = imgext.split(" "); 9621 var imgext = imgext.split(" ");
9619 vx = (vx * 1) - (imgext[0] * 1); 9622 vx = (vx * 1) - (imgext[0] * 1);
9620 vy = (vy * -1) + (imgext[3] * 1); 9623 vy = (vy * -1) + (imgext[3] * 1);
9621 c = cellsize * 1; 9624 c = cellsize * 1;
9622 - var xy = new Array(); 9625 + //var xy = new Array();
9623 return [(vx / c) + pos[0],(vy / c) + pos[1]]; 9626 return [(vx / c) + pos[0],(vy / c) + pos[1]];
9624 } 9627 }
9625 catch(e){return(new Array());} 9628 catch(e){return(new Array());}
@@ -9834,6 +9837,18 @@ i3GEO.calculo = { @@ -9834,6 +9837,18 @@ i3GEO.calculo = {
9834 Function: rect2ext 9837 Function: rect2ext
9835 9838
9836 Calcula a extensão geográfica de um retângulo desenhado sobre o mapa. 9839 Calcula a extensão geográfica de um retângulo desenhado sobre o mapa.
  9840 +
  9841 + Parameters:
  9842 +
  9843 + idrect - id do elemento html com o retangulo
  9844 +
  9845 + mapext - extensao geografica do mapa onde está o retangulo
  9846 +
  9847 + pixel - tamanho do pixel do mapa em dd
  9848 +
  9849 + return:
  9850 +
  9851 + {Array} - extensão, xmin, ymin, xmax, ymax
9837 */ 9852 */
9838 rect2ext: function(idrect,mapext,pixel){ 9853 rect2ext: function(idrect,mapext,pixel){
9839 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")"); 9854 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")");
@@ -9860,13 +9875,67 @@ i3GEO.calculo = { @@ -9860,13 +9875,67 @@ i3GEO.calculo = {
9860 var xfig = pix - pos[0]; 9875 var xfig = pix - pos[0];
9861 var yfig = piy - pos[1]; 9876 var yfig = piy - pos[1];
9862 if (dy < 0) dy=dy * -1; 9877 if (dy < 0) dy=dy * -1;
9863 - var nx = i3GEO.parametros.pixelsize * xfig;  
9864 - var ny = i3GEO.parametros.pixelsize * yfig; 9878 + var nx = pixel * xfig;
  9879 + var ny = pixel * yfig;
9865 var x2 = (amext[0] * 1) + nx; 9880 var x2 = (amext[0] * 1) + nx;
9866 var y2 = (amext[3] * 1) - ny; 9881 var y2 = (amext[3] * 1) - ny;
9867 var v = x2+" "+y2+" "+x1+" "+y1; 9882 var v = x2+" "+y2+" "+x1+" "+y1;
9868 var res = new Array(v,x1,y1,x2,y2); 9883 var res = new Array(v,x1,y1,x2,y2);
9869 return (res); 9884 return (res);
  9885 + },
  9886 + /*
  9887 + Function: ext2rect
  9888 +
  9889 + Calcula o posicionamento de um retângulo com base na extensão geográfica.
  9890 +
  9891 + Parameters:
  9892 +
  9893 + idrect {String} - id do elemento html com o retangulo, pode ser vazio
  9894 +
  9895 + mapext {String} - extensao geografica do mapa onde está o retangulo
  9896 +
  9897 + boxext {String} - extensao geografica do retangulo
  9898 +
  9899 + pixel {Number} - tamanho do pixel do mapa em dd
  9900 +
  9901 + documento {Object DOM} - objeto sob o qual o retângulo será posicionado
  9902 +
  9903 + Return:
  9904 +
  9905 + {Array} - width,heigth,top,left
  9906 + */
  9907 + ext2rect: function(idrect,mapext,boxext,pixel,documento){
  9908 + var rectbox = boxext.split(" ");
  9909 + var rectmap = mapext.split(" ");
  9910 +
  9911 + if (rectbox[0]*1 < rectmap[0]*1){rectbox[0] = rectmap[0]}
  9912 + if (rectbox[0]*1 > rectmap[2]*1){rectbox[0] = rectmap[2]}
  9913 + if (rectbox[2]*1 > rectmap[2]*1){rectbox[2] = rectmap[2]}
  9914 + if (rectbox[2]*1 < rectmap[0]*1){rectbox[2] = rectmap[0]}
  9915 +
  9916 + if (rectbox[3]*1 > rectmap[3]*1){rectbox[3] = rectmap[3]}
  9917 + if (rectbox[2]*1 > rectmap[3]*1){rectbox[2] = rectmap[3]}
  9918 + if (rectbox[1]*1 < rectmap[1]*1){rectbox[1] = rectmap[1]}
  9919 + if (rectbox[3]*1 < rectmap[1]*1){rectbox[3] = rectmap[1]}
  9920 +
  9921 + var xyMin = i3GEO.calculo.dd2tela(rectbox[0],rectbox[1],documento,boxext,pixel);
  9922 + var xyMax = i3GEO.calculo.dd2tela(rectbox[2],rectbox[3],documento,boxext,pixel);
  9923 + var w = xyMax[0]-xyMin[0];
  9924 + var h = xyMin[1]-xyMax[1];
  9925 + var tl = i3GEO.calculo.dd2tela(rectbox[0],rectbox[3],documento,mapext,pixel);
  9926 + var pos = i3GEO.util.pegaPosicaoObjeto(documento);
  9927 + var t = tl[1] - pos[1];
  9928 + var l = tl[0] - pos[0];
  9929 + var d = "block"
  9930 + if($i(idrect)){
  9931 + var box = $i(idrect);
  9932 + box.style.width = w;
  9933 + box.style.height = h;
  9934 + box.style.top = t + "px";
  9935 + box.style.left = l + "px";
  9936 + box.style.display=d;
  9937 + }
  9938 + return new Array(w,h,xyMax[1],xyMin[0]);
9870 } 9939 }
9871 }; 9940 };
9872 //YAHOO.log("carregou classe calculo", "Classes i3geo"); 9941 //YAHOO.log("carregou classe calculo", "Classes i3geo");
@@ -12109,7 +12178,7 @@ i3GEO.maparef = { @@ -12109,7 +12178,7 @@ i3GEO.maparef = {
12109 novoel.id = "i3geo_winRef"; 12178 novoel.id = "i3geo_winRef";
12110 novoel.style.display="none"; 12179 novoel.style.display="none";
12111 novoel.style.borderColor="gray"; 12180 novoel.style.borderColor="gray";
12112 - var ins = '<div class="hd">'; 12181 + var ins = '<div class="hd" style="text-align:left">';
12113 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == -1){i3GEO.maparef.fatorZoomDinamico = 1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico + 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();"; 12182 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == -1){i3GEO.maparef.fatorZoomDinamico = 1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico + 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";
12114 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />"; 12183 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />";
12115 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == 1){i3GEO.maparef.fatorZoomDinamico = -1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico - 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();"; 12184 var temp = "javascript:if(i3GEO.maparef.fatorZoomDinamico == 1){i3GEO.maparef.fatorZoomDinamico = -1};i3GEO.maparef.fatorZoomDinamico = i3GEO.maparef.fatorZoomDinamico - 1 ;$i(\"refDinamico\").checked = true;i3GEO.maparef.atualiza();";
@@ -12122,8 +12191,8 @@ i3GEO.maparef = { @@ -12122,8 +12191,8 @@ i3GEO.maparef = {
12122 ins += "</select>"; 12191 ins += "</select>";
12123 ins += "</div>"; 12192 ins += "</div>";
12124 //ins += '<input style="cursor:pointer" onclick="javascript:i3GEO.maparef.atualiza()" type="checkbox" id="refDinamico" />&nbsp;'+$trad("o6")+'</div>'; 12193 //ins += '<input style="cursor:pointer" onclick="javascript:i3GEO.maparef.atualiza()" type="checkbox" id="refDinamico" />&nbsp;'+$trad("o6")+'</div>';
12125 - ins += '<div class="bd" style="text-align:left;padding:3px;" id="mapaReferencia" onmouseover="this.onmousemove=function(exy){i3GEO.eventos.posicaoMouseMapa(exy)}" onclick="javascript:i3GEO.maparef.click()">';  
12126 - ins += '<img style="cursor:pointer;" id=imagemReferencia src="" >'; 12194 + ins += '<div class="bd" style="text-align:left;padding:3px;" id="mapaReferencia" onmouseover="this.onmousemove=function(exy){i3GEO.eventos.posicaoMouseMapa(exy)}" >';
  12195 + ins += '<img style="cursor:pointer;" id=imagemReferencia src="" onclick="javascript:i3GEO.maparef.click()">';
12127 //ins += '<div id=boxRef style="position:absolute;top:0px;left:0px;width:10px;height:10px;border:2px solid blue;display:none"></div></div>'; 12196 //ins += '<div id=boxRef style="position:absolute;top:0px;left:0px;width:10px;height:10px;border:2px solid blue;display:none"></div></div>';
12128 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>'; 12197 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>';
12129 novoel.innerHTML = ins; 12198 novoel.innerHTML = ins;
@@ -12153,7 +12222,6 @@ i3GEO.maparef = { @@ -12153,7 +12222,6 @@ i3GEO.maparef = {
12153 //YAHOO.log("Fim initJanelaRef", "i3geo"); 12222 //YAHOO.log("Fim initJanelaRef", "i3geo");
12154 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0) 12223 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0)
12155 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");} 12224 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");}
12156 -  
12157 this.atualiza(); 12225 this.atualiza();
12158 }, 12226 },
12159 /* 12227 /*
@@ -12174,7 +12242,6 @@ i3GEO.maparef = { @@ -12174,7 +12242,6 @@ i3GEO.maparef = {
12174 if ($i("refDinamico")) 12242 if ($i("refDinamico"))
12175 {var tiporef = $i("refDinamico").value;} 12243 {var tiporef = $i("refDinamico").value;}
12176 if ($i("mapaReferencia")){ 12244 if ($i("mapaReferencia")){
12177 - //YAHOO.log("Atualizando o mapa de referência", "i3geo");  
12178 if(tiporef == "dinamico"){ 12245 if(tiporef == "dinamico"){
12179 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef); 12246 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef);
12180 } 12247 }
@@ -12220,7 +12287,7 @@ i3GEO.maparef = { @@ -12220,7 +12287,7 @@ i3GEO.maparef = {
12220 m.src = refimagem; 12287 m.src = refimagem;
12221 $i("imagemReferencia").src=m.src; 12288 $i("imagemReferencia").src=m.src;
12222 if ((i3GEO.parametros.mapscale < 15000000) && (i3GEO.parametros.mapscale > 10000000)){ 12289 if ((i3GEO.parametros.mapscale < 15000000) && (i3GEO.parametros.mapscale > 10000000)){
12223 - $i("refmensagem").innerHTML = "Para navegar no mapa principal, voc&ecirc; pode clicar em um ponto no mapa de refer&ecirc;ncia."; 12290 + $i("refmensagem").innerHTML = "Para navegar no mapa principal, voc&ecirc; pode clicar em um ponto no mapa de refer&ecirc;ncia ou arrastar o box.";
12224 $i("refmensagem").style.fontSize="10px"; 12291 $i("refmensagem").style.fontSize="10px";
12225 } 12292 }
12226 else{ 12293 else{
@@ -12229,10 +12296,47 @@ i3GEO.maparef = { @@ -12229,10 +12296,47 @@ i3GEO.maparef = {
12229 } 12296 }
12230 } 12297 }
12231 i3GEO.gadgets.quadros.grava("referencia",refimagem); 12298 i3GEO.gadgets.quadros.grava("referencia",refimagem);
12232 - //YAHOO.log("Concluída imagem de referência", "redesenho"); 12299 + var tiporef = "fixo";
  12300 + if ($i("refDinamico"))
  12301 + {var tiporef = $i("refDinamico").value;}
  12302 + var box = $i("boxref");
  12303 + if(tiporef != "fixo"){
  12304 + if (box){box.style.display = "none"}
  12305 + return;
  12306 + }
  12307 + if (!box){
  12308 + var novoel = document.createElement("div");
  12309 + novoel.id = "boxref";
  12310 + novoel.style.zIndex=10;
  12311 + novoel.style.position = 'absolute';
  12312 + //novoel.style.border = '1px solid blue';
  12313 + novoel.style.backgroundColor = "RGB(120,220,220)";
  12314 + novoel.style.cursor = "move";
  12315 + if (navm)
  12316 + {novoel.style.filter='alpha(opacity=40)';}
  12317 + else
  12318 + {novoel.style.opacity= .4;}
  12319 + $i("mapaReferencia").appendChild(novoel);
  12320 + var boxrefdd = new YAHOO.util.DD("boxref");
  12321 + novoel.onmouseup = function(){
  12322 + var rect = $i("boxref");
  12323 + var telaminx = parseInt(rect.style.left);
  12324 + var telamaxy = parseInt(rect.style.top);
  12325 + var telamaxx = telaminx + parseInt(rect.style.width);
  12326 + var telaminy = telamaxy + parseInt(rect.style.height);
  12327 + var m = i3GEO.calculo.tela2dd(telaminx,telaminy,i3GEO.parametros.celularef,i3GEO.parametros.extentref);
  12328 + var x = i3GEO.calculo.tela2dd(telamaxx,telamaxy,i3GEO.parametros.celularef,i3GEO.parametros.extentref);
  12329 + var ext = m[0]+" "+m[1]+" "+x[0]+" "+x[1];
  12330 + i3GEO.navega.zoomExt(i3GEO.configura.locaplic,i3GEO.configura.sid,"",ext);
  12331 + }
  12332 + var box = $i("boxref");
  12333 + }
  12334 + i3GEO.calculo.ext2rect("boxref",extentref,i3GEO.parametros.mapexten,g_celularef,$i("mapaReferencia"));
  12335 + if(parseInt(box.style.width) > 120)
  12336 + box.style.display = "none";
  12337 + else
  12338 + box.style.display = "block";
12233 } 12339 }
12234 - else  
12235 - {YAHOO.log("Erro na imagem de referência", "redesenho");}  
12236 }, 12340 },
12237 /* 12341 /*
12238 Function: click 12342 Function: click