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 | /* | ... | ... |