Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    44

    problema geolocalizzazione

    In base al tasto premuto dall'utente nella pagina precedente devo caricare una mappa di google che ha centro o le coordinate prese tramite geolocalizzazione o quelle del paese scelto.

    codice:
    $(document).ready(function() 
    {
    	
    	//se ho schiacciato cerca attorno a me usa la geolocalizzazione
    	if (but==2)
    	{
    	   if (navigator.geolocation) {
                 navigator.geolocation.getCurrentPosition(load);
               } else {
                 //errore...
               }		
    
    
    	}
    	if(but==1) 
    	{	
    	    doNothing(load);
    	}
    	
    });
    Controllato quale pulsante ho schiacciato chiamo load che carica la mappa

    codice:
    function load(position) {	
    //....crea mappa
    }
    infine bodyonload:

    codice:
    <body onload="load()">
    A questo punto se lascio body onload = load() quando devo caricare la mappa con coordinate geolocalizzate manca l'argomento "location", se metto load(location) quando carico la mappa con l'atra modalità location non è definita..
    come faccio? GRAZIE

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Devi toglie onload sul body e gestire il tutto tramite le if but eventualmente metti un else alla fine che lanci load
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    44
    grazie mille per la risposta;
    potresti dirmi che comando mettere?
    window.load(load) ?
    come diventerebbe nei due casi?
    grazie

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Non posso dirti cosa fare perché non conosco il flusso dei dati, prova a mettere le due pagine online
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    44
    Okey la pagina è molto corposa:
    codice:
    <!-- FUNZIONE DI GOOGLE PER L'AUTOCOMPLETE -->
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=places"></script>
    
    
    <script>
    var placeSearch, autocomplete;
    function initialize() {
      // Create the autocomplete object, restricting the search
      // to geographical location types.
      autocomplete = new google.maps.places.Autocomplete(
          /** @type {HTMLInputElement} */(document.getElementById('autocomplete')),
          { types: ['geocode'] });
      // When the user selects an address from the dropdown,
      // populate the address fields in the form.
      google.maps.event.addListener(autocomplete, 'place_changed', function() {
        fillInAddress();
      });
    }
    
    
    function fillInAddress() {
    // Get the place details from the autocomplete object.
    var place = autocomplete.getPlace();
    var latitude = place.geometry.location.lat();
    var longitude = place.geometry.location.lng();  
    document.getElementById('lat').value = latitude;
    document.getElementById('lng').value = longitude;
    }
    </script>
    <!--FINE FUNZIONE GOOGLE -->
    
    
    <script>
    var but= "<?php echo($but); ?>";
    var lat;
    var lng;
    var  myLatlng;
    </script>
    <?php //acquisizione parametri di ricerca
    $but=$_GET['but']; //variabile passata nell'URL 1 se cerca dai campi 2 se ricerca con geocalizzazione posizione utente
    $filtrodata='off'; //diventa on se imposta la data dalla pagina di ricerca
    $data=date('Y-m-d');
    if($but==1)
    {
    	if (!empty($_GET['citta']))
    	{
    		$citta = $_GET['citta']; 
    		$lat=$_GET['lat'];
    		$lng=$_GET['lng'];
    	}
    	
    	if (!empty($_GET['data']))
    	{
    		$data=$_GET['data']; 
    		$filtrodata='on';
    	}
    	if(empty($_GET['citta']))
    	{
    		$lat=40;
        	$lng=15;
    	}
    }
    else
    {
    	$data=date('Y-m-d');
    	$lat=0;
        $lng=0;
    }
    ?>
    
    
    <?php 
        
    	//preparazione degli array per la creazione dei marker sulla mappa
        //cerca tutti gli eventi con la data selezionata nella pagina principale, mette nell'array idluogo l'id degli eventi corrispondenti
    	
    	$risultato=mysqli_query($conn,"select * from tbleventi where data = '" .$data."'");
    	$aux=0;
    	while($riga=mysqli_fetch_array($risultato))
        {
           	$idluogo[$aux]=$riga["id_luogo"];			 
    	    $aux=$aux+1;
        }
    	
    	
    	//mette nell'array idtuttiluoghi l'id di tutti gli eventi che ci sono con la data del filtro data
    	if ($filtrodata=='on'){
    	$risultato=mysqli_query($conn,"SELECT * FROM tbleventi WHERE data ='".$data."'  ORDER BY data");
    	}
    	else{
    		//mette nell'array idtuttiluoghi l'id di tutti gli eventi che ci sono con data futura o odierna
    		$risultato=mysqli_query($conn,"SELECT * FROM tbleventi WHERE data >='".date('Y-m-d')."'  ORDER BY data");
    	}
    			
    	$aux=0;
        while($riga=mysqli_fetch_array($risultato))
        {
           $nomeevento[$aux]=$riga["nome_evento"];
    	   $idevento[$aux]=$riga["ID"];		
    	   $idtuttiluoghi[$aux]=$riga["id_luogo"]; 
    	   $idutente[$aux]=$riga["id_utente"];
    	   $menu[$aux]=$riga["menu"];
    	   $postidisponibili[$aux]=$riga["posti_disponibili"];
    	   $postiprenotati[$aux]=$riga["posti_prenotati"];
    	   $costo[$aux]=$riga["crediti"];
    	   $dataevento[$aux]=$riga["data"];
    	   $oraevento[$aux]=$riga["ora"];	   
    	   $aux=$aux+1;
    	}
      
        for ($z=0;$z<=$aux-1;$z++)
        {
    	   $result = mysqli_query($conn,"SELECT * from tblutenti where ID='".$idutente[$z]. "'");
    	   if (!$result)
    	    {
    		    echo "no evento";	
    		}
    		else
            {		
    	       $row = mysqli_fetch_array($result);
               $username[$z]=$row["username"];
    		}
    	 }	
    ?>
    
    
    <!DOCTYPE html>
    <html lang="en">
    
    
    <head>
    	<title>credeats</title>
        
        <link rel="stylesheet" href="css/style.css" type="text/css" />
        
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
       <script src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markermanager/src/markermanager.js"></script>
       <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
        <script type="text/javascript">
    
    
    var customIcons = //iconcince dei markers
    {
        KO: {
        icon: 'http://labs.google.com/ridefinder/images/mm_20_black.png',
        shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'
             },
    	OK: {
        icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png',
        shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'
            }
    }; 
    
    
    var nomeevento;
    var idevento;
    var idutente;
    var menu;
    var postidisponibili;
    var postiprenotati;
    var costo;
    var dataevento;
    var oraevento;
    var username;
    
    
    
    
    $(document).ready(function() 
    {
    	
     but = "<?php echo($but) ?>";
     console.log("1.but"+but);
    	//se ho schiacciato cerca attorno a me usa la geolocalizzazione
    	if (but==2)
    	{
    		
    		 if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(load);
    	
        } else {
            x.innerHTML = "Geolocation is not supported by this browser.";
        }
    		
    
    
    	}
    	if(but==1)
    	{
    	
    	doNothing(load);
    	}
    	
    	
    });
    
    
    
    
    
    
    function load(position) {	
    
    
     google.maps.event.addListener(autocomplete, 'place_changed', function() {    
    	  var place= autocomplete.getPlace();
    	  map.fitBounds(place.geometry.viewport);
    });	
    
    
    <?php
    	if (isset($idluogo))
    	{
    	      $js_idluogo = json_encode($idluogo);
              echo "var idluogo= ". $js_idluogo . ";\n";			
         	  $controllo=1;
    	}
    	else
    	{
    		  $controllo=2;
    	 }
    
    
    	
    		
    if(isset($idevento)){
    	$js_nomeevento = json_encode($nomeevento);
        echo " nomeevento= ". $js_nomeevento . ";\n";	
    		
    		$js_idevento = json_encode($idevento);
            echo " idevento= ". $js_idevento . ";\n";		   
    		
    		$js_idtuttiluoghi = json_encode($idtuttiluoghi);
            echo " idtuttiluoghi= ". $js_idtuttiluoghi . ";\n";
    		
    		$js_idutente=json_encode($idutente);
    		echo " idutente= ". $js_idutente . ";\n";
    		
    		$js_menu=json_encode($menu);
    		echo " menu= ". $js_menu . ";\n";
    		
    		$js_postidisponibili=json_encode($postidisponibili);
    		echo " postidisponibili= ". $js_postidisponibili . ";\n";
    		
    		$js_postiprenotati=json_encode($postiprenotati);
    		echo " postiprenotati= ". $js_postiprenotati . ";\n";
    		
    		$js_costo=json_encode($costo);
    		echo " costo= ". $js_costo . ";\n";
    		
    		$js_dataevento=json_encode($dataevento);
    		echo " dataevento= ". $js_dataevento . ";\n";
    		
    		$js_oraevento=json_encode($oraevento);
    		echo " oraevento= ". $js_oraevento . ";\n";
    		
    		$js_username=json_encode($username);
    		echo " username= ". $js_username . ";\n";	
    		}
    		else
    		{
    			$controllo_risultati="nessuno";
    		}
    ?>	
    
    
    
    
    
    
    
    
    $(document).ready(function() 
    {
    $('input[type="date"]').change(function(){
    		but=0;
    
    
    		lat=map.getCenter().lat();
    		lng=map.getCenter().lng();
    		
    		 var selected_date=$(this).val();
    		 load_data={'selected_date':selected_date}
    		 $.post("getcountry.php", load_data, function(data) {
    			var json=JSON.parse(data)			
    			nomeevento=json[0].nomeevento;
    			idevento=json[0].idevento;
    			idtuttiluoghi=json[0].idtuttiluoghi;
    			idutente=json[0].idutente;
    			menu=json[0].menu;
    			postidisponibili=json[0].postidisponibili;
    			postiprenotati=json[0].postiprenotati;
    			costo=json[0].costo;
    			dataevento=json[0].dataevento;
    			oraevento=json[0].oraevento;
    			username=json[0].username;
    		});	
    	     
    		
    		 myLatlng = new google.maps.LatLng(lat, lng);
    		load();
    	  });
    });
    
    
    	
    
    
    var filtrodistance=40;
    
    
     if (but==2)
     {
    	 
        //variabile latlng delle coordinate prese mediante geolocalizzazione	
    
    
        lat=position.coords.latitude;
    	lng=position.coords.longitude;
    
    
     } 
    if(but==1)
     {  
     
         lat = "<?php echo($lat); ?>";
         lng = "<?php echo($lng); ?>";
         myLatlng = new google.maps.LatLng(lat, lng);
      } 
    
    
    //creazione mappa
     var map = new google.maps.Map(document.getElementById("map"), 
    {
        center: new google.maps.LatLng(lat, lng),
        zoom: 6,
        mapTypeId: 'roadmap'
    	
    });	  	  
    
    
    var infoWindow = new google.maps.InfoWindow;
    
    
    downloadUrl("creamappa.php", function(data) {
    	
    	var lat1=null;
    	var lon1=null;
    	var lat2=null;
    	var lon2=null;
    	
    	
    
    
    var posizionemarker=[]; 
    var mkey=[];
    
    
    	 var user = "<?php echo($utente); ?>";
    
    
    	
    	 var marker=[];    
    		
    
    
    		var contatore=0;
    		console.log(idtuttiluoghi);
    		var marker_list = [];
    	      for (var y=0; y<idtuttiluoghi.length; y++)
    		    {		
                    $(xml).find('marker[id='+idtuttiluoghi[y]+']').each(function() {
    					 lat =$(this).attr("lat");
    				     lng =$(this).attr("lng");
    					 var address=$(this).attr("address");
    					 contatore=contatore+1;
    					 console.log(contatore);
    				});         
                       
    		             var type = "KO";
    					 var controllo = "<?php echo($controllo); ?>";							
                         var point = new google.maps.LatLng(lat, lng);
                          
    					 var icon = customIcons[type] || {};
                         marker[y] = new google.maps.Marker
    					 ({
                             map: map,
                             position: point,
                             icon: icon.icon,
                             shadow: icon.shadow
                         });
    					
                        // bindInfoWindow(marker[y], map, infoWindow);					  
    		      }	
    	 
          });	  
    	 
      }
      
    function bindInfoWindow(marker, map, infoWindow)
    	{
    		//visualizza infowindow al click sul marker
            listener=google.maps.event.addListener(marker, 'click', function() 
    		{
                infoWindow.setContent(html);
                infoWindow.open(map, marker);
            });
    		//illumina div evento al clic sul marker dell'evento corrispondente
         	listener2=google.maps.event.addListener(marker, 'click', function() 
    		{
    			var idevento=$("#idevento").val();
    			$("#"+idevento).css("box-shadow","5px 5px 2px #333333 ");
    	 	});	
    	}
    
    
    function downloadUrl(url, callback) 
      {
             var request = window.ActiveXObject ?
             new ActiveXObject('Microsoft.XMLHTTP') :
             new XMLHttpRequest;
             request.onreadystatechange = function() 
    		    {
                   if (request.readyState == 4) 
    			      {
                        request.onreadystatechange = doNothing;
                        callback(request, request.status);
                      }
                };
             request.open('GET', url, true);
             request.send(null);
         }		
      function doNothing() {}
        </script>
    
    
    </head>
    
    
    <body onload="initialize();load()">
    
    
    <div id="header">
    <?php include 'include/header_autenticato.php'; ?> <!-- header -->
    </div>
    
    
    
    
    <div id="map" style="width: 50%; height: 870px; float:right">
    </div>

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Quote Originariamente inviata da feed90 Visualizza il messaggio
    Okey la pagina è molto corposa:
    Motivo in più per mettere le pagine online, oltretutto c'è codice php non interpretato che confonde
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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 © 2024 vBulletin Solutions, Inc. All rights reserved.