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 110 }
111 111 if(!docmapa)
112 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 118 var pos = i3GEO.util.pegaPosicaoObjeto(dc);
116 119 var imgext = ext; //i3GEO.parametros.mapexten;
117 120 var imgext = imgext.split(" ");
118 121 vx = (vx * 1) - (imgext[0] * 1);
119 122 vy = (vy * -1) + (imgext[3] * 1);
120 123 c = cellsize * 1;
121   - var xy = new Array();
  124 + //var xy = new Array();
122 125 return [(vx / c) + pos[0],(vy / c) + pos[1]];
123 126 }
124 127 catch(e){return(new Array());}
... ... @@ -333,6 +336,18 @@ i3GEO.calculo = {
333 336 Function: rect2ext
334 337  
335 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 352 rect2ext: function(idrect,mapext,pixel){
338 353 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")");
... ... @@ -359,13 +374,67 @@ i3GEO.calculo = {
359 374 var xfig = pix - pos[0];
360 375 var yfig = piy - pos[1];
361 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 379 var x2 = (amext[0] * 1) + nx;
365 380 var y2 = (amext[3] * 1) - ny;
366 381 var v = x2+" "+y2+" "+x1+" "+y1;
367 382 var res = new Array(v,x1,y1,x2,y2);
368 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 440 //YAHOO.log("carregou classe calculo", "Classes i3geo");
372 441 \ No newline at end of file
... ...
classesjs/classe_maparef.js
... ... @@ -50,7 +50,7 @@ i3GEO.maparef = {
50 50 novoel.id = "i3geo_winRef";
51 51 novoel.style.display="none";
52 52 novoel.style.borderColor="gray";
53   - var ins = '<div class="hd">';
  53 + var ins = '<div class="hd" style="text-align:left">';
54 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 55 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />";
56 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 63 ins += "</select>";
64 64 ins += "</div>";
65 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 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 69 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>';
70 70 novoel.innerHTML = ins;
... ... @@ -94,7 +94,6 @@ i3GEO.maparef = {
94 94 //YAHOO.log("Fim initJanelaRef", "i3geo");
95 95 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0)
96 96 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");}
97   -
98 97 this.atualiza();
99 98 },
100 99 /*
... ... @@ -115,7 +114,6 @@ i3GEO.maparef = {
115 114 if ($i("refDinamico"))
116 115 {var tiporef = $i("refDinamico").value;}
117 116 if ($i("mapaReferencia")){
118   - //YAHOO.log("Atualizando o mapa de referência", "i3geo");
119 117 if(tiporef == "dinamico"){
120 118 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef);
121 119 }
... ... @@ -161,7 +159,7 @@ i3GEO.maparef = {
161 159 m.src = refimagem;
162 160 $i("imagemReferencia").src=m.src;
163 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 163 $i("refmensagem").style.fontSize="10px";
166 164 }
167 165 else{
... ... @@ -170,10 +168,47 @@ i3GEO.maparef = {
170 168 }
171 169 }
172 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 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 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 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 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 3 \ No newline at end of file
... ...
classesjs/i3geo_tudo_compacto.js
... ... @@ -9611,15 +9611,18 @@ i3GEO.calculo = {
9611 9611 }
9612 9612 if(!docmapa)
9613 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 9619 var pos = i3GEO.util.pegaPosicaoObjeto(dc);
9617 9620 var imgext = ext; //i3GEO.parametros.mapexten;
9618 9621 var imgext = imgext.split(" ");
9619 9622 vx = (vx * 1) - (imgext[0] * 1);
9620 9623 vy = (vy * -1) + (imgext[3] * 1);
9621 9624 c = cellsize * 1;
9622   - var xy = new Array();
  9625 + //var xy = new Array();
9623 9626 return [(vx / c) + pos[0],(vy / c) + pos[1]];
9624 9627 }
9625 9628 catch(e){return(new Array());}
... ... @@ -9834,6 +9837,18 @@ i3GEO.calculo = {
9834 9837 Function: rect2ext
9835 9838  
9836 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 9853 rect2ext: function(idrect,mapext,pixel){
9839 9854 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")");
... ... @@ -9860,13 +9875,67 @@ i3GEO.calculo = {
9860 9875 var xfig = pix - pos[0];
9861 9876 var yfig = piy - pos[1];
9862 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 9880 var x2 = (amext[0] * 1) + nx;
9866 9881 var y2 = (amext[3] * 1) - ny;
9867 9882 var v = x2+" "+y2+" "+x1+" "+y1;
9868 9883 var res = new Array(v,x1,y1,x2,y2);
9869 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 9941 //YAHOO.log("carregou classe calculo", "Classes i3geo");
... ... @@ -12109,7 +12178,7 @@ i3GEO.maparef = {
12109 12178 novoel.id = "i3geo_winRef";
12110 12179 novoel.style.display="none";
12111 12180 novoel.style.borderColor="gray";
12112   - var ins = '<div class="hd">';
  12181 + var ins = '<div class="hd" style="text-align:left">';
12113 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 12183 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />";
12115 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 12191 ins += "</select>";
12123 12192 ins += "</div>";
12124 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 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 12197 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>';
12129 12198 novoel.innerHTML = ins;
... ... @@ -12153,7 +12222,6 @@ i3GEO.maparef = {
12153 12222 //YAHOO.log("Fim initJanelaRef", "i3geo");
12154 12223 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0)
12155 12224 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");}
12156   -
12157 12225 this.atualiza();
12158 12226 },
12159 12227 /*
... ... @@ -12174,7 +12242,6 @@ i3GEO.maparef = {
12174 12242 if ($i("refDinamico"))
12175 12243 {var tiporef = $i("refDinamico").value;}
12176 12244 if ($i("mapaReferencia")){
12177   - //YAHOO.log("Atualizando o mapa de referência", "i3geo");
12178 12245 if(tiporef == "dinamico"){
12179 12246 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef);
12180 12247 }
... ... @@ -12220,7 +12287,7 @@ i3GEO.maparef = {
12220 12287 m.src = refimagem;
12221 12288 $i("imagemReferencia").src=m.src;
12222 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 12291 $i("refmensagem").style.fontSize="10px";
12225 12292 }
12226 12293 else{
... ... @@ -12229,10 +12296,47 @@ i3GEO.maparef = {
12229 12296 }
12230 12297 }
12231 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 12342 Function: click
... ...
classesjs/i3geo_tudo_compacto.js.php
... ... @@ -9611,15 +9611,18 @@ i3GEO.calculo = {
9611 9611 }
9612 9612 if(!docmapa)
9613 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 9619 var pos = i3GEO.util.pegaPosicaoObjeto(dc);
9617 9620 var imgext = ext; //i3GEO.parametros.mapexten;
9618 9621 var imgext = imgext.split(" ");
9619 9622 vx = (vx * 1) - (imgext[0] * 1);
9620 9623 vy = (vy * -1) + (imgext[3] * 1);
9621 9624 c = cellsize * 1;
9622   - var xy = new Array();
  9625 + //var xy = new Array();
9623 9626 return [(vx / c) + pos[0],(vy / c) + pos[1]];
9624 9627 }
9625 9628 catch(e){return(new Array());}
... ... @@ -9834,6 +9837,18 @@ i3GEO.calculo = {
9834 9837 Function: rect2ext
9835 9838  
9836 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 9853 rect2ext: function(idrect,mapext,pixel){
9839 9854 eval ('pix = parseInt(document.getElementById("'+idrect+'").style.' + g_tipoleft + ")");
... ... @@ -9860,13 +9875,67 @@ i3GEO.calculo = {
9860 9875 var xfig = pix - pos[0];
9861 9876 var yfig = piy - pos[1];
9862 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 9880 var x2 = (amext[0] * 1) + nx;
9866 9881 var y2 = (amext[3] * 1) - ny;
9867 9882 var v = x2+" "+y2+" "+x1+" "+y1;
9868 9883 var res = new Array(v,x1,y1,x2,y2);
9869 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 9941 //YAHOO.log("carregou classe calculo", "Classes i3geo");
... ... @@ -12109,7 +12178,7 @@ i3GEO.maparef = {
12109 12178 novoel.id = "i3geo_winRef";
12110 12179 novoel.style.display="none";
12111 12180 novoel.style.borderColor="gray";
12112   - var ins = '<div class="hd">';
  12181 + var ins = '<div class="hd" style="text-align:left">';
12113 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 12183 ins += "<img class=mais onclick='"+temp+"' src="+i3GEO.util.$im("branco.gif")+" />";
12115 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 12191 ins += "</select>";
12123 12192 ins += "</div>";
12124 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 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 12197 ins += '<div style="text-align:left;font-size:0px" id="refmensagem" ></div></div>';
12129 12198 novoel.innerHTML = ins;
... ... @@ -12153,7 +12222,6 @@ i3GEO.maparef = {
12153 12222 //YAHOO.log("Fim initJanelaRef", "i3geo");
12154 12223 if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.maparef.atualiza()") < 0)
12155 12224 {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.maparef.atualiza()");}
12156   -
12157 12225 this.atualiza();
12158 12226 },
12159 12227 /*
... ... @@ -12174,7 +12242,6 @@ i3GEO.maparef = {
12174 12242 if ($i("refDinamico"))
12175 12243 {var tiporef = $i("refDinamico").value;}
12176 12244 if ($i("mapaReferencia")){
12177   - //YAHOO.log("Atualizando o mapa de referência", "i3geo");
12178 12245 if(tiporef == "dinamico"){
12179 12246 i3GEO.php.referenciadinamica(i3GEO.maparef.processaImagem,i3GEO.maparef.fatorZoomDinamico,tiporef);
12180 12247 }
... ... @@ -12220,7 +12287,7 @@ i3GEO.maparef = {
12220 12287 m.src = refimagem;
12221 12288 $i("imagemReferencia").src=m.src;
12222 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 12291 $i("refmensagem").style.fontSize="10px";
12225 12292 }
12226 12293 else{
... ... @@ -12229,10 +12296,47 @@ i3GEO.maparef = {
12229 12296 }
12230 12297 }
12231 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 12342 Function: click
... ...