Passare dati a google maps

marcoint

Utente Attivo
8 Gen 2014
58
0
0
Ragazzi qualcuno sa come creare una mappa google sul proprio sito passandosi dei parametri? Ad esempio scegliendo località , ristorante, e luogo di partenza, potrei creare una mappa di google che indichi l'itinerario da seguire? Si può fare una cosa del genere?
 

marcoint

Utente Attivo
8 Gen 2014
58
0
0
In alternativa se non si può creare un itinerario posso creare una mappa come quella di pagine bianche, che quindi mi mostri almeno la posizione del luogo?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
non so se ti va bene, io uso la latitudine e la longitudine per posizionare il mark
nell'head
PHP:
<head>
<!--... css e quant'altro ti serva -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="gmaps.js"></script>
</head>
<body>
<?php
//estrai latitudine e longitudine o li valorizzi
//io le ho in un database
//es.
$tipo_map="ROADMAP";//o "SATELLITE" o "TERRAIN"
$zoom=2;//zoom della mappa
$lat=42.747012;//latitudine del punto
$lon=12.429198;//longitudine
?>
<script type="text/javascript">
	var map;
   $(document).ready(function(){
      //prettyPrint();
      map = new GMaps({
        div: '#map',
		lat: <?php echo $lat;?>,
		lng: <?php echo $lon;?>,
		mapTypeId: google.maps.MapTypeId.<?php echo $tipo_map; ?>,
		zoom: <?php echo $zoom;?>
      });
      map.addMarker({
        lat: <?php echo $lat;?>,
        lng: <?php echo $lon;?>,
        title: '<?php echo $local[$l];?>',
      });
    });
</script>
      <div id="map"></div><!--qui si visualizza la mappa che con altri div sistemerai come vuoi -->
</body>

p.s.
però porta un po' di pazienza non uppare così i post
 

marcoint

Utente Attivo
8 Gen 2014
58
0
0
Ciao si grazie mille, e scusa per l'upp irregolare. Allora credo di aver capito come funziona, però praticamente facendo copia e incolla del tuo codice non visualizza niente come mai? In ogni caso era proprio quello che volevo, se magari puoi sistemare questa cosa :) In più se volessi fare come hai fatto tu, e quindi utilizzando un database le coordinate le salvo come campi INT o come altri campi particolari?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, vi segnalo 2 problemi
PHP:
title: '<?php echo $local[$l];?>',
l'array $local e la variabile $l non sono presenti nello script
HTML:
<script type="text/javascript" src="gmaps.js"></script>
per includere gmaps.js bisogna averlo sul server nella stessa directory altrimenti si puo andare a prendere da un altra parte
HTML:
<script type="text/javascript" src="http://www.borgo-italia.it/mappe/gmaps.js"></script>

detto questo io userei una mappa statica usando il codice che fornisce la pagina di google maps
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao criric
hai ragione ho fatto copy/paste di una parte e quel $local[$l] è rimasto indietro
poi per il js mi sembrava logico che scritto così uno dovesse averlo sul server, comunque è scaricabile anche da google
 

marcoint

Utente Attivo
8 Gen 2014
58
0
0
Scusate l'ignoranza ricapitolando il codice aggiustato come sarebbe? PS: grazie mille a tutti e due ,la mia intenzione era proprio fare una cosa simile al tuo sito :)
 

marcoint

Utente Attivo
8 Gen 2014
58
0
0
detto questo io userei una mappa statica usando il codice che fornisce la pagina di google maps
A me servirebbe però che non sia fissa questa mappa ma che appaia solo quando io clicco su un
PHP:
<?php <a href="mappa.php?ristorante=$ristorante">mappa</a> ?>
Ovviamente sulla pagina mappa.php estrarrò dal database, attraverso il nome del ristorante che mi sono passato, le coordinate del luogo e poi farò uscire la mappa. Ma voglio appunto che quest'ultima esca solo quando uno preme su mappa non che sia fissa diciamo.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Mancano anche le dimensioni del div #map
prova questo
PHP:
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
    <script type="text/javascript" src="http://www.borgo-italia.it/mappe/gmaps.js"></script>
    <style type="text/css">
        #map {
            width: 400px;
            height: 400px;
            float:left;
        }
        ul.city {
            float: left;
            list-style-type: none;
        }
    </style>
</head>
<body>
    <?php
    $array = array(
        "trento" => "46.085614,11.12011",
        "verona" => "45.450497,10.99102",
        "modena" => "44.654978,10.92001",
        "bologna" => "44.50679,11.343269"
    );
    ?>
    <script type="text/javascript">
        var map;
        $(document).ready(function(){           
            creaMappa("46.085614","11.12011","Trento");       
            $("ul.city a").click(function(e){
                e.preventDefault();
                var coord = $(this).attr("href").split(",");
                var tit = $(this).html();
                creaMappa(coord[0],coord[1],tit);
            })
        });
        function creaMappa(lat,lon,tit) {            
            map = new GMaps({
                div: '#map',
                lat:lat,
                lng: lon,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                zoom: 10
            });
            
            map.addMarker({
                lat: lat,
                lng: lon,
                title: tit
            });
        }
        
    </script>
    <div id="map"></div>
    <ul class="city">
        <?php
        foreach ($array as $key => $value) {
            echo "<li><a href='" . $value . "'>$key</li>";
        }
        ?>
    </ul>
</body>
l'array php lo puoi creare con una query sul db
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Si l'ho provato l'unico problema erano le dimensioni del div #map
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
edit: c...o, mi ero dimenticato il css con le dimenzioni del div, così funzia
PHP:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="iso-8859-1">
<!--... css e quant'altro ti serva -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="gmaps.js"></script>
 <style type="text/css">
        #map {
            width: 400px;
            height: 400px;
            float:left;
        }
        ul.city {
            float: left;
            list-style-type: none;
        }
    </style>
</head>
<body>
<?php
//estrai latitudine e longitudine o li valorizzi
//io le ho in un database
//es.
$tipo_map="ROADMAP";//o "SATELLITE" o "TERRAIN"
$zoom=12;//zoom della mappa
$lat=42.747012;//latitudine del punto
$lon=12.429198;//longitudine
$local="prova";
?>
<script type="text/javascript">
    var map;
   $(document).ready(function(){
      //prettyPrint();
      map = new GMaps({
        div: '#map',
        lat: <?php echo $lat;?>,
        lng: <?php echo $lon;?>,
        mapTypeId: google.maps.MapTypeId.<?php echo $tipo_map; ?>,
        zoom: <?php echo $zoom;?>
      });
      map.addMarker({
        lat: <?php echo $lat;?>,
        lng: <?php echo $lon;?>,
        title: '<?php echo $local;?>',
      });
    });
</script>
      <div id="map"></div><!--qui si visualizza la mappa che con altri div sistemerai come vuoi -->
</body>
</html>
@criric: l'unico dubbio: funziona con IE?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Con IE 11 funziona con le versioni precedenti non saprei ma non c'è niente di complicato, dovrebbe farcela anche microsoft
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
grazie, in effetti con le vecchie IE non funzia.
poi una curiosità: che differenza c'è tra il mio e il tuo js?


@marcoin, ora fra un po' ti do le indicazioni per il db
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Nel mio js ho aggiunto una funzione che va a leggere il contenuto della lista delle città ne prende i parametri e aggiorna la mappa senza ricaricare la pagina
E' sufficiente aggiornare l'array php
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
intanto farei una tabella del tipo, chiamala come preferisci:
Codice:
id int(12) primaykey autoincrement
nome varchar(50) not null
lat (double)
lon (double)
poi se vuoi aggiungere dei campi vedi tu (es. zoom o tipo di mappa)
ecco uno schema:
PHP:
<?php
//dati di connessione al db
$stm=mysqli_query("SELECT id,nome FROM tabella ORDER BY nome");//estrai i dati per preparare il menu a tendina
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<select name="elenco">
<?php
while($riga=mysqli_fetch_assoc($stm)){
  echo "<option value=".$riga['id'].">".$riga['nome']."</option>";
}
?>
</select>
<!-- o con un js per inviare alla selezione sensa pulsante di submit-->
<input name="invia" type="submit" id="invia" value="invia">
</form>
<?php
if(isset($_POST['invia'])){
	$stm=mysqli_query("SELECT * FROM tabella WHERE id=".$_POST['elenco']);
	$lat=$riga['lat'];
	$lon=$riga['lon'];
	$nome=$riga['nome'];
}else{
	//qui scegli delle coordinate per quando si apre la pagina
	$lat=42.747012;
	$lon=12.429198;
	$nome="pinco pallo";
}
?>
<script type="text/javascript">
	var map;
   $(document).ready(function(){
      //prettyPrint();
      map = new GMaps({
        div: '#map',
		lat: <?php echo $lat;?>,
		lng: <?php echo $lon;?>,
		mapTypeId: google.maps.MapTypeId.ROADMAP,
		zoom: 13
      });
      map.addMarker({
        lat: <?php echo $lat;?>,
        lng: <?php echo $lon;?>,
        title: '<?php echo $nome;?>'
      });
    });
</script>
      <div id="map"></div>

poi metti i css e js che ti servono e ricorda di dare le dimensioni al div #map
guarda che ho messo solo la parte relativa al db e alla creazione della mappa

edit
@criric
si anche nel mio uso una chiamata ajax, ma non ho voluto complicare
 
Ultima modifica:

marcoint

Utente Attivo
8 Gen 2014
58
0
0
Ok allora il codice postato da criric funziona, mentre quello di borgo ancora non mi visualizza niente :( Poi volevo chiedere se invece appunto di averla così fissa la mappa posso averla diciamo "nascosta" e quando una persona clicca sulla mappa la faccio apparire affianco? In pratica il mio programma è questo:
HTML:
<form name="invio" method="GET" action="pagina.php">
Inserisci la città dei ristoranti <input type="text" name="luogo">
<input type=submit value=Invia>
Pagina.php
PHP:
<?php
$citta=$_POST['luogo']
//mi connetto al database
$id=mysql_connect("localhost","root","")
or die("non riesco a creare la connessione");
mysql_select_db("my_sassiesecoli")
or die("non trovo il db"); 
//estraggo tutti i ristoranti di quella città
$sql="SELECT * FROM ristoranti WHERE LOCALITA='$citta'";
$rs=mysql_query($sql) or die(mysql_error());
//metto i dati in una tabella

while($row=mysql_fetch_array($rs)) 
{ echo"<table border=0>";
echo"<tr><td>"."</tr></td>"//non ho scritto niente perchè qua vorrei metterci l'immagine del ristorante che in teoria dovrebbe essere un campo del db ma non so ne come si inserisce ne come si stampa una immagine dal db, quindi questa cosa devo studiarmela un attimo :)".$row['EVENTO']."</td>";
echo"<tr><td>";
echo"<table border=1>"; 
echo"<tr><td>"."<b>NOME</b>"."</td>";
echo"<td>".$row['NOME']."</td>";
echo"</tr>"
echo"<tr><td>"."<b>LOCALITA'</b>"."</td>";
echo"<td>".$row['LOCALITA']."</td>";
echo"</tr>"
echo"<tr><td>"."<b>VIA</b>"."</td>";
echo"<td>".$row['VIA']."</td>";
echo"</tr>"
echo"<tr><td>"."<b>TELEFONO</b>"."</td>";
echo"<td>".$row['TELEFONO']."</td>";
echo"</tr>"
echo"<tr><td>"."<b>MAPPA</b>"."</td>";
echo"<td><a href=mappa.php>".">Mappa<"."</a></td>"; 
echo"</tr>";
echo"</table>"
echo"</td>";
echo"</tr>";
echo"</table>";
echo"<br><br>";
//La tabella dovrebbe venire una cosa del genere http://sassiesecoli.altervista.org/provatabella.html e sarà ripetuta tante volte quanti sono i ristoranti che hanno la località scelta
}
Allora, presupponendo di non aver sbagliato niente ( invece avrò sbagliato tutto :) ), spero sia chiaro ciò che voglio fare... praticamente una persona poi cliccando su mappa vorrei che si aprisse la mappa di quel ristorante di cui sul db ho latitudine e longitudine, ma non so come fare. Il top sarebbe fare aprire la mappa di quel ristorante proprio affianco alla tabella, ma anche in un'altra pagina nuova ( che poi con una chiamata ajax farò aprire nel div in cui lavoro ) andrebbe benissimo. Inoltre se mi potete dare una mano con l'immagine ve ne sarei grato :)
 

marcoint

Utente Attivo
8 Gen 2014
58
0
0
Rettifico la tabella che ho postato che fa schifo con questa:
PHP:
<?php
$numcampi=mysql_num_fields($rs);
$nrighe=mysql_num_rows($rs);
echo "<table border=1><tr>";
for($j=0;$j<$numcampi;$j++)
 echo "<td>".mysql_field_name($rs,$j)."</td>";
 echo "</tr>";
 
for($i=0;$i<$nrighe;$i++)  
{echo"<tr>";
 for($j=0;$j<$numcampi;$j++)
 echo"<td>". mysql_result($rs,$i,$j)."</td>";
 echo"</tr>";
 }
 echo"</table>";

?>

In ogni caso ci vorrei aggiungere un campo image che vorrei prendere dal db e un campo link mappa che prenda le coordinate salvate sul db e faccia la mappa del ristorante. In alternativa faccio il contrario, cioè creo una lista come sul sito di borgo e premendo su un ristorante oltre a far uscire la mappa estraggo le informazioni con questa tabella dal db.. Però non so come fare..
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [PHP] Passare dati tra record PHP 4
M [MS Access] Passare i dati di una query da form a report MS Access 3
SimooRu [PHP] Non riesco a far passare i dati con i form PHP 4
M Passare dati in un array da statement mysqli PHP 2
D passare dati array da un form GET ad un'altra pagina PHP 2
A [JQUERY] Passare dati stessa finestra (Nyromodal) jQuery 0
T Passare dati (ID di sessione) tra le varie activity di un app android Sviluppo app per Android 1
L Passare ad uno script PHP i dati di un form incluso l'upload di un'immagine Ajax 0
A passare i dati un form ad un altra pagina PHP 15
F Passare dati raccolti ad una pagina jQuery 1
G aiuto:passare dati da html a php PHP 1
C property: passare dati tra uc e aspx ASP.NET 0
G Passare dati da immagini diverse Classic ASP 1
P Passare solo alcuni parametri a script per CSV PHP 0
D passare valori da database sql a php PHP 1
P Passare contenuto in value. Ajax 1
P Passare i risultati di un foreach in un modal. Help! PHP 2
F Passare variabile a pulsante in finestra modale PHP 2
P jButton1ActionPerformed passare parametri ad altra classe Java 2
Fendo59 Passare parametri con metodo POST a una pagina in un frame PHP 0
A Problema nel passare la variabile PHP 0
I Passare dei parametri in javascript PHP 0
N PDF fpdi passare variabile PHP 4
F Come passare una variabile al modal di bootstrap PHP 1
G Passare path directory in POST PHP 2
F Passare una variabile php dal DB mysql alla pagina PHP 3
M [PHP] Passare variabile di sessione con metodo GET PHP 10
G [Javascript] Passare un valore via querystring Javascript 1
L [PHP] Passare variabile PHP 3
AMONRA75 [PHP] passare una variabile in una finestra MODAL PHP 1
P Come passare var1 a pagina php1 e var1,var2 a pagina php2 PHP 5
M Passare una varibile da PHP a Javascript PHP 2
B [PHP] passare valore ad un form su un'altra pagina PHP 4
K [PHP] Paginazione Wordpress: passare variabile PHP 6
F [Javascript] select list concatenate - passare valore dalla prima alla seconda Javascript 7
T [PHP] passare una variabile in una finestra MODAL di bootstrap PHP 3
V Passare a PHP pagina bootstrap creata in HTML PHP 1
A passare parametri ad un file php prima di utilizzare $.get jQuery 1
A [PHP] Passare variabili tra pagine diverse PHP 2
A [Javascript] Passare variabile tra pagine html diverse Javascript 13
D [ASP] Passare in array stringa dinamica Classic ASP 2
K [PHP] Passare valore select PHP 2
andreacata31 [ASP.Net] Passare da Windows Application a sito Web ASP.NET 1
Rikk73 Passare come argomento in un metodo un parametro della classe istanziata PHP 0
I Passare record Database access a Java Javascript 0
C Passare dal terzo al secondo livello di un dominio su Aruba Domini 2
A Passare due variabili con Javascript. Javascript 1
Marco_88 Passare un valore prima dell'invio del form Ajax 0
A Passare variabili da javascript a PHP PHP 8
A Passare il titolo al posto dell'id PHP 1

Discussioni simili