From badcba4f3b3f56bd22e096c7431e3732547b6974 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sun, 30 Nov 2008 16:17:19 +0000 Subject: [PATCH] Reformulação da ferramenta googlemaps permitindo que o mapa do i3geo seja sobreposto ao googlemaps --- classesjs/classe_util.js | 16 ++++++++++++++++ classesjs/ferramentas.js | 4 ++-- classesjs/i3geonaocompacto.js | 31 ------------------------------- classesphp/parse_cgi.php | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ferramentas/googlemaps/index.htm | 32 ++++++++++++++++++++++++++++---- ferramentas/googlemaps/index.php | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ms_configura.php | 11 +++++++++++ 7 files changed, 344 insertions(+), 37 deletions(-) create mode 100644 classesphp/parse_cgi.php create mode 100644 ferramentas/googlemaps/index.php diff --git a/classesjs/classe_util.js b/classesjs/classe_util.js index f51736b..53b5c30 100644 --- a/classesjs/classe_util.js +++ b/classesjs/classe_util.js @@ -30,6 +30,22 @@ Free Software Foundation, Inc., no endereço if(typeof(i3GEO) == 'undefined'){ i3GEO = new Array(); } +/* +Function: $i + +Obtém um elemento DOM a partir de seu id + +Parameters: + +id - {String} ID do elemento. + +Returns: + +{Object} Objeto. +*/ +$i = function(id) +{return document.getElementById(id);}; + i3GEO.util = { /* Function: insereCookie diff --git a/classesjs/ferramentas.js b/classesjs/ferramentas.js index 1a77308..0bfdc13 100644 --- a/classesjs/ferramentas.js +++ b/classesjs/ferramentas.js @@ -1508,9 +1508,9 @@ function google() { criaboxg(); g_operacao = "navega"; - if(navn){wdocaf("350px","350px",g_locaplic+"/ferramentas/googlemaps/index.htm","","","Google maps");} + if(navn){wdocaf((objmapa.w/2)+20+"px",(objmapa.h/2)+20+"px",g_locaplic+"/ferramentas/googlemaps/index.php","","","Google maps");} else - {wdocaf("370px","370px",g_locaplic+"/ferramentas/googlemaps/index.htm","","","Google maps");} + {wdocaf("500px","380px",g_locaplic+"/ferramentas/googlemaps/index.php","","","Google maps");} } /* Function: scielo diff --git a/classesjs/i3geonaocompacto.js b/classesjs/i3geonaocompacto.js index 48261f4..318f6a0 100644 --- a/classesjs/i3geonaocompacto.js +++ b/classesjs/i3geonaocompacto.js @@ -1,34 +1,3 @@ -/* -Function: $i - -Pega um objeto do documento. - -Exemplo: $i("box1") - -Parâmetros: - -id - id do objeto - -Retorno: - -object - objeto javaScript -*/ -var $i = function(id) -{return document.getElementById(id);}; -/* -Function: $trad - -Pega o termo traduzido para uma lingua específica - -Parameters: - -id - id que identifica o texto na variável g_linguagem, definida em configura.js -*/ -var $trad = function(id) -{ - return eval("g_traducao."+id+"[0]."+g_linguagem+";"); -}; - var mostradicasf = function(){}; var scriptLocation = ""; var scripts = document.getElementsByTagName('script'); diff --git a/classesphp/parse_cgi.php b/classesphp/parse_cgi.php new file mode 100644 index 0000000..bf4e0a0 --- /dev/null +++ b/classesphp/parse_cgi.php @@ -0,0 +1,101 @@ +"; +$map_filen = str_replace(basename($map_file),$nomerando.".map",$map_file); +//echo $map_filen."
"; +copy($map_file,$map_filen); +substituiCon($map_filen,$postgis_mapa); +$map = ms_newMapObj($map_filen); +$layersNames = $map->getalllayernames(); +foreach ($layersNames as $layerName) +{ + $layer = $map->getLayerByname($layerName); + if ($layer->getmetadata("classesnome") != "") + {autoClasses(&$layer,$map);} +} +if(isset($map_size)) +{ + $map_size = explode(",",$map_size); + $map->setsize($map_size[0],$map_size[1]); +} +if(isset($mapext)) +{ + $mapext = explode(" ",$mapext); + $map->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); +} +$map_imagecolor = explode(" ",$map_imagecolor); +$imgcolor = $map->imagecolor; +$imgcolor->setrgb($map_imagecolor[0],$map_imagecolor[1],$map_imagecolor[2]); +$o = $map->outputformat; +if(strtolower($map_transparent) == "on") +$o->set("transparent",MS_ON); +else +$o->set("transparent",MS_OFF); +$img = $map->draw(); + +echo header("Content-type: " . $map->outputformat->mimetype . "\n\n"); +$img->saveImage(""); +?> diff --git a/ferramentas/googlemaps/index.htm b/ferramentas/googlemaps/index.htm index 92a42a0..ed15173 100644 --- a/ferramentas/googlemaps/index.htm +++ b/ferramentas/googlemaps/index.htm @@ -41,13 +41,25 @@ GEvent.addListener(map, "moveend", function() { ondegoogle(map); }); - //var kml = new GGeoXml("http://mapas.mma.gov.br/i3geo/pacotes/kmlmapserver/kmlservice.php?map=bioma&typename=bioma&request=kml"); - //map.addOverlay(kml) - //kml.initialize(map) + //var boundaries = new GLatLngBounds(new GLatLng(40.716216,-74.213393), new GLatLng(40.765641,-74.139235)); + + //wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); + //map.addOverlay(wmsmap); + GEvent.addListener(map, "zoomend", function() { ondegoogle(); - }); + //map.removeOverlay(wmsmap); + //wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); + //map.addOverlay(wmsmap); + }); + /* + GEvent.addListener(map, "dragend", function() { + map.removeOverlay(wmsmap); + wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); + map.addOverlay(wmsmap); + }); + */ function moveMapa(bd) { nex = bd.minX+" "+bd.minY+" "+bd.maxX+" "+bd.maxY @@ -91,6 +103,18 @@ //map.setZoom(level) map.panTo(new GLatLng(pt2,pt1)) } + function bbox() + { + var bd = map.getBounds(); + var so = bd.getSouthWest(); + var ne = bd.getNorthEast(); + var bbox = so.lng()+","+so.lat()+","+ne.lng()+","+ne.lat() + return (bbox) + } + function criaWMS() + { + return("http://mapas.mma.gov.br/i3geo/ogc.php?tema=bioma&width="+parseInt(document.getElementById("map").style.width)+"&height="+parseInt(document.getElementById("map").style.height)+"&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&STYLES=&BGCOLOR=0xFFFFFF&FORMAT=image/png&TRANSPARENT=TRUE&layers=bioma&bbox="+bbox()) + } ondegoogle(map); diff --git a/ferramentas/googlemaps/index.php b/ferramentas/googlemaps/index.php new file mode 100644 index 0000000..641d756 --- /dev/null +++ b/ferramentas/googlemaps/index.php @@ -0,0 +1,186 @@ + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/ms_configura.php b/ms_configura.php index 95d2020..e6ca6ff 100644 --- a/ms_configura.php +++ b/ms_configura.php @@ -50,6 +50,17 @@ $mensagemInicia = 'Versão 4.1 beta'; Nome que será utilizado em alguns cabçalhos e títulos de páginas */ $tituloInstituicao = "MMA - Ministerio do Meio Ambiente"; +/* + Variable: $googleApiKey + + Chave utilizada pela API do Google maps. + + A API do Google maps é utilizada em algumas funcionalidades do i3geo. Vc deve registrar uma chave + no site do Google para o seu endereço de servidor web. veja como fazer em: + http://code.google.com/apis/maps/signup.html +*/ +$googleApiKey = "ABQIAAAAg9kA9xQlYqK9iBDKaeTpgxSieGwtcPDeiUtRiq7Xa63cyLppcxTVYXnVlPwveOe-sXuXfpBeNpL6pA"; + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { /* -- libgit2 0.21.2