Esercitazione Google Maps

Documenti analoghi
Phpmyadmin. Creazione Database

Jamio openwork data source connector for QlikView

Cloud GDrive, Dropbox

Scelta del Browser. Accesso Area Redazione

Cosa sono i report. Prof. Emanuele Papotto 05/10/2010

LOGVIEWER MANUALE D USO

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati

Download applicazione LOCUS

Guida a WordPress. 1. Iscrizione a Wordpress

Come creare un modulo per Joomla?

Digitiamo il codice base di una pagina secondo lo standard HTML5 e inseriamo un titolo <h1> con il testo Benvenuti sulla mia homepage

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script

Visualizzare o modificare il codice sorgente del documento (per utenti avanzati,linguaggio HTML).

Plugin di integrazione con il CMS Joomla

Come realizzare delle select concatenate con PHP e jquery?

Il software Epi Info

WORD PROCESSING.

Liste a puntatori: un esercizio passo passo

Numera - Gruppo BPER. Manuale d installazione Moduli di Pagamento Emergento Gateways

Sas OnDemand for Academics & SAS e-learnings. Metodi Quantitativi per Economia, Finanza e Management

6 - Calibrazione di una mappa in formato raster su griglia di parametri ortogonali.

GUIDA ALL INSERIMENTO DI TESTI E DOCUMENTI NEL NUOVO SITO DEL COMUNE DI CERVIA Versione 1.0

L INTERFACCIA GRAFICA DI EXCEL

Come creare un nuovo Prodotto per ebay

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

Nella finestra successiva dovremo cercare l immagine che vogliamo appiccicare nel file.

Manuale d uso Gestionale NOVACAF

Cultura Tecnologica di Progetto

Utilizzo delle Maschere in Microsoft Access

DMX LIGHTPLAYER Introduzione...2 Libreria DMX...3 Programmazione dei canali...7 Creazione di uno show...11

SISTEMA GESTIONE TOMBINI

Manuale d uso della Posta TBS. Oracle Collaboration Suite

Corso sul PACCHETTO OFFICE. Modulo Access

Guida all utilizzo della Piattaforma per la staffetta di Scrittura Creativa Manuale pratico per docenti e tutor

Operazioni di Ordinamento

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

Servizi e-business Ispezioni e Collaudi Snam Rete Gas Manuale Ispettore

PER ACCEDERE CLICCARE SU LOGIN. QUINDI IMMETTERE USERNAME E PASSWORD (uguale a quella della posta elettronica) E CLICCARE SU Login

Creare un ombra suggestiva

INTRODUZIONE A WORD CHE COS E WORD AVVIARE E CHIUDERE WORD INTERFACCIA UTENTE DI WORD

Ordinare dati. Microsoft Access. Ordinare dati. Ordinare dati. Ordinare dati. Ordinare dati. Query (II), filtri. L ordinamento crescente:

GUIDA OPERATIVA SULLA PIATTAFORMA MOODLE INTEGRATA AL REGISTRO ELETTRONICO MASTERCOM

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

Esercitazione 11. Liste semplici

ISTRUZIONI D USO ISTRUZIONI D USO

Il proprietario di una catena di negozi vuole confrontare il reddito (in euro) dei suoi 5 negozi, riportato nella seguente tabella

Al sistema lo studente accede tramite CODICE FISCALE e PIN (il PIN viene attribuito dalla Segreteria Studenti ad immatricolazione avvenuta).

Definizione di classi. Walter Didimo

Registrazione al Portale eprocurement ATAC e accesso all Albo Fornitori MANUALE FORNITORE

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

Tutorial Calcolatrice

Impostazioni Gigaset T440/T640 PRO

Le Apps di Google a scuola

Riunioni virtuali con Windows Vista

MY SQL Guida MySQL di base

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

TRAFERIMENTO AL NAVIGATORE. A questo punto è possibile trasferire il nostro percorso al navigatore.

AREAS Accessi. Sistema Prenotazione Cittadino

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Corso di Complementi di Scienza delle Costruzioni 2

Mon Ami 3000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 3000

La Back Office Console consente di costruire lo scheletro degli schema.

Nuove pagine e collegamenti

Guida introduttiva. Introduzione a Impress Presentazioni con OpenOffice.org

ACCESSO AI SERVIZI RISERVATI DI RTRT

Tesina esame Programmazione di Sistemi Mobile Realizzato da Roberto Giuliani Matricola icloud. Inserimenti, modifiche e cancellazioni

Comune di Firenze. Sistema Informativo Geologico del Sottosuolo

MANUALE DI CARICAMENTO DELLE EPIGRAFI

Connessione con MySQL

03FYZ TECNICHE DI PROGRAMMAZIONE Esercitazione di Laboratorio 03 es.1 23 Marzo 2016

HIGHCHARTS. Federico Martinelli

Servizio Conservazione No Problem

Manuale per l utilizzo del backend FIDAL.IT. Versione 1.0

Capitolo 30: Importazione di una pianta esterna non creata con Masterchef

TUTORIAL LIBRI IN SIMBOLI

Versione 1.7. Manuale per Creatori Corsi. Parte I: Accesso e Creare Risorse

DATIFATT MANUALE OPERATIVO

Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione

PORTALE WEB DIOCESI FORLI -BERTINORO. Sezione SACRAMENTI. Duplicati degli atti di battesimo, cresima e matrimonio

Transcript:

Esercitazione Google Maps Esercizio 1 Visualizzare i risultati della API comuni.php su una mappa geografica. Soluzione Come prima cosa, occorre creare una chiave di utilizzo della libreria Google Maps. Per fare 1 questo, andiamo sul sito della Google API Console. Se non abbiamo un account google, dobbiamo registrarci e poi possiamo loggarci. Una volta loggati al sistema, appare una schermata come quella mostrata nella figura seguente. Nel menu a sinistra, selezionare Credenziali e poi Crea credenziali e Chiave API: 1 https://console.developers.google.com/

A questo punto è stata creata una nuova chiave. Copiare il valore della nuova chiave da qualche parte in modo che poi possa essere utilizzata. Ora occorre abilitare la nuova chiave ad accedere alle API di Google Maps. Per fare questo, nel menu a sinistra selezionare Dashboard e quindi abilita API. Selezionare Google Maps Javascript API e poi Abilita. Ora passiamo a modificare il file index.html in modo da includere la libreria di Google Maps. Nell header del file, immediatamente dopo l inclusione della libreria Highcharts e prima dell inclusione del nostro script, aggiungiamo la seguente libreria: <script async defer src="https://maps.googleapis.com/maps/api/js?key=mia_chiave&callback=in izializza"> </script> avendo l accortezza di sostituire MIA_CHIAVE con la chiave che abbiamo appena creato. Ora dobbiamo creare un div che conterrà la mappa. Creiamolo subito dopo il div con id id_div: <div id="mappa"></div> Dobbiamo anche definire un foglio di stile css che specifica le dimensioni della mappa. Pertanto, prima dell inclusione di tutte le librerie javascript, includiamo un foglio di stile: <link rel="stylesheet" href="css/stile.css" type="text/css"> Ora il file index.html è pronto. Passiamo a definire il foglio di stile. Nella cartella css creiamo un file stile.css, al cui interno definiamo le dimensioni della div che abbiamo appena creato, ad esempio fissiamo la larghezza all intero schermo e l altezza a 400px:

#mappa height: 400px; width: 100%; Ora passiamo alla creazione della mappa. Apriamo il file main.js. Quando abbiamo incluso la libreria di Google Maps nel file index.html, abbiamo scritto anche callback=inizializza. Questo significa che la libreria di Google Maps eseguirà la funzione inizializza per la creazione della mappa. Se si vuole creare una mappa direttamente al caricamento della pagina, occorre scrivere tutto il codice dentro la funzione inizializza. Nel nostro caso, però, la mappa va caricata solo nel caso in cui venga selezionato il pulsante comuni e poi coordinate. Quindi definiamo la funzione inizializza dentro il file main.js, lasciandola vuota. La creeremo al momento opportuno: function inizializza() Ora dobbiamo creare la mappa in corrispondenza della pressione del tasto coordinate. Dobbiamo distinguere il caso in cui venga pressato il tasto coordinate da quello in cui venga pressato il tasto url. Nel caso in cui si preme il tasto coordinate, dovrà essere invocata una funzione crea_mappa, altrimenti verrà invocata la funzione crea_tabella: if(type == 'coordinate') $.getjson('api/comuni-get.php?type=' + type, crea_mappa); else $.getjson('api/comuni-get.php?type=' + type, crea_tabella); Definiamo ora la funzione crea_mappa, in cui creiamo la mappa: function crea_mappa(data) var opzioni = zoom : 8, center : lat: 43.029533, lng: 13.174643 ; var map = new google.maps.map(document.getelementbyid('mappa'), opzioni); Abbiamo definito una variabile opzioni, che è un array associativo contenente tutte le opzioni da passare alla mappa. In particolare abbiamo settato il centro della mappa (in uno dei comuni terremotati) e lo zoom. Poi creiamo la mappa invocando la funzione messa a disposizione da Google. Vediamo ora come inserire dei marker nella mappa. var marker = new google.maps.marker( position: lat: valore_lat, lng: valore_lng, map: map );

Per creare un marker, occorre specificare almeno la posizione del marker e la mappa su cui si vuole inserire. Nel nostro caso vogliamo inserire tanti marker quanti sono i comuni terremotati. Per fare questo, occorre modificare l API comuni.php in modo da preparare i dati direttamente per la creazione del marker. Apriamo il file comuni.php. Dobbiamo modificare il codice in modo che nel caso in cui si voglia invocare l API con parametro coordinate lo script invochi una funzione get_risultati_mappa, altrimenti è chiamata la funzione get_risultati: switch($type) case 'coordinate': $sql=costruisci_query(array('comune', 'latitude','longitude'),"comuniterremotati", null,""); $risultato = get_risultati_mappa($sql); break; case 'url': $sql = costruisci_query(array('comune', 'url'),"comuniterremotati", null,""); $risultato = get_risultati($sql); break; default: echo json_encode(array("tipo non riconosciuto")); exit(1); echo $risultato; Definiamo ora la funzione get_risultati_mappa, dentro il file funzioni.php. Questa funzione deve restituire un array numerico fatto da tanti array associativi, uno per ogni comune: [, coordinate : lat: 32.2, lng: 12.3, comune : Pisa ],... coordinate : lat: 34.3, lng: 12.4, comune : Roma Per fare questo, definiamo un array $return in cui mettiamo i risultati, eseguiamo quindi la query tramite la select e scorriamo l array $risultato tramite ciclo for: function get_risultati_mappa($sql) include_once('../api/config.php'); $risultato = select($db,$sql);

$return = array(); for($i = 0; $i < count($risultato); $i++) $return[$i]['comune'] = $risultato[$i]['comune']; $return[$i]['coordinate'] = array( 'lat' => floatval($risultato[$i]['latitude']), 'lng' => floatval($risultato[$i]['longitude'])); closedb($db); return json_encode($return); Ricordiamoci di trasformare latitudine e longitudine in float. Ritorniamo al file main.js e aggiungiamo tanti markers quanti sono quelli contenuti in data: for(var i = 0; i < data.length; i++) var marker = new google.maps.marker( position: data[i].coordinate, map: map ); Aggiungiamo ora una infowindow per ogni marker, dentro il ciclo for: var infowindow = new google.maps.infowindow( content: data[i].comune, position : data[i].coordinate ); Abbiamo specificato il contenuto della infowindow e la posizione. Associamo ora un ascoltatore alla infowindow: google.maps.event.addlistener(marker,'click', (function(marker,content,infowindow) return function() infowindow.setcontent(content); infowindow.open(map,marker); ;)(marker,data[i].comune,infowindow)); Abbiamo creato una funzione anonima che riceve in ingresso tre parametri: marker, content e infowindow e abbiamo invocato questa funzione passando i parametri attuali marker, data[i].comune e infowindow.