From 6a432abe0ad549c83c2223d740fe3495a206bda0 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 12 Jul 2010 21:01:11 +0000 Subject: [PATCH] Conclusão da revisão das funções de modificação das propriedades do mapa na interface GoogleMaps --- classesjs/classe_calculo.js | 6 +++--- classesjs/classe_gadgets.js | 2 +- classesjs/classe_interface.js | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ classesjs/classe_mapa.js | 2 ++ classesjs/classe_maparef.js | 25 ++++++++++++++++++------- classesphp/classe_mapa.php | 3 ++- classesphp/mapa_googlemaps.php | 43 +++++++++++++++++++++++++++++++++++++++---- classesphp/mapa_openlayers.php | 32 +++++++++++++++++++++++++++++++- ferramentas/buscarapida/index.js | 6 +++--- ferramentas/opcoes_fundo/index.js.php | 4 ++-- ferramentas/opcoes_tamanho/index.js.php | 4 ++-- ferramentas/outputformat/index.js.php | 5 +---- imagens/visual/default/sprite.png | Bin 33644 -> 0 bytes 13 files changed, 194 insertions(+), 52 deletions(-) diff --git a/classesjs/classe_calculo.js b/classesjs/classe_calculo.js index 324d901..974e8d0 100644 --- a/classesjs/classe_calculo.js +++ b/classesjs/classe_calculo.js @@ -100,11 +100,11 @@ i3GEO.calculo = { */ dd2tela: function (vx,vy,docmapa,ext,cellsize){ try{ - var pos,latlng,xyn,dc,imgext,c,xy; + var pos,latlng,xyn,dc,imgext,c,xy,mapType; if(i3GEO.Interface.ATUAL == "googlemaps"){ pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); - latlng = new GLatLng(vy,vx); - xyn = i3GeoMap.fromLatLngToContainerPixel(latlng); + mapType = i3GeoMap.mapTypes[i3GeoMap.getMapTypeId()]; + xyn = mapType.projection.fromLatLngToPoint(new google.maps.LatLng(vy,vx)); xy = []; return [(xyn.x)+pos[0],(xyn.y)+pos[1]]; } diff --git a/classesjs/classe_gadgets.js b/classesjs/classe_gadgets.js index 40f5e7d..67a9164 100644 --- a/classesjs/classe_gadgets.js +++ b/classesjs/classe_gadgets.js @@ -438,7 +438,7 @@ i3GEO.gadgets = { {alert ("Digite uma palavra para busca!");return;} wdocaf("300px","280px",i3GEO.configura.locaplic+"/ferramentas/buscarapida/index.htm","","","Busca rapida"); }; - i = $inputText(id,"200","valorBuscaRapida","digite o texto para busca","30",$trad("o2")); + i = $inputText(id,"210","valorBuscaRapida","digite o texto para busca","30",$trad("o2")); ins = "
   "+i; ins += "
"; temp = $i(id); diff --git a/classesjs/classe_interface.js b/classesjs/classe_interface.js index 831e77a..5a2ea98 100644 --- a/classesjs/classe_interface.js +++ b/classesjs/classe_interface.js @@ -148,7 +148,9 @@ i3GEO.Interface = { /* Function: redesenha - Aplica o método redesenha da interface atual + Aplica o método redesenha da interface atual. Em alguns casos, a função de redesenho aplica os mesmos + processos da função de atualizar o mapa. Isso ocorre pq em alguns casos as funções são otimizadas para cada + situação */ redesenha: function(){ if(typeof(console) !== 'undefined'){console.info("i3GEO.Interface.redesenha()");} @@ -164,6 +166,26 @@ i3GEO.Interface = { {i3GEO.Interface.flamingo.redesenha();} }, /* + Function: atualizaMapa + + Aplica o método atualizaMapa da interface atual. Em alguns casos, a função de redesenho aplica os mesmos + processos da função de atualizar o mapa. Isso ocorre pq em alguns casos as funções são otimizadas para cada + situação + */ + atualizaMapa: function(){ + if(typeof(console) !== 'undefined'){console.info("i3GEO.Interface.atualizaMapa()");} + if(i3GEO.Interface.ATUAL === "padrao") + {i3GEO.atualiza();} + if(i3GEO.Interface.ATUAL === "openlayers") + {i3GEO.Interface.openlayers.atualizaMapa();} + if(i3GEO.Interface.ATUAL === "googlemaps") + {i3GEO.Interface.googlemaps.redesenha();} + if(i3GEO.Interface.ATUAL === "googleearth") + {i3GEO.Interface.googleearth.redesenha();} + if(i3GEO.Interface.ATUAL === "flamingo") + {i3GEO.Interface.flamingo.redesenha();} + }, + /* Function: atualizaTema Aplica o método atualizaTema da interface atual @@ -255,7 +277,7 @@ i3GEO.Interface = { if(i3GEO.Interface.ATUAL === "openlayers") {i3GEO.Interface.openlayers.alteraParametroLayers(parametro,valor);} if(i3GEO.Interface.ATUAL === "googlemaps") - {i3GEO.atualiza();} + {i3GEO.Interface.googlemaps.alteraParametroLayers(parametro,valor);} if(i3GEO.Interface.ATUAL === "googleearth") {i3GEO.atualiza();} if(i3GEO.Interface.ATUAL === "flamingo") @@ -736,8 +758,8 @@ i3GEO.Interface = { i3GEO.arvoreDeCamadas.cria("",i3GEO.arvoreDeCamadas.CAMADAS,i3GEO.configura.sid,i3GEO.configura.locaplic); }, criaLayers: function(){ - var url = i3GEO.configura.locaplic+"/classesphp/mapa_openlayers.php?map="+i3GEO.parametros.mapfile+"&tipoimagem="+i3GEO.configura.tipoimagem, - urlfundo = i3GEO.configura.locaplic+"/classesphp/mapa_openlayers.php?layer=&tipolayer=fundo&map="+i3GEO.parametros.mapfile.replace(".map","fundo.map")+"&tipoimagem="+i3GEO.configura.tipoimagem, + var url = i3GEO.configura.locaplic+"/classesphp/mapa_openlayers.php?map="+i3GEO.parametros.mapfile+"&TIPOIMAGEM="+i3GEO.configura.tipoimagem, + urlfundo = i3GEO.configura.locaplic+"/classesphp/mapa_openlayers.php?layer=&tipolayer=fundo&map="+i3GEO.parametros.mapfile.replace(".map","fundo.map")+"&TIPOIMAGEM="+i3GEO.configura.tipoimagem, nlayers = i3GEO.arvoreDeCamadas.CAMADAS.length, layer, camada, @@ -1047,7 +1069,7 @@ i3GEO.Interface = { */ TIPOMAPA: "terrain", /* - Variable + Variable: ZOOMSCALE Array com a lista de escalas em cada nivel de zoom utilizado pelo Google @@ -1056,7 +1078,25 @@ i3GEO.Interface = { */ ZOOMSCALE: [591657550,295828775,147914387,73957193,36978596,18489298,9244649,4622324,2311162,1155581,577790,288895,144447,72223,36111,18055,9027,4513,2256,1128], - + /* + Variable: PARAMETROSLAYER + + Parâmetros adicionais que são inseridos na URL que define cada layer + + Tipo: + {string} + */ + PARAMETROSLAYER: "&TIPOIMAGEM="+i3GEO.configura.tipoimagem, + /* + Variable: posfixo + + String acrescentada à url de cada tile para garantir a remoção do cache local + + Type: + {string} + */ + posfixo: "", + atualizaTema:function(retorno,tema){ // //não se atualiza um tema único, mas o mapa todo @@ -1067,13 +1107,23 @@ i3GEO.Interface = { // //remove todos os layers // + i3GEO.Interface.googlemaps.posfixo += "&"; var nlayers = i3GEO.arvoreDeCamadas.CAMADAS.length, i, - camada; + camada, + indice; for (i=0;i 120 || w < 10) - {box.style.display = "none";} - else{ - box.style.display = "block"; - box.style.top = parseInt(box.style.top,10)+4; - box.style.left = parseInt(box.style.left,10)+4; + if(w > 120) + {box.style.display = "none";return;} + box.style.display = "block"; + box.style.top = parseInt(box.style.top,10)+4; + box.style.left = parseInt(box.style.left,10)+4; + if(w < 10){ + box.style.width = "10px"; + box.style.height = "10px"; } }, /* Function: click - Ocorre quando o usuário clica sobre o mapa de referência, alterando a extensão geográfica do mapa principal + Ocorre quando o usuário clica sobre o mapa de referência, deslocando o mapa principal */ click: function(){ if(typeof(console) !== 'undefined'){console.info("i3GEO.maparef.click()");} diff --git a/classesphp/classe_mapa.php b/classesphp/classe_mapa.php index 13bf406..ebea1d5 100644 --- a/classesphp/classe_mapa.php +++ b/classesphp/classe_mapa.php @@ -114,7 +114,8 @@ tipo {string} - OUTPUTFORMAT que será aplicado. deve existir no mapfile básico q */ function mudaoutputformat($tipo) { - //error_reporting(E_ALL); + foreach($this->layers as $l) + {$l->setMetaData("cache","");} return $this->mapa->selectOutputFormat($tipo); } /* diff --git a/classesphp/mapa_googlemaps.php b/classesphp/mapa_googlemaps.php index c4f2d1d..ba0fb34 100644 --- a/classesphp/mapa_googlemaps.php +++ b/classesphp/mapa_googlemaps.php @@ -46,6 +46,8 @@ include_once("../ms_configura.php"); //converte a requisição do tile em coordenadas geo //http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#tile_numbers_to_lon.2Flat_2 // + + $x = $_GET["X"]; $y = $_GET["Y"]; $n = pow(2, $_GET["Z"]); @@ -129,8 +131,13 @@ if($_GET == false) {$cache = false;} if($_GET["DESLIGACACHE"] == "sim") {$cache = false;} + +if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") +{$cache = false;} + if($cache == true) {carregaCacheImagem($_GET["BBOX"],$nomecache,$_GET["map"],$_GET["WIDTH"],$_GET["HEIGHT"]);} + $map_size = explode(" ",$_GET["map_size"]); $mapa->setsize($map_size[0],$map_size[1]); $mapext = explode(" ",$_GET["mapext"]); @@ -138,6 +145,7 @@ $mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); $o = $mapa->outputformat; $o->set("imagemode",MS_IMAGEMODE_RGBA); + $legenda = $mapa->legend; $legenda->set("status",MS_OFF); $escala = $mapa->scalebar; @@ -148,7 +156,8 @@ $escala->set("status",MS_OFF); // if($_GET["tipolayer"] != "fundo") {$o->set("transparent",MS_TRUE);} - +if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") +{$o->setOption("QUANTIZE_FORCE","OFF");} if(!$qy) {$img = $mapa->draw();} else @@ -168,12 +177,11 @@ if (!function_exists('imagepng')) if (!function_exists('imagepng')) {$_GET["TIPOIMAGEM"] = "";} } - -if($_GET["TIPOIMAGEM"] != "" && $_GET["TIPOIMAGEM"] != "nenhum") +if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") { $nomer = ($img->imagepath)."filtroimgtemp".nomeRandomico(); $img->saveImage($nomer); - filtraImagem($nomer,$_GET["TIPOIMAGEM"]); + filtraImagem($nomer,trim($_GET["TIPOIMAGEM"])); $img = imagecreatefrompng($nomer); imagealphablending($img, false); imagesavealpha($img, true); @@ -264,4 +272,31 @@ function nomeRandomico($n=10) {$nomes .= $a{mt_rand(0, $max)};} return $nomes; } +function filtraImagem($nomer,$tipoimagem){ + include_once("classe_imagem.php"); + $tiposImagem = explode(" ",$tipoimagem); + foreach ($tiposImagem as $tipoimagem){ + $m = new Imagem($nomer); + if ($tipoimagem == "cinza") + {imagepng($m->cinzaNormal(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "sepiaclara") + {imagepng($m->sepiaClara(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "sepianormal") + {imagepng($m->sepiaNormal(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "negativo") + {imagepng($m->negativo(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "detectaBordas") + {imagepng($m->detectaBordas(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "embassa") + {imagepng($m->embassa(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "gaussian_blur") + {imagepng($m->gaussian_blur(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "selective_blur") + {imagepng($m->selective_blur(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "mean_removal") + {imagepng($m->mean_removal(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "pixelate") + {imagepng($m->pixelate(),str_replace("\\","/",$nomer));} + } +} ?> \ No newline at end of file diff --git a/classesphp/mapa_openlayers.php b/classesphp/mapa_openlayers.php index 139d6ec..85d3835 100644 --- a/classesphp/mapa_openlayers.php +++ b/classesphp/mapa_openlayers.php @@ -107,6 +107,9 @@ if($_GET == false) {$cache = false;} if($_GET["DESLIGACACHE"] == "sim") {$cache = false;} +if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") +{$cache = false;} + if($cache == true) {carregaCacheImagem($_GET["BBOX"],$nomecache,$_GET["map"],$_GET["WIDTH"],$_GET["HEIGHT"]);} @@ -149,7 +152,7 @@ if (!function_exists('imagepng')) {$_GET["TIPOIMAGEM"] = "";} } -if($_GET["TIPOIMAGEM"] != "" && $_GET["TIPOIMAGEM"] != "nenhum") +if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") { $nomer = ($img->imagepath)."filtroimgtemp".nomeRandomico(); $img->saveImage($nomer); @@ -243,4 +246,31 @@ function nomeRandomico($n=10) {$nomes .= $a{mt_rand(0, $max)};} return $nomes; } +function filtraImagem($nomer,$tipoimagem){ + include_once("classe_imagem.php"); + $tiposImagem = explode(" ",$tipoimagem); + foreach ($tiposImagem as $tipoimagem){ + $m = new Imagem($nomer); + if ($tipoimagem == "cinza") + {imagepng($m->cinzaNormal(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "sepiaclara") + {imagepng($m->sepiaClara(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "sepianormal") + {imagepng($m->sepiaNormal(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "negativo") + {imagepng($m->negativo(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "detectaBordas") + {imagepng($m->detectaBordas(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "embassa") + {imagepng($m->embassa(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "gaussian_blur") + {imagepng($m->gaussian_blur(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "selective_blur") + {imagepng($m->selective_blur(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "mean_removal") + {imagepng($m->mean_removal(),str_replace("\\","/",$nomer));} + if ($tipoimagem == "pixelate") + {imagepng($m->pixelate(),str_replace("\\","/",$nomer));} + } +} ?> \ No newline at end of file diff --git a/ferramentas/buscarapida/index.js b/ferramentas/buscarapida/index.js index 1e3a8d4..fe07a33 100644 --- a/ferramentas/buscarapida/index.js +++ b/ferramentas/buscarapida/index.js @@ -317,9 +317,9 @@ i3GEObuscaRapida = { var xMax = ext[2]; var yMin = ext[1]; var yMax = ext[3]; - - var xyMin = window.parent.i3GEO.calculo.dd2tela(xMin,yMin,window.parent.document.getElementById("img"),window.parent.i3GEO.parametros.mapexten,window.parent.i3GEO.parametros.pixelsize) - var xyMax = window.parent.i3GEO.calculo.dd2tela(xMax,yMax,window.parent.document.getElementById("img"),window.parent.i3GEO.parametros.mapexten,window.parent.i3GEO.parametros.pixelsize) + var docmapa = window.parent.document.getElementById(window.parent.i3GEO.Interface.IDCORPO) + var xyMin = window.parent.i3GEO.calculo.dd2tela(xMin,yMin,docmapa,window.parent.i3GEO.parametros.mapexten,window.parent.i3GEO.parametros.pixelsize) + var xyMax = window.parent.i3GEO.calculo.dd2tela(xMax,yMax,docmapa,window.parent.i3GEO.parametros.mapexten,window.parent.i3GEO.parametros.pixelsize) window.parent.i3GEO.util.criaBox("boxg"); var box = window.parent.$i("boxg"); diff --git a/ferramentas/opcoes_fundo/index.js.php b/ferramentas/opcoes_fundo/index.js.php index 522999a..b00f05d 100644 --- a/ferramentas/opcoes_fundo/index.js.php +++ b/ferramentas/opcoes_fundo/index.js.php @@ -75,6 +75,8 @@ i3GEOF.opcoesFundo = { cp.call(p,"corQM",retorno); } catch(erro){alert(erro);} + if(i3GEO.Interface.atual !== "googlemaps") + {alert("Essa operacao afeta apenas a ferramenta de impressao do mapa");} }, /* Function: html @@ -146,8 +148,6 @@ i3GEOF.opcoesFundo = { var layer = i3geoOL.getLayersByName("Fundo")[0]; layer.mergeNewParams({"DESLIGACACHE":"sim"}); layer.mergeNewParams({r:Math.random()}); - //layer.redraw(); - } i3GEO.atualiza(); }, diff --git a/ferramentas/opcoes_tamanho/index.js.php b/ferramentas/opcoes_tamanho/index.js.php index b3ecad3..b2aac80 100644 --- a/ferramentas/opcoes_tamanho/index.js.php +++ b/ferramentas/opcoes_tamanho/index.js.php @@ -172,8 +172,8 @@ i3GEOF.opcoesTamanho = { {calc += parseInt($i("ferramentas").style.width,10);} if ($i("contemFerramentas")) {calc += parseInt($i("contemFerramentas").style.width,10);} - if($i("mst")) - {$i("mst").style.width = (l * 1) + calc + "px";} + //if($i("mst")) + //{$i("mst").style.width = (l * 1) + calc + "px";} if($i("contemImg")){ $i("contemImg").style.height= a+"px"; $i("contemImg").style.width= l+"px"; diff --git a/ferramentas/outputformat/index.js.php b/ferramentas/outputformat/index.js.php index 0bed05a..d20710d 100644 --- a/ferramentas/outputformat/index.js.php +++ b/ferramentas/outputformat/index.js.php @@ -146,10 +146,7 @@ i3GEOF.outputformat = { temp = function(retorno){ i3GEOF.outputformat.aguarde.visibility = "hidden"; if(retorno.data != "erro"){ - if(i3GEO.Interface.ATUAL === "openlayers") - {i3GEO.Interface.openlayers.atualizaMapa();} - else - {i3GEO.atualiza();} + i3GEO.Interface.atualizaMapa(); } else {alert("Nao foi possivel alterar o tipo");} diff --git a/imagens/visual/default/sprite.png b/imagens/visual/default/sprite.png index 0dc35a8..6ba2977 100644 Binary files a/imagens/visual/default/sprite.png and b/imagens/visual/default/sprite.png differ -- libgit2 0.21.2