Lifecode s.r.l. home
home

Soluzioni avanzate per il web

hvnGoogleMaps, una class PHP per gestire le mappe di Google Maps

HvnGoogleMaps è una classe scritta in PHP che permette di creare e gestire una o più mappe di Google Maps. E' possibile creare una o più mappe sulla stessa pagina ed è possibile associare ad ogni mappa un illimitato numero di marcatori. Rispetto alle classi di terze parti, HvnGoogleMaps permette di posizionare un marcatore in due modi:

  1. inserendo Longitudine e Latitudine
  2. inserendo l'indirizzo in formato Google Maps (numero civico, indirizzo, cap, citta, stato)

E' infine possibile indicare un'icona da associare al marcatore in modo da poterli eventualmente distinguere l'uno dall'altro.

HvnGoogleMaps è rilasciata sotto licenza GPL. Con questo Lifecode intende concedere ai licenziatari il permesso di modificare questo script, di copiarlo e di ridistribuirlo con o senza modifiche, gratuitamente o a pagamento.

HvnGoogleMaps vuole solo essere un esempio del metodo di lavoro Lifecode.

Come funziona?

Il seguente è un esempio di come realizzare una semplice mappa. L'unica voce da impostare è la chiave di Google (eventualmente anche cambiare il centro della mappa). La chiave di Google è disponibile a questo indirizzo: http://code.google.com/intl/it-IT/apis/maps/signup.html ed è ovviamente gratuita. A questo punto basta inserire i metodi SetHeadJS tra i tag HEAD e buildMap() tra i tag BODY. La mappa è pronta per essere visualizzata.

<?php
require_once('./
hvngooglemaps/hvngooglemaps.php');
   

$gmap = new hvnGoogleMaps();
$gmap->setLibraryPath('library');
$gmap->setIconsPath('icons');
$gmap->setGoogleKey('ABQIAAAApJzSq7xr7DN_Ro....blabla..fullkeyhere..');
$gmap->setMapCenter('46.5054211''11.3586754');
$mappa = $gmap->buildMap();

/// output
echo '<html>';

    
/// code to place inside HEAD tag
    
echo '<head>';
        echo 
$gmap->setHeadJS();
    echo 
'</head>';
    
/// map to place everywhere inside BODY tag
    
echo '<body>';
        echo
$mappa;
    echo 
'</body>';
echo 
'</html>';
?>

E' possibile aggiungere un numero illimitato di marcatori. I metodi sono due. addMarker() richiede in ordine: longitudine, latitudine, una descrizione per la nuvoletta del marcatore e (opzionale) il nome di un'icona. L'icona deve essere all'interno della cartella hvngooglemaps. Qualora si volesse indicare un'icona al di fuori della cartella, basta inserirne l'indirizzo assoluto (http://blabla.it/miaicona.gif).

..
$gmap->addMarkerFromAddress('1, via dei mille, bologna, italia''Ciao!''me.png');
$gmap->addMarkerFromAddress('91, corso garibaldi, ancona, italia''Hello!');
$gmap->addMarker('60.1846083''24.9429371''Hi there!''me_cold.png');
..

Opzioni di visualizzazione

..
$gmap->setMapId('myExample');
$gmap->setMapZoom(3);
$gmap->setMapCenter('46.5054211''11.3586754');
$gmap->setMapWidth('300px');
$gmap->setMapHeight('300px');
$gmap->showControls(true);
$gmap->setControlsFormat('small');
$gmap->showMapFormat(false);
$gmap->setMapVisualization('G_NORMAL_MAP');
..

 Ecco il codice completo del file example.php

<?php
/**
* Hiveon Google Maps 1.2.0
* Uses Google Maps Mapping API to create customizable
* Google Maps that can be embedded on your website
*
* @author       Tommaso Soprana <info@lifecode.it>
* @copyright    2009-2010 Lifecode srl
*/
 
require_once('
./hvngooglemaps/hvngooglemaps.php');

$gmap = new hvnGoogleMaps();
$gmap->setLibraryPath('library');
$gmap->setIconsPath('icons');
$gmap->setGoogleKey('ABQIAAAApJzSq7xr7DN_Ro....blabla..fullkeyhere..');
$gmap->setMapId('myExample');
$gmap->setMapZoom(3);
$gmap->setMapCenter('46.5054211''11.3586754');
$gmap->setMapWidth('300px');
$gmap->setMapHeight('300px');
$gmap->showControls(true);
$gmap->setControlsFormat('small');
$gmap->showMapFormat(false);
$gmap->setMapVisualization('G_NORMAL_MAP');

$gmap->addMarkerFromAddress('1, via dei mille, bologna, italia''Ciao!''me.png');
$gmap->addMarkerFromAddress('91, corso garibaldi, ancona, italia''Hello!');
$gmap->addMarker('60.1846083''24.9429371''Hi there!''me_cold.png');

    
$mappa = $gmap->buildMap();     
    
/// outp
ut
echo '<ht
ml>';
    
/// code to place inside HEAD tag
    
echo '<head>';
        echo 
$gmap->setHeadJS();
    echo 
'</head>';
    
/// map to place everywhere inside BODY tag
    
echo '<body>';
       
echo $mappa;
    echo 
'</body>';
echo 
'</html>';
?>

Download

Scarica hvnGoogleMaps (versione 1.2.0)

Changelog:

  • [Versione 1.2.0] (attuale) Corretto un bug che impediva la gestione di più mappe su una stessa pagina.
  • [Versione 1.0.1] Corretto un bug che bloccava completamente lo script nel caso in cui l'indirizzo ritornato da Google Maps contenesse caratteri accentati.