Utilisation du web service de map24 pour la correction d'adresse

Soyez le premier à donner votre avis sur cette source.

Vue 8 077 fois - Téléchargée 320 fois

Description

Permet d'utiliser le web service de Map24 pour corriger des adresse (utilse pour avoir des base de données saines, et de vérifier les adresses passer dans un formulaire par exemple)

Source / Exemple :


/**

  • Classe qui gère les adresses
  • @author Ryo Sensei
  • /
class Adresse { var $Street; var $Zip; var $City; var $Country; var $Result; var $conf; var $header; var $geocoder; function Adresse(){ include_once(PATH."/conf.php"); include_once(PATH."/Map24Geocoder/Map24Geocoder.php5"); $this->header = new RequestHeader(); $this->header->Map24ID = $CONF['MAP24_ID']; $this->header->ClientID = $CONF['SESSION_ID']; $this->geocoder = new Map24Geocoder($CONF['MAPTP_SYSTEM'],$CONF['MAP24_ID'],$CONF['SESSION_ID']); } /**
  • Fixe l'adresse
*
  • @param string $street rue + numéro
  • @param string $zip zipcode
  • @param string $city ville
  • @param string $country Pays (FR,NL,BE...)
  • @return Adresse
  • /
function setAddress($street="",$zip="",$city="",$country=""){ try{ if($street=="")throw new Exception("La rue ne doit pas être vide<br>"); if($zip==""&&$city="")throw new Exception("Veuillez renmplir au moins le code postal ou la ville<br>"); if($country=="")throw new Exception("Le pays est obligatoire<br>"); $this->Street = $street; $this->Zip = $zip; $this->City = $city; $this->Country = $country; }catch(Exception $e){ echo $e->getMessage();flush(); } } /**
  • Configuration
  • @deprecated
  • @param unknown_type $var nom de la variable
  • @param unknown_type $val valeur
  • /
function config($var,$val){ $this->conf[$var] = $val; } /**
  • Interroge le serveur et effectue la recherche de l'adresse
*
  • /
function search(){ try{ //if(!isset($this->conf[PATH]))throw new Exception("Veuillez configurer le chemin vers les classes"); //$PATH = (isset($PATH)) //$PATH = $this->conf[PATH]; $SynchronizeClient = FALSE; $request = new GeocodeAddressesRequest(); $request->Addresses = array(); $request->Addresses[0]= new Address(); $request->Addresses[0]->Street= $this->Street; $request->Addresses[0]->ZIP=$this->Zip; $request->Addresses[0]->City=$this->City; $request->Addresses[0]->Country=$this->Country; $request->MaxNoOfAlternatives = 1; $request->SynchronizeClient = $SynchronizeClient; $response = $this->geocoder->GeocodeAddresses($this->header,$request); if(isset($response->GeocodedAddresses) && count($response->GeocodedAddresses) > 0){ for($objIdx=0;$objIdx<count($response->GeocodedAddresses);$objIdx++){ $result = new Result($response->GeocodedAddresses[$objIdx]->Alternatives[0]); $counter++; } }else{ $result = null; } $this->Result = $result; }catch(Exception $e){ echo $e->getMessage();flush(); } } function toString(){ print_r($this->Result); } function getQuality(){ return $this->Result->Quality; } } /**
  • Classe de Résultat
*
  • /
class Result{ var $HouseNo; var $Street; var $ZIP; var $City; var $County; var $State; var $Country; var $Quality; /**
  • Constructeur
*
  • @param unknown_type $obj
  • /
function result($obj){ foreach($this as $var=>$null){ $this->$var = $obj->$var; } } /**
  • Retourne le niveau de qualité du résultat
*
  • @return string niveau de qualité
  • /
function getQuality(){ return $this->Quality; } } /**
  • Exemple d'utilisation
  • /
// Chemin vers les librairies Map24 define("PATH","includes"); $adresse = new Adresse(); $adresse->setAddress("20 r. du pres","55000","","fr"); $adresse->config(PATH,"includes"); $adresse->search(); // Acces au résultat if($adresse->getQuality()=="Exact"){ $Street = $adresse->Result->Street; $House = $adresse->Result->HouseNo; $zipcode = $adresse->Result->Zip;//etc.... }

Conclusion :


Necessite une inscription (gratuite) chez Map24.fr et de télécharger les classes. (dans l'exemple, dans un dossier includes/Map24Geocoder/)

Codes Sources

Ajouter un commentaire Commentaires
Messages postés
9
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
12 juillet 2010

J'ai réussi à m'inscrire sur le site Map24 mais je n'ai pas trouvé le lien où on peut télécharger les classes à utiliser ...
Pouvez-vous m'éclairer ? Merci.
Messages postés
496
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
Hey bien! Ça déchire!! 10/10!!!
En plus c'est codé en orienté objet! Bel effort!
Messages postés
24
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
8 avril 2010

Salut! Sur le site, lorsqu'on est inscrit, ou peut-on télécharger les classes ?
Messages postés
8
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
29 décembre 2008

oui bien sur,
mais la, ça ça marche sur du 5 et du 6...
Et de toutes façons, c'est pas parce que le 6 va sortir que tous les serveurs vont passer sous 6...
Je travail encore sur des serveurs en 4...
Messages postés
240
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009

L'objet existait déjà sous PHP4, renseigne toi...
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.