Exibir lista Google Maps

6 respostas
R

fala feras

eu preciso exibir as localizações de latitude e longitude no Google Maps que estou implementando aqui no sistema

eu retorno uma lista com os valores para a localização de cada, mais não sei como eu faço para exibir isso na tela

sem precisar de usar scriptlets alguém pode ajudar estou usando struts 2?

eu avia feito mais para exibir apenas um valor no Mapa mais agora preciso exibir uma lista com as localizações no Mapa

avia feito dessa forma

a mensagem vem dessa forma do banco e aqui abaixo eu formato ela na minha action

09092009180959000055*11*20281!LT-22.783349333333334!LG-43.382133333333336
String msgformatada = posicionamentoTO.getMensagem().substring(posicionamentoTO.getMensagem().indexOf("LT"));
					posicionamentoTO.setMensagem(msgformatada);
					String lt = msgformatada.substring(msgformatada.indexOf("T") + 1, msgformatada.indexOf("T") + 9);
					String lg = msgformatada.substring(msgformatada.lastIndexOf("G") + 1, msgformatada.lastIndexOf("G") + 9);
					getRequest().getSession().setAttribute("lg", lg);
					getRequest().getSession().setAttribute("lt", lt);

aqui e como eu pego na JSP

var lg = <%=(String) request.getSession().getAttribute("lg")%>;
   var lt = <%=(String) request.getSession().getAttribute("lt")%>;

aqui e onde vai receber o posicionamento no java script do google maps

   new GLatLng( lt, lg )

6 Respostas

RicardoCobain

Cara depende do tipo de dados q vc tá usando, se vc tá trabalhando com JSP e retornando uma lista de beans, você pode usar a displaytag.
Mas eu acho que vc deve estar usando a API do Google maps e retornando em XML ou JSON estou certo ??
Caso sim, você deve fazer tudo via JavaScript, você pode usar http://www.linksweb.com.br/grid-com-jquery-flexgrid/, para gerar uma tabela dinamica com seus dados.

Contem várias libs JS para criação de Tabelas

R

Ricardo estou usando sim uma lista de beans vc pode me mostrar um exmplo de como que eu implemento o displaytag que vc falou ?

RicardoCobain

Olha um tutorial sobre ela.
http://hotwork.sourceforge.net/hotwork/manual/displaytag/displaytag-user-guide.html

R

Então Ricardo consegui já ficou meio feio a gambi mais resolveu segue abaixo para futuras duvidas

<script type="text/javascript">   
	<% 	
	List lista = (List)request.getSession().getAttribute("listPosicion");
	
	%>
   var map1;  
   var contador = <%= lista.size() %>;
   var contador2 = 0;
   <%--
	  	var lg = <%=(String) request.getSession().getAttribute("lg")%>;
	   	var lt = <%=(String) request.getSession().getAttribute("lt")%>;
   --%>	
   var latlng1 = [   
  <%
  
	for (int i = 0; i < lista.size() - 1; i++) {
		PosicionamentoTO posicionamentoTO = (PosicionamentoTO) lista.get(i);
		String  msgformatada = "";
		String lt = "";
		String lg = "";
		if(posicionamentoTO.getMensagem().contains("LT")){
			msgformatada = posicionamentoTO.getMensagem().substring(posicionamentoTO.getMensagem().indexOf("LT"));
			lt = msgformatada.substring(msgformatada.indexOf("T") + 1, msgformatada.indexOf("T") + 9);
			lg = msgformatada.substring(msgformatada.lastIndexOf("G") + 1, msgformatada.lastIndexOf("G") + 9);
		} else {
			msgformatada = posicionamentoTO.getMensagem().substring(posicionamentoTO.getMensagem().indexOf("lt"));
			lt = msgformatada.substring(msgformatada.indexOf("t") + 1, msgformatada.indexOf("t") + 9);
			lg = msgformatada.substring(msgformatada.lastIndexOf("g") + 1, msgformatada.lastIndexOf("g") + 9);
		}

	%>
		new GLatLng(<%= lt %>, <%= lg %>),
	<%
		}
 	%>
	
 	<% String  msgformatada =  "";
 	String lg = "";
 	String lt = "";
	 	if(((PosicionamentoTO)lista.get(lista.size() -1)).getMensagem().contains("LT")){
			msgformatada = ((PosicionamentoTO)lista.get(lista.size() -1)).getMensagem().substring(((PosicionamentoTO)lista.get(lista.size() -1)).getMensagem().indexOf("LT"));
			lt = msgformatada.substring(msgformatada.indexOf("T") + 1, msgformatada.indexOf("T") + 9);
			lg = msgformatada.substring(msgformatada.lastIndexOf("G") + 1, msgformatada.lastIndexOf("G") + 9);
		} else {
			msgformatada = ((PosicionamentoTO)lista.get(lista.size() -1)).getMensagem().substring(((PosicionamentoTO)lista.get(lista.size() -1)).getMensagem().indexOf("lt"));
			lt = msgformatada.substring(msgformatada.indexOf("t") + 1, msgformatada.indexOf("t") + 9);
			lg = msgformatada.substring(msgformatada.lastIndexOf("g") + 1, msgformatada.lastIndexOf("g") + 9);
		}
 	%>

 	new GLatLng(<%= lt %>, <%= lg %>)
     
   ];  
   function map1_initialize( ) { 
		  
     if ( GBrowserIsCompatible( ) )  
     {  
       map1 = new GMap2( document.getElementById( 'map1div' ) );  
       map1.addControl( new GSmallMapControl( ) );  
       map1.addControl( new GMenuMapTypeControl( ) );  
       map1.setCenter( new GLatLng( 0, 0 ), 0 );  
       for ( var i = 0; i < latlng1.length; i++ )  
       {  
         var marker = new GMarker( latlng1[ i ] );  
         map1.addOverlay( marker );  
       }  
       var latlngbounds = new GLatLngBounds( );  
       for ( var i = 0; i < latlng1.length; i++ )  
       {  
         latlngbounds.extend( latlng1[ i ] );  
       }  
       map1.setCenter( latlngbounds.getCenter( ), map1.getBoundsZoomLevel( latlngbounds ) );  
     }  
   }  
   GEvent.addDomListener( window, 'load', map1_initialize );  
   
</script>
RicardoCobain

Ahhh beleza então…

Vc quer dar uma melhorada nesse código ???
Sugiro você mover os dois blocos de código:

16. for (int i = 0; i < lista.size() - 1; i++) { (ETC…)
40. if(((PosicionamentoTO)lista.get(lista.size() -1)).getMensagem().contains("LT")){ (ETC…)

…para uma classe separada, isso deixa seu código mais Limpo e facil de manter…

R

Blz valeu Ricardo

Criado 18 de novembro de 2009
Ultima resposta 24 de nov. de 2009
Respostas 6
Participantes 2