openlayers.htm 13.4 KB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Category" content="I3Geo Mapa interativo MMA">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<title>MMA - Mapa interativo</title>
<!-- Leitura dos programas javaScript e estilos. Pode-se ler os arquivos não compactados, bastando excluir a palavra _compacto -->
<script type="text/javascript" src="../classesjs/i3geonaocompacto.js"></script>
<script type="text/javascript" src="../pacotes/openlayers/OpenLayers.js"></script>
<!---
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAKguAlmd-hSDulF2T_tfWMxTrXJzf4cKu_IakhcfRAvg-azCV5RSQYDsrDc6OHQsGVC3r2w_iKOWmoQ" type="text/javascript"></script>
-->
<!--
    chave na producao= ABQIAAAAg9kA9xQlYqK9iBDKaeTpgxSieGwtcPDeiUtRiq7Xa63cyLppcxTVYXnVlPwveOe-sXuXfpBeNpL6pA
    chave no desenvolvimento = ABQIAAAAg9kA9xQlYqK9iBDKaeTpgxQ_qvn5wqSkbcx9uoqrWGnUcZ7lqhRVzkJwzeDN3nQJheG7FjoxyruBIQ
-->

<!-- formatação alternativa das janelas internas, para usar é só descomentar
<link rel="stylesheet" type="text/css" href="../css/panel-aqua.css" />
-->
</head>
<body id=i3geo onmouseover="javascript:this.onmousemove=processevent1" >
<center>
<table id='mst' width=100% cellspacing='0'>
<!-- Inclui o menu suspenso. Se vc não quiser o menu, é só comentar -->
<tr><td colspan=3 class=verdeescuro style="text-align:right;">
      <div class="bd" >
        <a href=http://mapas.mma.gov.br target+blank ><p style=text-align:right; ><img src=../imagens/banneri3geo.png /></a>
      </div>
</td></tr>
<tr>
<td title="libera guias" class=tdclara id=encolheFerramentas style="vertical-align:top;width:5px;text-align:left;"></td>
 <td class=tdbranca id=contemFerramentas style="vertical-align:top;width:268px;text-align:left;">
  <table width=100% cellspacing=0 cellpadding=0 >
   <tr><td style="border-bottom:1px solid rgb(230,230,230)">
    <!-- Guias principais, não mude o ID, apenas o nome se for desejado -->
    <div class=verdeescuro style="top:0px;cursor:pointer">
	 <div id=guia1 class=guia value="Mostra os temas atualmente inseridos no mapa e que podem estar visíveis ou não." >&nbsp;Temas&nbsp;</div>
	 <div id=guia2 class=guia value="Mostra a lista de temas disponíveis no servidor de dados, possibilitando que novos temas sejam adicionados ao mapa.">&nbsp;Adiciona&nbsp;</div>
	 <div id=guia4 class=guia value="Mostra a legnda do mapa atual." >&nbsp;Legenda&nbsp;</div>
	 <div id=guia5 class=guia value="Lista mapas já preparados, com temáticas específicas,que podem ser abertos no I3Geo">&nbsp;Mapas&nbsp;</div>
    </div>
   </td></tr>
  </table>
  <div id='guia1obj' ><div id=listaTemas ></div></div>
  <div id='guia2obj' style='display:none;'>Aguarde...<img alt="" src="../imagens/branco.gif" width=248 /></div>
  <div id='guia4obj' style='display:none;text-align:left'><div id='legenda' style='text-align:left'></div></div>
  <div id='guia5obj' style='display:none;text-align:left'><div id='banners' style='overflow:auto;text-align:left'>Aguarde...</div></div>
 </td>
 <td class=verdeclaro style="vertical-align:top;border-width:0px;">
  <table width="100%" style="vertical-align:top;">
   <!-- Corpo do mapa. Pode ser reposicionado, mas não mude os IDs -->
   <tr><td  class=verdeclaro id=contemImg >
    <div id=openlayers style="text-align:left;background-image:url('../imagens/i3geo1bw.jpg')"></div>
   </td></tr>
  </table>
  <table width=100%  >
   <tr>
   <td class=verdeclaro id=escalanumerica >
   </td>
   <td class=verdeclaro ><div id=localizarxy >Aguarde...</div></td>
   </tr>
  </table>
 </td>
 </tr>
<tr><td colspan=3 >
</td></tr>
<tr><td colspan=3 ><p class=verdeescuro style="text-align:center;"> <a href="mailto:edmar.moretti@mma.gov.br">Cr&iacute;ticas e sugest&otilde;es</a></p></td></tr>
</table>
</center>
<div id=barraDeBotoes1 style='display:none'> 
   <table title="info" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="info" alt="" src="../imagens/branco.gif" id='identifica'/></td></tr></table>
   <table title="reinicia" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="reinicia" alt="" src="../imagens/branco.gif" id='reinicia'/></td></tr></table>
   <table title="extensao" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img  title="extensao" alt="" src="../imagens/branco.gif" id="exten"/></td></tr></table>
   <table title="mede" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="mede" alt="" src="../imagens/branco.gif" id='mede'/></td></tr></table> 
   <table title="insere xy" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="insere xy" alt="" src="../imagens/branco.gif" id='inserexy'/></td></tr></table> 
   <table title="insere grafico" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="insere grafico" alt="" src="../imagens/branco.gif" id='inseregrafico'/></td></tr></table> 
   <table title="selecao" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="selecao" alt="" src="../imagens/branco.gif" id='selecao'/></td></tr></table>
   <table title="texto" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="texto" alt="" src="../imagens/branco.gif" id='textofid'/></td></tr></table>
   <table title="imprimir" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="imprimir" alt="" src="../imagens/branco.gif" id='imprimir'/></td></tr></table>   
   <table title="lente" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="lente" alt="" src="../imagens/branco.gif" id='lentei'/></td></tr></table>
   <table title="busca na wikipedia" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="busca na wikipedia" alt="" src="../imagens/branco.gif" id='wiki'/></td></tr></table>
   <table title="google" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="google" alt="" src="../imagens/branco.gif" id='google'/></td></tr></table>
   <table title="scielo" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="scielo" alt="" src="../imagens/branco.gif" id='scielo'/></td></tr></table>
   <table title="confluencias" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="confluencias" alt="" src="../imagens/branco.gif" id='confluence'/></td></tr></table>
   <table id=botao3d title="3d - experimental" style="width:100%;border-bottom:3px solid rgb(255,255,255);"><tr><td style='background-color:rgb(250,250,250);'><img title="3d" alt="" src="../imagens/branco.gif" id='v3d'/></td></tr></table>
</div>
<div id=botoesadic ></div>
<!-- Variáveis globais e inicialização do mapa-->
<script type="text/javascript">
/*
Title: OpenLayers (experimental)

Abre o i3geo com a navegação controlada pelo OpenLayers.

File: openlayers.htm

Exemplo:

http://<host>/i3geo/ms_criamapa.php?interface=openlayers.htm

*/
g_locaplic = "http://"+window.location.host+"/i3geo";
g_localimg = "http://"+window.location.host+"/i3geo/imagens";
g_barraFerramentas1 = "nao"
g_barraFerramentas2 = "nao"
g_mapaRefDisplay = "none"
g_janelaMen = "nao";
g_mostraRosa = "nao"
g_opcoesTemas = "sim";
g_3dmap = "3dmap.map";

/*
Function: criaOL

Cria e mantem os objetos necessários ao OpenLayers

Parameters:

posfixo - codigo que será incluido no nome da chamada do web service, forçando o redesenho do mapa.
*/
function criaOL(posfixo)
{
	var url = window.location.protocol+"//"+window.location.host+objmapa.locmapserv+"?"
	url += "map="+objmapa.mapfile+"&mode=map&rand="+posfixo
	
	objmapa.OL = new OpenLayers.Map('openlayers', { controls: [] });

	//
	//layers
	//
	objmapa.OLI3Geo = new OpenLayers.Layer.WMS( "I3Geo", url,{layers:'estadosl'},{isBaseLayer:true});
	objmapa.OL.addLayer(objmapa.OLI3Geo);
	
	var jpl_wms = new OpenLayers.Layer.WMS( "NASA Global Mosaic","http://wms.jpl.nasa.gov/wms.cgi", {layers: "modis,global_mosaic"},{isBaseLayer: false, opacity: 0.6});
	jpl_wms.setVisibility(false);
	objmapa.OL.addLayer(jpl_wms);
	
	var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://labs.metacarta.com/wms/vmap0",{layers: 'basic'},{isBaseLayer: false, opacity: 0.6} );
	ol_wms.setVisibility(false);
	objmapa.OL.addLayer(ol_wms);
	/*
	var ol_sat = new OpenLayers.Layer.Google( "Google" , {type: G_HYBRID_MAP, 'maxZoomLevel':36},{isBaseLayer: false, opacity: 0.6} );
	ol_wms.setVisibility(false);
	objmapa.OL.addLayer(ol_sat);
	ol_sat.div.style.left="0px"
	*/
    vlayer = new OpenLayers.Layer.Vector( "Editável" );
    objmapa.OL.addLayer(vlayer);
    //
    //registra os eventos de captura das coordenadas no mapa
    //
	objmapa.OL.events.register("mousemove", objmapa.OL, function(e)
	{
		//pega as coordenadas do cursor
		if (navm)
		{var p = new OpenLayers.Pixel(e.x,e.y);}
		else
		{var p = e.xy;}
		//altera o indicador de localizacao
		var lonlat = objmapa.OL.getLonLatFromViewPortPx(p);
		var d = convdmsf(lonlat.lon,lonlat.lat);
		objposicaomouse.x = p.x;
		objposicaomouse.y = p.y;
		objposicaocursor.ddx = lonlat.lon;
		objposicaocursor.ddy = lonlat.lat;
		objposicaocursor.telax = p.x;
		objposicaocursor.telay = p.y;
		var dc = $i("i3geo");
		if ($i("openlayers_OpenLayers_Container")){var dc = $i("openlayers_OpenLayers_Container");}
		while (dc.offsetParent)
		{
			dc = dc.offsetParent;
			objposicaocursor.telax = objposicaocursor.telax + dc.offsetLeft;
			objposicaocursor.telay = objposicaocursor.telay + dc.offsetTop;
		}
		movecursor();
	})
	//
	//ativa as operações de click no mapa do I3Geo
	//
	ativaClicks($i("openlayers_OpenLayers_Container"))
	//objmapa.OL.events.register("click", objmapa.OL, "");
	//
	//ferramentas
	//
	var pz = new OpenLayers.Control.PanZoomBar({numZoomLevels: 5});
	objmapa.OL.addControl(pz);
	pz.div.style.zIndex = 5000;
	$i("OpenLayers_Control_PanZoom_pandown").style.top=parseInt($i("OpenLayers_Control_PanZoom_pandown").style.top)+10
	$i("OpenLayers_Control_PanZoom_panup").style.top=parseInt($i("OpenLayers_Control_PanZoom_panup").style.top)+10
	$i("OpenLayers_Control_PanZoom_panleft").style.top=parseInt($i("OpenLayers_Control_PanZoom_panleft").style.top)+10
	$i("OpenLayers_Control_PanZoom_panright").style.top=parseInt($i("OpenLayers_Control_PanZoom_panright").style.top)+10
	var navc = new OpenLayers.Control.NavToolbar();
	objmapa.OL.addControl(navc);
	navc.div.style.left="8px";
	navc.div.style.top="-20px";
	navc.div.onclick = function()
	{
		mudaiconf("pan");
		g_operacao="navega"
	};

    zb = new OpenLayers.Control.ZoomToMaxExtent();
    var botoesadic = new OpenLayers.Control.Panel();

    botoesadic.addControls([
       new OpenLayers.Control.ZoomToMaxExtent()
    ]);
    objmapa.OL.addControl(botoesadic);
    botoesadic.div.style.left="10px";
    botoesadic.div.style.top=parseInt($i("OpenLayers_Control_PanZoom_zoomout").style.top)+77
	
	objmapa.OL.addControl(new OpenLayers.Control.LayerSwitcher());
	
	objmapa.OL.addControl(new OpenLayers.Control.Scale("escalanumerica"));
	
	objmapa.OL.addControl(new OpenLayers.Control.EditingToolbar(vlayer));
	
	objmapa.OL.addControl(new OpenLayers.Control.KeyboardDefaults());	

	//
	//overview
	//
	var ol_overview = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://labs.metacarta.com/wms/vmap0",{layers: 'basic'});
	var options = {layers: [ol_overview],minRatio: 8,maxRatio: 128};
	var overview = new OpenLayers.Control.OverviewMap(options);
	objmapa.OL.addControl(overview);
	
	if (posfixo != "inicia")
	{
		atualizaOL()
	}
}
/*
Function: atualizaOL

Atualiza o OpenLayers, redesenhadno o mapa
*/
function atualizaOL()
{
	var temp = function(retorno)
	{
		eval(retorno.data.parametros);
		objmapa.atualizaListaTemas(temas);
		objmapa.temas = temas;
	}
	//atualiza a lista de temas atuais
	var p = g_locaplic+"/classesphp/mapa_controle.php?funcao=openlayers&g_sid="+g_sid;
	var cp = new cpaint();
	//cp.set_debug(2)
	cp.set_response_type("JSON");
	cp.call(p,"openlayers",temp);
}
/*
Function: initOL

Inicializa o openLayers
*/
function initOL()
{
	var temp = function(retorno)
	{
		objmapa.locmapserv = retorno.data.locmapserv;
		objmapa.mapfile = retorno.data.mapfile;
		criaOL("inicia");
		var m = retorno.data.mapext.split(",")
		var b = new OpenLayers.Bounds(parseInt(m[0]),parseInt(m[1]),parseInt(m[2]),parseInt(m[3]))
		objmapa.OL.zoomToExtent(b)
		var x = 150;
		if ($i("maisBotoes1"))
		{YAHOO.janelaBotoes1.xp.panel.moveTo(x,4);}
		if ($i("maisBotoes2"))
		{YAHOO.janelaBotoes2.xp.panel.moveTo(x+40,4);}
	}
	var p = g_locaplic+"/classesphp/mapa_controle.php?funcao=openlayers&g_sid="+g_sid;
	var cp = new cpaint();
	//cp.set_debug(2)
	cp.set_response_type("JSON");
	cp.call(p,"openlayers",temp);
}
objmapa = new Mapa();
objmapa.finaliza = "initOL()";
objmapa.inicializa();
</script>

</body>
</html>