Commit badcba4f3b3f56bd22e096c7431e3732547b6974
1 parent
0c721e5a
Exists in
master
and in
7 other branches
Reformulação da ferramenta googlemaps permitindo que o mapa do i3geo seja sobreposto ao googlemaps
Showing
7 changed files
with
344 additions
and
37 deletions
Show diff stats
classesjs/classe_util.js
| ... | ... | @@ -30,6 +30,22 @@ Free Software Foundation, Inc., no endereço |
| 30 | 30 | if(typeof(i3GEO) == 'undefined'){ |
| 31 | 31 | i3GEO = new Array(); |
| 32 | 32 | } |
| 33 | +/* | |
| 34 | +Function: $i | |
| 35 | + | |
| 36 | +Obtém um elemento DOM a partir de seu id | |
| 37 | + | |
| 38 | +Parameters: | |
| 39 | + | |
| 40 | +id - {String} ID do elemento. | |
| 41 | + | |
| 42 | +Returns: | |
| 43 | + | |
| 44 | +{Object} Objeto. | |
| 45 | +*/ | |
| 46 | +$i = function(id) | |
| 47 | +{return document.getElementById(id);}; | |
| 48 | + | |
| 33 | 49 | i3GEO.util = { |
| 34 | 50 | /* |
| 35 | 51 | Function: insereCookie | ... | ... |
classesjs/ferramentas.js
| ... | ... | @@ -1508,9 +1508,9 @@ function google() |
| 1508 | 1508 | { |
| 1509 | 1509 | criaboxg(); |
| 1510 | 1510 | g_operacao = "navega"; |
| 1511 | - if(navn){wdocaf("350px","350px",g_locaplic+"/ferramentas/googlemaps/index.htm","","","Google maps");} | |
| 1511 | + if(navn){wdocaf((objmapa.w/2)+20+"px",(objmapa.h/2)+20+"px",g_locaplic+"/ferramentas/googlemaps/index.php","","","Google maps");} | |
| 1512 | 1512 | else |
| 1513 | - {wdocaf("370px","370px",g_locaplic+"/ferramentas/googlemaps/index.htm","","","Google maps");} | |
| 1513 | + {wdocaf("500px","380px",g_locaplic+"/ferramentas/googlemaps/index.php","","","Google maps");} | |
| 1514 | 1514 | } |
| 1515 | 1515 | /* |
| 1516 | 1516 | Function: scielo | ... | ... |
classesjs/i3geonaocompacto.js
| 1 | -/* | |
| 2 | -Function: $i | |
| 3 | - | |
| 4 | -Pega um objeto do documento. | |
| 5 | - | |
| 6 | -Exemplo: $i("box1") | |
| 7 | - | |
| 8 | -Parâmetros: | |
| 9 | - | |
| 10 | -id - id do objeto | |
| 11 | - | |
| 12 | -Retorno: | |
| 13 | - | |
| 14 | -object - objeto javaScript | |
| 15 | -*/ | |
| 16 | -var $i = function(id) | |
| 17 | -{return document.getElementById(id);}; | |
| 18 | -/* | |
| 19 | -Function: $trad | |
| 20 | - | |
| 21 | -Pega o termo traduzido para uma lingua específica | |
| 22 | - | |
| 23 | -Parameters: | |
| 24 | - | |
| 25 | -id - id que identifica o texto na variável g_linguagem, definida em configura.js | |
| 26 | -*/ | |
| 27 | -var $trad = function(id) | |
| 28 | -{ | |
| 29 | - return eval("g_traducao."+id+"[0]."+g_linguagem+";"); | |
| 30 | -}; | |
| 31 | - | |
| 32 | 1 | var mostradicasf = function(){}; |
| 33 | 2 | var scriptLocation = ""; |
| 34 | 3 | var scripts = document.getElementsByTagName('script'); | ... | ... |
| ... | ... | @@ -0,0 +1,101 @@ |
| 1 | +<?php | |
| 2 | +/* | |
| 3 | +Title: parse_cgi.php | |
| 4 | + | |
| 5 | +Este programa alguns dos parâmetros do mapserver CGI e retorna uma imagem do mapa. | |
| 6 | + | |
| 7 | +É utilizado para processar o mapfile segundo as necessidades do i3geo, como por exemplo, fazendo a substituição | |
| 8 | +das variáveis de conexão com banco. | |
| 9 | + | |
| 10 | +Deve ser utilizado na tag IMG de umarquivo HTML. | |
| 11 | + | |
| 12 | +Parameters: | |
| 13 | + | |
| 14 | +$g_sid - código da seção aberta | |
| 15 | + | |
| 16 | +$map_size - string com o tamanho do novo mapa (w h) | |
| 17 | + | |
| 18 | +$mapext - extensão geográfica do novo mapa (xmin ymin xmax ymax) | |
| 19 | + | |
| 20 | +$map_imagecolor - cor do fundo do mapa (default é -1 -1 -1) | |
| 21 | + | |
| 22 | +$map_transparent - a cor do fundo será transparente? (ON OFF, default é ON) | |
| 23 | + | |
| 24 | +About: Licença | |
| 25 | + | |
| 26 | +I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
| 27 | + | |
| 28 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
| 29 | +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br | |
| 30 | + | |
| 31 | +Este programa é software livre; você pode redistribuí-lo | |
| 32 | +e/ou modificá-lo sob os termos da Licença Pública Geral | |
| 33 | +GNU conforme publicada pela Free Software Foundation; | |
| 34 | +tanto a versão 2 da Licença. | |
| 35 | +Este programa é distribuído na expectativa de que seja útil, | |
| 36 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
| 37 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
| 38 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | |
| 39 | +Você deve ter recebido uma cópia da Licença Pública Geral do | |
| 40 | +GNU junto com este programa; se não, escreva para a | |
| 41 | +Free Software Foundation, Inc., no endereço | |
| 42 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 43 | +*/ | |
| 44 | +error_reporting(E_ALL); | |
| 45 | +include_once("pega_variaveis.php"); | |
| 46 | + | |
| 47 | +include_once ("carrega_ext.php"); | |
| 48 | +include_once("funcoes_gerais.php"); | |
| 49 | +session_name("i3GeoPHP"); | |
| 50 | +session_id($g_sid); | |
| 51 | +session_start(); | |
| 52 | +$map_file = $_SESSION["map_file"]; | |
| 53 | +include_once("../ms_configura.php"); | |
| 54 | +if(isset($fingerprint)) | |
| 55 | +{ | |
| 56 | + if (md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id()) != $fingerprint) | |
| 57 | + {exit;} | |
| 58 | +} | |
| 59 | +if (!isset($map_imagecolor)) $map_imagecolor = "-1 -1 -1"; | |
| 60 | + | |
| 61 | +if (!isset($map_transparent)) $map_transparent = "ON"; | |
| 62 | +// | |
| 63 | +//faz uma cópia do mapfile para poder manipular sem afetar omapfile atual usado pelo i3geo | |
| 64 | +// | |
| 65 | +$nomerando = nomerandomico(); | |
| 66 | +//echo $map_file."<br>"; | |
| 67 | +$map_filen = str_replace(basename($map_file),$nomerando.".map",$map_file); | |
| 68 | +//echo $map_filen."<br>"; | |
| 69 | +copy($map_file,$map_filen); | |
| 70 | +substituiCon($map_filen,$postgis_mapa); | |
| 71 | +$map = ms_newMapObj($map_filen); | |
| 72 | +$layersNames = $map->getalllayernames(); | |
| 73 | +foreach ($layersNames as $layerName) | |
| 74 | +{ | |
| 75 | + $layer = $map->getLayerByname($layerName); | |
| 76 | + if ($layer->getmetadata("classesnome") != "") | |
| 77 | + {autoClasses(&$layer,$map);} | |
| 78 | +} | |
| 79 | +if(isset($map_size)) | |
| 80 | +{ | |
| 81 | + $map_size = explode(",",$map_size); | |
| 82 | + $map->setsize($map_size[0],$map_size[1]); | |
| 83 | +} | |
| 84 | +if(isset($mapext)) | |
| 85 | +{ | |
| 86 | + $mapext = explode(" ",$mapext); | |
| 87 | + $map->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); | |
| 88 | +} | |
| 89 | +$map_imagecolor = explode(" ",$map_imagecolor); | |
| 90 | +$imgcolor = $map->imagecolor; | |
| 91 | +$imgcolor->setrgb($map_imagecolor[0],$map_imagecolor[1],$map_imagecolor[2]); | |
| 92 | +$o = $map->outputformat; | |
| 93 | +if(strtolower($map_transparent) == "on") | |
| 94 | +$o->set("transparent",MS_ON); | |
| 95 | +else | |
| 96 | +$o->set("transparent",MS_OFF); | |
| 97 | +$img = $map->draw(); | |
| 98 | + | |
| 99 | +echo header("Content-type: " . $map->outputformat->mimetype . "\n\n"); | |
| 100 | +$img->saveImage(""); | |
| 101 | +?> | ... | ... |
ferramentas/googlemaps/index.htm
| ... | ... | @@ -41,13 +41,25 @@ |
| 41 | 41 | GEvent.addListener(map, "moveend", function() { |
| 42 | 42 | ondegoogle(map); |
| 43 | 43 | }); |
| 44 | - //var kml = new GGeoXml("http://mapas.mma.gov.br/i3geo/pacotes/kmlmapserver/kmlservice.php?map=bioma&typename=bioma&request=kml"); | |
| 45 | - //map.addOverlay(kml) | |
| 46 | - //kml.initialize(map) | |
| 44 | + //var boundaries = new GLatLngBounds(new GLatLng(40.716216,-74.213393), new GLatLng(40.765641,-74.139235)); | |
| 45 | + | |
| 46 | + //wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); | |
| 47 | + //map.addOverlay(wmsmap); | |
| 48 | + | |
| 47 | 49 | GEvent.addListener(map, "zoomend", function() { |
| 48 | 50 | ondegoogle(); |
| 49 | - }); | |
| 51 | + //map.removeOverlay(wmsmap); | |
| 52 | + //wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); | |
| 53 | + //map.addOverlay(wmsmap); | |
| 50 | 54 | |
| 55 | + }); | |
| 56 | + /* | |
| 57 | + GEvent.addListener(map, "dragend", function() { | |
| 58 | + map.removeOverlay(wmsmap); | |
| 59 | + wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); | |
| 60 | + map.addOverlay(wmsmap); | |
| 61 | + }); | |
| 62 | + */ | |
| 51 | 63 | function moveMapa(bd) |
| 52 | 64 | { |
| 53 | 65 | nex = bd.minX+" "+bd.minY+" "+bd.maxX+" "+bd.maxY |
| ... | ... | @@ -91,6 +103,18 @@ |
| 91 | 103 | //map.setZoom(level) |
| 92 | 104 | map.panTo(new GLatLng(pt2,pt1)) |
| 93 | 105 | } |
| 106 | + function bbox() | |
| 107 | + { | |
| 108 | + var bd = map.getBounds(); | |
| 109 | + var so = bd.getSouthWest(); | |
| 110 | + var ne = bd.getNorthEast(); | |
| 111 | + var bbox = so.lng()+","+so.lat()+","+ne.lng()+","+ne.lat() | |
| 112 | + return (bbox) | |
| 113 | + } | |
| 114 | + function criaWMS() | |
| 115 | + { | |
| 116 | + 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()) | |
| 117 | + } | |
| 94 | 118 | ondegoogle(map); |
| 95 | 119 | </script> |
| 96 | 120 | </body> | ... | ... |
| ... | ... | @@ -0,0 +1,186 @@ |
| 1 | +<?php | |
| 2 | +include_once("../../ms_configura.php"); | |
| 3 | +?> | |
| 4 | +<html> | |
| 5 | +<head> | |
| 6 | +<script src="../../pacotes/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script> | |
| 7 | +<script language="JavaScript" type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=<?php echo $googleApiKey; ?>"> | |
| 8 | +</script> | |
| 9 | +<title></title> | |
| 10 | + </head> | |
| 11 | + <body onunload="GUnload()"> | |
| 12 | + <div id="map" style="width: 440px; height: 340px"></div> | |
| 13 | + | |
| 14 | + <script type="text/javascript" > | |
| 15 | + var m = document.getElementById("map") | |
| 16 | + m.style.width = window.parent.objmapa.w / 2 | |
| 17 | + m.style.height = window.parent.objmapa.h / 2 | |
| 18 | + //chave na producao= ABQIAAAAg9kA9xQlYqK9iBDKaeTpgxSieGwtcPDeiUtRiq7Xa63cyLppcxTVYXnVlPwveOe-sXuXfpBeNpL6pA | |
| 19 | + //chave no desenvolvimento = ABQIAAAAg9kA9xQlYqK9iBDKaeTpgxQ_qvn5wqSkbcx9uoqrWGnUcZ7lqhRVzkJwzeDN3nQJheG7FjoxyruBIQ | |
| 20 | + i3geoOverlay = false; | |
| 21 | + if(window.parent.document.getElementById("boxg")) | |
| 22 | + window.parent.document.getElementById("boxg").style.zIndex = 0 | |
| 23 | + navm = false; // IE | |
| 24 | + navn = false; // netscape | |
| 25 | + var app = navigator.appName.substring(0,1); | |
| 26 | + if (app=='N') navn=true; else navm=true; | |
| 27 | + | |
| 28 | + if(window.parent.objmapa) | |
| 29 | + { | |
| 30 | + docmapa = window.parent.document | |
| 31 | + pol = window.parent.objmapa.extent | |
| 32 | + ret = pol.split(" ") | |
| 33 | + pt1 = (( (ret[0] * -1) - (ret[2] * -1) ) / 2) + ret[0] *1 | |
| 34 | + pt2 = (((ret[1] - ret[3]) / 2)* -1) + ret[1] *1 | |
| 35 | + pt = pt1+","+pt2 | |
| 36 | + } | |
| 37 | + else | |
| 38 | + { | |
| 39 | + pt1 = "-54"; | |
| 40 | + pt2 = "-12"; | |
| 41 | + } | |
| 42 | + map = new GMap2(document.getElementById("map")); | |
| 43 | + map.setMapType(G_SATELLITE_MAP); | |
| 44 | + map.addMapType(G_SATELLITE_3D_MAP); | |
| 45 | + map.addControl(new GLargeMapControl()); | |
| 46 | + map.addControl(new GMapTypeControl()); | |
| 47 | + map.addControl(new GScaleControl()); | |
| 48 | + map.setCenter(new GLatLng(pt2,pt1), 8); | |
| 49 | + GEvent.addListener(map, "moveend", function() { | |
| 50 | + ondegoogle(map); | |
| 51 | + }); | |
| 52 | + if(i3geoOverlay) | |
| 53 | + { | |
| 54 | + //var boundaries = new GLatLngBounds(new GLatLng(40.716216,-74.213393), new GLatLng(40.765641,-74.139235)); | |
| 55 | + wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); | |
| 56 | + map.addOverlay(wmsmap); | |
| 57 | + } | |
| 58 | + GEvent.addListener(map, "zoomend", function() { | |
| 59 | + ondegoogle(); | |
| 60 | + if(i3geoOverlay) | |
| 61 | + { | |
| 62 | + map.removeOverlay(wmsmap); | |
| 63 | + wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); | |
| 64 | + map.addOverlay(wmsmap); | |
| 65 | + } | |
| 66 | + }); | |
| 67 | + GEvent.addListener(map, "dragend", function() { | |
| 68 | + if(i3geoOverlay) | |
| 69 | + { | |
| 70 | + map.removeOverlay(wmsmap); | |
| 71 | + wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); | |
| 72 | + map.addOverlay(wmsmap); | |
| 73 | + } | |
| 74 | + }); | |
| 75 | + function botaoI3geo() { | |
| 76 | + } | |
| 77 | + botaoI3geo.prototype = new GControl(); | |
| 78 | + botaoI3geo.prototype.initialize = function(map) { | |
| 79 | + var container = document.createElement("div"); | |
| 80 | + var i3geo = document.createElement("div"); | |
| 81 | + this.setButtonStyle_(i3geo); | |
| 82 | + container.appendChild(i3geo); | |
| 83 | + i3geo.appendChild(document.createTextNode("i3Geo")); | |
| 84 | + GEvent.addDomListener(i3geo, "click", function() { | |
| 85 | + ativaI3geo(); | |
| 86 | + }); | |
| 87 | + map.getContainer().appendChild(container); | |
| 88 | + return container; | |
| 89 | + } | |
| 90 | + botaoI3geo.prototype.getDefaultPosition = function() { | |
| 91 | + return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(70, 6)); | |
| 92 | + } | |
| 93 | + botaoI3geo.prototype.setButtonStyle_ = function(button) { | |
| 94 | + button.style.textDecoration = "none"; | |
| 95 | + button.style.color = "black"; | |
| 96 | + button.style.backgroundColor = "white"; | |
| 97 | + button.style.font = "small Arial"; | |
| 98 | + button.style.border = "1px solid black"; | |
| 99 | + button.style.padding = "1px"; | |
| 100 | + button.style.marginBottom = "3px"; | |
| 101 | + button.style.textAlign = "center"; | |
| 102 | + button.style.width = "3em"; | |
| 103 | + button.style.cursor = "pointer"; | |
| 104 | + } | |
| 105 | + if(window.parent.objmapa.mapfile) | |
| 106 | + map.addControl(new botaoI3geo()); | |
| 107 | + | |
| 108 | + function moveMapa(bd) | |
| 109 | + { | |
| 110 | + nex = bd.minX+" "+bd.minY+" "+bd.maxX+" "+bd.maxY | |
| 111 | + var p = window.parent.g_locaplic+"/classesphp/mapa_controle.php?funcao=mudaext&ext="+nex | |
| 112 | + var cp = new cpaint(); | |
| 113 | + //cp.set_debug(2) | |
| 114 | + cp.set_response_type("JSON"); | |
| 115 | + cp.call(p,"mudaExtensao",window.parent.ajaxredesenha); | |
| 116 | + //ondegoogle(bd); | |
| 117 | + } | |
| 118 | + function ondegoogle() | |
| 119 | + { | |
| 120 | + if(window.parent.objmapa) | |
| 121 | + { | |
| 122 | + var bd = map.getBounds(); | |
| 123 | + var so = bd.getSouthWest(); | |
| 124 | + var ne = bd.getNorthEast(); | |
| 125 | + var xyMin = window.parent.convddtela(so.lng(),so.lat(),window.parent.document); | |
| 126 | + var xyMax = window.parent.convddtela(ne.lng(),ne.lat(),window.parent.document); | |
| 127 | + var box = window.parent.$i("boxg") | |
| 128 | + var w = xyMax[0]-xyMin[0] | |
| 129 | + var h = xyMin[1]-xyMax[1] | |
| 130 | + box.style.display = "block" | |
| 131 | + box.style.width = w | |
| 132 | + box.style.height = h | |
| 133 | + box.style.top = xyMax[1]+"px" | |
| 134 | + box.style.left = xyMin[0]+"px" | |
| 135 | + box.style.display="block" | |
| 136 | + } | |
| 137 | + } | |
| 138 | + | |
| 139 | + function panTogoogle() | |
| 140 | + { | |
| 141 | + var b = window.parent.document.getElementById("boxg"); | |
| 142 | + b.style.display="block"; | |
| 143 | + pol = window.parent.objmapa.extent; | |
| 144 | + ret = pol.split(" "); | |
| 145 | + pt1 = (( (ret[0] * -1) - (ret[2] * -1) ) / 2) + ret[0] *1; | |
| 146 | + pt2 = (((ret[1] - ret[3]) / 2)* -1) + ret[1] *1; | |
| 147 | + //map.centerAndZoom(new GLatLng(pt2,pt1),map.getZoom()); | |
| 148 | + //map.setZoom(level) | |
| 149 | + map.panTo(new GLatLng(pt2,pt1)) | |
| 150 | + } | |
| 151 | + function bbox() | |
| 152 | + { | |
| 153 | + var bd = map.getBounds(); | |
| 154 | + var so = bd.getSouthWest(); | |
| 155 | + var ne = bd.getNorthEast(); | |
| 156 | + var bbox = so.lng()+" "+so.lat()+" "+ne.lng()+" "+ne.lat() | |
| 157 | + return (bbox) | |
| 158 | + } | |
| 159 | + function criaWMS() | |
| 160 | + { | |
| 161 | + var cgi = window.parent.g_locaplic+"/classesphp/parse_cgi.php?g_sid="+window.parent.g_sid | |
| 162 | + var parametros = "&map_size="+parseInt(document.getElementById("map").style.width) | |
| 163 | + parametros += ","+parseInt(document.getElementById("map").style.height) | |
| 164 | + parametros += "&mapext="+bbox() | |
| 165 | + parametros += "&map_imagecolor=-1 -1 -1&map_transparent=on" | |
| 166 | + //alert(cgi+parametros) | |
| 167 | + return(cgi+parametros) | |
| 168 | + } | |
| 169 | + function ativaI3geo() | |
| 170 | + { | |
| 171 | + if(i3geoOverlay) | |
| 172 | + { | |
| 173 | + i3geoOverlay = false; | |
| 174 | + map.removeOverlay(wmsmap); | |
| 175 | + } | |
| 176 | + else | |
| 177 | + { | |
| 178 | + i3geoOverlay = true; | |
| 179 | + wmsmap = new GGroundOverlay(criaWMS(), map.getBounds()); | |
| 180 | + map.addOverlay(wmsmap); | |
| 181 | + } | |
| 182 | + } | |
| 183 | + ondegoogle(map); | |
| 184 | + </script> | |
| 185 | + </body> | |
| 186 | +</html> | |
| 0 | 187 | \ No newline at end of file | ... | ... |
ms_configura.php
| ... | ... | @@ -50,6 +50,17 @@ $mensagemInicia = 'Versão 4.1 beta'; |
| 50 | 50 | Nome que será utilizado em alguns cabçalhos e títulos de páginas |
| 51 | 51 | */ |
| 52 | 52 | $tituloInstituicao = "MMA - Ministerio do Meio Ambiente"; |
| 53 | +/* | |
| 54 | + Variable: $googleApiKey | |
| 55 | + | |
| 56 | + Chave utilizada pela API do Google maps. | |
| 57 | + | |
| 58 | + A API do Google maps é utilizada em algumas funcionalidades do i3geo. Vc deve registrar uma chave | |
| 59 | + no site do Google para o seu endereço de servidor web. veja como fazer em: | |
| 60 | + http://code.google.com/apis/maps/signup.html | |
| 61 | +*/ | |
| 62 | +$googleApiKey = "ABQIAAAAg9kA9xQlYqK9iBDKaeTpgxSieGwtcPDeiUtRiq7Xa63cyLppcxTVYXnVlPwveOe-sXuXfpBeNpL6pA"; | |
| 63 | + | |
| 53 | 64 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) |
| 54 | 65 | { |
| 55 | 66 | /* | ... | ... |