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,6 +30,22 @@ Free Software Foundation, Inc., no endereço | ||
30 | if(typeof(i3GEO) == 'undefined'){ | 30 | if(typeof(i3GEO) == 'undefined'){ |
31 | i3GEO = new Array(); | 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 | i3GEO.util = { | 49 | i3GEO.util = { |
34 | /* | 50 | /* |
35 | Function: insereCookie | 51 | Function: insereCookie |
classesjs/ferramentas.js
@@ -1508,9 +1508,9 @@ function google() | @@ -1508,9 +1508,9 @@ function google() | ||
1508 | { | 1508 | { |
1509 | criaboxg(); | 1509 | criaboxg(); |
1510 | g_operacao = "navega"; | 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 | else | 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 | Function: scielo | 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 | var mostradicasf = function(){}; | 1 | var mostradicasf = function(){}; |
33 | var scriptLocation = ""; | 2 | var scriptLocation = ""; |
34 | var scripts = document.getElementsByTagName('script'); | 3 | var scripts = document.getElementsByTagName('script'); |
@@ -0,0 +1,101 @@ | @@ -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,13 +41,25 @@ | ||
41 | GEvent.addListener(map, "moveend", function() { | 41 | GEvent.addListener(map, "moveend", function() { |
42 | ondegoogle(map); | 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 | GEvent.addListener(map, "zoomend", function() { | 49 | GEvent.addListener(map, "zoomend", function() { |
48 | ondegoogle(); | 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 | function moveMapa(bd) | 63 | function moveMapa(bd) |
52 | { | 64 | { |
53 | nex = bd.minX+" "+bd.minY+" "+bd.maxX+" "+bd.maxY | 65 | nex = bd.minX+" "+bd.minY+" "+bd.maxX+" "+bd.maxY |
@@ -91,6 +103,18 @@ | @@ -91,6 +103,18 @@ | ||
91 | //map.setZoom(level) | 103 | //map.setZoom(level) |
92 | map.panTo(new GLatLng(pt2,pt1)) | 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 | ondegoogle(map); | 118 | ondegoogle(map); |
95 | </script> | 119 | </script> |
96 | </body> | 120 | </body> |
@@ -0,0 +1,186 @@ | @@ -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 | \ No newline at end of file | 187 | \ No newline at end of file |
ms_configura.php
@@ -50,6 +50,17 @@ $mensagemInicia = 'Versão 4.1 beta'; | @@ -50,6 +50,17 @@ $mensagemInicia = 'Versão 4.1 beta'; | ||
50 | Nome que será utilizado em alguns cabçalhos e títulos de páginas | 50 | Nome que será utilizado em alguns cabçalhos e títulos de páginas |
51 | */ | 51 | */ |
52 | $tituloInstituicao = "MMA - Ministerio do Meio Ambiente"; | 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 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) | 64 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) |
54 | { | 65 | { |
55 | /* | 66 | /* |