Quand j’ai commencé mon stage chez EklaBlog, ma première mission fut : Permettre aux blogueurs d’ajouter facilement une carte Google Map à leurs articles…

Je commençais à réaliser alors une class en php qui allait me faciliter la tâche, pour que je puisse par la suite, et avec de simple appelles de méthodes:

  1. Générer la map en fonction d’une adresse entré manuellement (utilise GClientGeocoder()) .
  2. Sélectionner différents styles de marqueurs .
  3. Sélectionner différentes couleurs de marqueurs .
  4. Supporter l’insertion de plusieurs adresses, j’ai testé jusqu’à 10 adresses.
  5. Personnaliser le texte de l’info bulles.
  6. Personnaliser le lien à cliquer en cas de plusieurs adresses.

La class est testé  _et marche très bien _ sous:

  • FF 3.0 +
  • IE 8
  • Opera 10.1 +
  • Chrome 5

Mais elle doit marcher sans problèmes sur les autres navigateurs/versions.

"Happygooglemap" une class php pour les carte Gmap

—————————————————————
How to use:
—————————————————————
1. Get a  google map key depuis http://www.google.com/apis/maps/signup.html
2. Extraire la class HappyGoogleMap .
3. Créer un fichier php.
4. Commencer par inserer le code d’exemple en dessous .

—————————————————————
Code Sample:
—————————————————————


<?php
require'HappyGoogleMap.class.php';
//Creation de l'instance de l'objet avec votre Key
$gm = new HappyGoogleMaps("ABQIAAAAznbYKnw5PiIZDEZzbV-nAhQBjb4qLn9hyOlj0O-tfz7ttOeKbBT13HoY4WFnV8XOYQb_1c-SdVIQXg");
//Definition du type du marqueur
$gm->SetMarkerIconStyle('PIN');
//Definition du niveau de zoom
$gm->SetMapZoom(10);

//definition de la 1ere adresse
$gm->SetAddress("creteil, paris");
//texte dans l'info-bulle
$gm->SetInfoWindowText("Ceci est Creteil paris.");

//definition de la 2eme adresse
$gm->SetAddress("Fes, Morocco");
$gm->SetInfoWindowText("Ceci est ma ville.");
$gm->SetSideClick('Fes, Maroc');
?>
<html>
<head>
<title>Happy Google Map</title>
<?php echo $gm->gMapsKey(); ?>
</head>
<body>
<?php echo $gm->mapHolder(); ?>
<?php echo $gm->initJs(); ?>
<?php echo $gm->getSideClick(); ?>
<?php echo $gm->unloadMap(); ?>
</body>
</html>

—————————————————————
Modification des propriétés:
—————————————————————

//Activer/Desactiver la Map Continuous Zooming
$gm->mContinuousZoom = FALSE; // default

//Activer/Desactiver le zoom par double clique
$gm->mDoubleClickZoom = FALSE; // default

//Activer/Desactiver l'echelle de la carte (MI/KM)
$gm->mScale = TRUE; // default

//Activer/Desactiver Map Inset
$gm->mInset = FALSE; // default

//Activer/Desactiver le choix du Type de la carte (Map/Satellite/Hybrid)
$gm->mMapType = FALSE; // default

—————————————————————
Ajuster la largeur et longueur de la carte:
—————————————————————


$gm->SetMapWidth(500); // default = 300

$gm->SetMapHeight(500); // default = 300

—————————————————————
Ajuster le zoom:
—————————————————————

$gm->SetMapZoom(10); // default = 13

—————————————————————

Personnaliser les marqueurs sur la carte:
—————————————————————

La class vient avec de nombreux choix concernant les marqueurs, et ce me pour faciliter la tache par la suite, et proposer au utilisateur final un produit +/- complet…


//Styles

$gm->SetMarkerIconStyle('FLAG');
$gm->SetMarkerIconStyle('GT_FLAT'); // default
$gm->SetMarkerIconStyle('GT_PILLOW');
$gm->SetMarkerIconStyle('HOUSE');
$gm->SetMarkerIconStyle('PIN');
$gm->SetMarkerIconStyle('PUSH_PIN');
$gm->SetMarkerIconStyle('STAR');

//Colors:

$gm->SetMarkerIconColor('PACIFICA'); // default
$gm->SetMarkerIconColor('YOSEMITE');
$gm->SetMarkerIconColor('MOAB');
$gm->SetMarkerIconColor('GRANITE_PINE');
$gm->SetMarkerIconColor('DESERT_SPICE');
$gm->SetMarkerIconColor('CABO_SUNSET');
$gm->SetMarkerIconColor('TAHITI_SEA');
$gm->SetMarkerIconColor('POPPY');
$gm->SetMarkerIconColor('NAUTICA');
$gm->SetMarkerIconColor('DEEP_JUNGLE');
$gm->SetMarkerIconColor('SLATE');

—————————————————————
Personnaliser le texte de l’info-bulle
—————————————————————

$gm->SetInfoWindowText("This is the address # 1.");

Note: Si la méthode (SetInfoWindowText) n’est pas appelé, l’adresse serait le texte par defaut dans l’info-bulle.

Télécharger le zip contenant la class et un exemple de son utilisation.

Toute utilisation, modification ou reproduction de la class est bien sur autorisée, ara hi wkane…