Google Maps API v3

Voici une classe PHP assez complète qui vous permet de manipuler facilement des Google Maps. Cette classe gère pas mal de choses au niveau du javascript d’une gmap comme la gestion de catégories de marqueurs, les itinéraires, l’insertion de flux XML, la clusterisation (regroupement de marqueurs), l’affichage d’infobulles, la geolocalisation d’une adresse etc…On utilise donc cette classe pour générer le javascript dont on pourra se servir dans notre code HTML.

On peut facilement obtenir des rendus de ce style :

La classe est plutôt bien commentée (en anglais) mais voici 2 exemples d’utilisations de la classe qui montrent différentes possibilités. Cela permet également de se faire une idée sur le code source généré.

Attention : les requêtes de geocoding sont limitées à 15000/24h/IP, il se peut donc que les démos ne fonctionnent pas en fin de journée.

Google Maps simple avec marqueurs et itinéraires

...
require('GoogleMapAPIv3.class.php');
$gmap = new GoogleMapAPI();
$gmap->setDivId('test1');
$gmap->setDirectionDivId('route');
$gmap->setCenter('Nantes France');
$gmap->setEnableWindowZoom(true);
$gmap->setEnableAutomaticCenterZoom(true);
$gmap->setDisplayDirectionFields(true);
// $gmap->setClusterer(true);
$gmap->setSize('600px','600px');
$gmap->setZoom(11);
$gmap->setLang('fr');
$gmap->setDefaultHideMarker(false);
// $gmap->addDirection('nantes','paris');
// cat1
$coordtab = array();
$coordtab []= array('nantes france','Nantes','<strong>html content</strong>');
$coordtab []= array('carquefou france','Carquefou','<strong>html content</strong>');
$coordtab []= array('vertou france','Vertou','<strong>html content</strong>');
$coordtab []= array('rezé france','Rezé','<strong>html content</strong>');
// $gmap->setIconSize(20,34);
$gmap->addArrayMarkerByAddress($coordtab,'cat1','http://maps.gstatic.com/intl/fr_fr/mapfiles/ms/micons/red-pushpin.png');
// cat2
$coordtab = array();
$coordtab []= array('saint-herblain france','Saint-herblain','<strong>html content</strong>');
$coordtab []= array('bouguenais france','Bouguenais','<strong>html content</strong>');
$coordtab []= array('orvault france','Orvault','<strong>html content</strong>');
$gmap->addArrayMarkerByAddress($coordtab,'cat2');
// cat3
$coordtab = array();
$coordtab []= array('48.8792','2.34778','test','<strong>test paris</strong>');
$gmap->addArrayMarkerByCoords($coordtab,'cat3');
$gmap->generate();
echo $gmap->getGoogleMap();
...

Démonstration
Démonstration en full screen

Code source de l’exemple : Télécharger le fichier "simple.php"

Google Maps avancée avec clusterisation (1600 marqueurs) issus d’un fichier KML

...
require('GoogleMapAPIv3.class.php');
$gmap = new GoogleMapAPI();
$gmap->setDivId('test1');
$gmap->setCenter('paris France');
$gmap->setDisplayDirectionFields(true);
$gmap->setClusterer(true);
$gmap->setSize('100%','100%');
$gmap->setZoom(5);
$gmap->addKML('../googlemap/kml/Locator3RF.kml','radars_fixes','../googlemap/Locator3RF.png');
$gmap->generate();
echo $gmap->getGoogleMap();
...

Démonstration (zoomer/dezoomer pour voir la clusterisation)

Code source de l’exemple : Télécharger le fichier "advanced.php"

Pour utiliser la clusterisation vous devez avoir les fichiers suivants :
Image du cluster
Fichier KML

Télécharger la GoogleMapAPIv3.class.php

Télécharger sur le repository github

comments powered by Disqus