Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    51

    api google maps Problema infowindow

    buonasera allora io ho una funzione che prende dati da un db e mostra la mappa con relativa infowindow. Il problema si pone quando ho piu marker infatti su tutti i marker ho l'infowindow relativa all'ultimo elemento.codice:
    codice:
    <script type="text/javascript"> 
     var trieste= new google.maps.LatLng(45.656528,13.778172); 
    var marker;
     var map;
     var punto; 
    var infowindow = new google.maps.InfoWindow();
     function initializza() { 	 
     var opzioni = { 	  
     center: trieste, 	   
    zoom: 14, 	   
    mapTypeId: google.maps.MapTypeId.ROADMAP 	  }; 	  
    map = new google.maps.Map(document.getElementById("canvas_mappa"), opzioni); 	 	 
     <%  // aggiungiamo i markers via JSP 	for (String s: posizione)  { 	%> 	   
     punto = new google.maps.LatLng(<% out.print(s); %> ); 	       
     marker = new google.maps.Marker({ 
     map:map,           	          
    position: punto, 
    });     
    <% for (String p: window){  %> 	  	         	       
     google.maps.event.addListener(marker, 'click', function() { 	        	        	
    infowindow.setContent('<% out.print(p); %>'); 	        	
    infowindow.open(map,this); 
      }); 	 
      <% }  }%>  } </script>
    questo è il codice che non mi riconosce il ciclo for. Ah se metto la variable s al posto di p mi viene corretto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    potresti postare anche quello che arriva al browser (visualizza sorgente dal browser)?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    51
    allora quello che arriva sono 2 stringhe che splitto.
    codice:
    <% String window[] = arr.split(":");
    String posizione[] = pippo.split(" ");
    quindi arrivano questi 2 array posizione lo uso per avere dati latitudine e longitudine mentre window mi da il fumetto che deve uscire ma viene fuori solo l'ultimo dato dell'array window.Quindi è un problema del ciclo for ma non so dove.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    no no, a parte quello che hai postato, che cosa vede il browser?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    51
    no scusami ma non capisco vuoi che scrivo tutto il codice??
    Scusa se rispondo tardi ma oggi è una brutta giornata .

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    51
    up ci sei andrea???
    sono andato fuori tema???

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    no no, non sei andato fuori tema... ero io che ero fuori.
    Allora, mi serve di vedere il codice javascript così come arriva alla pagina, ovvero dopo l'elaborazione. Per ottenerlo, una volta caricata la tua jsp nel browser dovresti ricopiare il codice html e incollarlo qui... almeno le parti salienti, ovvero quelle del tag script in cui JSP genera codice. Oltre, ovviamente, al codice JSP, ma quello dovresti già averlo postato.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    51
    codice:
    <style type="text/css"> 
    html { height: 100% }
     body { height: 100%; margin: 0; padding: 0 }
     #canvas_mappa { height: 100% } 
    </style> 
    <script src="https://maps.googleapis.com/maps/api/js?;key=AIzaSyC5lvGGdwb7eYXX-KmoOzXvK3d_OiyRN7s&sensor=false"></script>
     <script>
     var trieste = new google.maps.LatLng(45.652448,13.777714); 
    var marker;
     var map;
     function inizializza() { 
    var mapOptions = { 
    zoom: 15, mapTypeId:
     google.maps.MapTypeId.ROADMAP,
     center: trieste };
     map = new google.maps.Map(document.getElementById('canvas_mappa'),
     mapOptions);
     <% for (String s: LatLng){%> 
    var punto = new google.maps.LatLng(<%out.print(s);%>); 
    marker = new google.maps.Marker({ map:map, position: punto });
     <%for (String g :window){%>
     var infowindow = new google.maps.InfoWindow({}); google.maps.event.addListener(marker, 'click', function() { infowindow.setContent('<%out.print(g);%>');
     infowindow.open(map,this); });
     <% }  } %> } 
    </script>
     </head> 
    <body onload="inizializza()"> <div id="canvas_mappa" style="width: 100%; height: 100%"></div> </body> 
    <%utente.disconnetti(); %>
     </body>
     </html>
    questa è tutta la parte scritta in js e html per il resto prelevo tramite un bean i dati dal db.
    Il problema è il ciclo for delle infowindow mi torna solo L'ULTIMO DATO.
    GRAZIE gia da subito.

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ok fin qua ci siamo. Adesso carica la pagina in un browser e dal browser stesso copia il codice html
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    51
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html>
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Mappa</title>
     </head>
     tipo :via 
    
     nome :******
    
     numero :
     
     località :*****
     
     nome+numero+localita 1 
    
     nome+numero+localita 2
    <style type="text/css"> 
    html { height: 100% } 
    body { height: 100%; margin: 0; padding: 0 } 
    #canvas_mappa { height: 100% }
     </style>
     <script src="https://maps.googleapis.com/maps/api/js?;key=&sensor=false"></script>
     <script>
     var centro = new google.maps.LatLng(45.652448,13.777714); 
    var marker;
     var map;
     function inizializza() { 
    var mapOptions = { 
    zoom: 15, 
    mapTypeId: google.maps.MapTypeId.ROADMAP,
     center: centro };
     map = new google.maps.Map(document.getElementById('canvas_mappa'),
     mapOptions);
     var punto = new google.maps.LatLng(45.655463,13.772607);
     marker = new google.maps.Marker({ map:map, position: punto,
     html: 'nome+numero+localita 1 ' });
     var punto = new google.maps.LatLng(45.655463,13.772607); 
    marker = new google.maps.Marker({ map:map,
     position: punto,
     html: 'nome+numero+localita 2' }); 
    var infowindow = new google.maps.InfoWindow({ content: ''}); google.maps.event.addListener(marker, 'click', function() { infowindow.setContent(this.html);
     infowindow.open(map,this); });
     var punto = new google.maps.LatLng(45.655418,13.773079);
     marker = new google.maps.Marker({ map:map,
     position: punto,
     html: 'nome+numero+localita 1 ' });
     var punto = new google.maps.LatLng(45.655418,13.773079);
     marker = new google.maps.Marker({ map:map,
     position: punto,
     html: 'nome+numero+localita 2 ' });
     var infowindow = new google.maps.InfoWindow();
     google.maps.event.addListener(marker, 'click', function() { infowindow.setContent(this.html);
     infowindow.open(map,this); }); } 
    </script>
     </head> 
    <body onload="inizializza()"> <div id="canvas_mappa" style="width: 100%; height: 100%"></div>
     </body> 
    </html>
    è un pò modificato ho aggiunto html per usare il this ma rimane uguale.
    il numero non c'è mentre gli latri dati sono inseriti .scusa ma utilizzo dati a caso e non voglio metterli quindi metto *.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.