Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILISATION DU WEB SERVICE DE MAP24 POUR LA CORRECTION D'ADRESSE


Information sur la source

Catégorie :Divers Classé sous : map24, geolocalisation, adresse, correction, php Niveau : Initié Date de création : 07/07/2008 Date de mise à jour : 07/07/2008 13:01:27 Vu / téléchargé: 3 565 / 121

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

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

  • /**
  • * 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....
  • }
/**
 * 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/)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

07 juillet 2008 13:01:27 :
Correction de l'exemple

Commentaires et avis

signaler à un administrateur
Commentaire de webdeb le 08/07/2008 12:51:56 8/10

Je ne connaissais pas du tout Map24.fr. C'est cool qu'il y'est une classe capable d'appeler leur webservice. Néanmoins, il est dommage que celle-ci ne soit pas écrite en PHP 5 à l'aube de la sortie de PHP 6...

++

signaler à un administrateur
Commentaire de RyoSensei le 08/07/2008 12:53:53

Oui peut etre... mais bon, le php5 marche aussi sous 6. Et il n'y a pas de grande révolution, en tout cas je ne pense pas que mon code écris en 5 soit différent du 6.
Merci quand même

signaler à un administrateur
Commentaire de webdeb le 08/07/2008 15:36:19

Tu n'as pas compris. Ton code est écrit en PHP 4 alors que tu devrais l'écrire en PHP 5 sachant que PHP 4 s'arrête officiellement dans un mois tout juste et que PHP 6 arrive à grand pas. Il est temps de passer à PHP 5  et laisser PHP 4 mourrir en paix ^^

signaler à un administrateur
Commentaire de RyoSensei le 08/07/2008 15:39:53

php4?
depuis quand il y a des objets en php4?
Si tu as le temps, traduit moi mon code en php5, j'aimerai bien voir la différence

signaler à un administrateur
Commentaire de psykocrash le 10/07/2008 22:51:35

L'objet existait déjà sous PHP4, renseigne toi...

signaler à un administrateur
Commentaire de RyoSensei le 11/07/2008 17:52:29

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...

signaler à un administrateur
Commentaire de BURN le 14/07/2008 00:46:28

Salut! Sur le site, lorsqu'on est inscrit, ou peut-on télécharger les classes ?

signaler à un administrateur
Commentaire de GillesWebmaster le 14/07/2008 14:00:07 10/10

Hey bien! Ça déchire!! 10/10!!!
En plus c'est codé en orienté objet! Bel effort!

signaler à un administrateur
Commentaire de zoosil le 18/07/2008 07:03:28

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.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Adresse invisible ? [ par redpooka ] Existe t'il un moyen php pour qu'une partie de l'adresse soit invisible ?Par exemple quand on utilise :&lt;script&gt;location.href="valide_com_info.ph SVP : Aide pour mon premier formulaire. [ par davggy ] Salut à tous.Je suis tout tout débutant et très intrigué par les capacités du PHP.Mon premier souhait est de récupérer par mail les informations fourn Adresse mémoire d'une variable [ par jockos ] Comment connaitre l'adresse mémoire d'une variable PHP ?Par exemple, en C++, on utilise l'opérateur de référence "&".Mais en PHP, je me demande si cel php: barre d'adresse: + [ par matmar49 ] voila le contenu de la barre d'adresse:recap.php?adress=11+rue+des+lilasdans ma page php, je veux recuperer ce qu'il y a dans la barre d'adresse:&lt;i pb de mail avec X400 (php) [ par guicore ] SalutJe dois envoyer un mail à une personne qui ne possède pas d'adresse smtp (type perssonne@personne.fr) mais qui a une adresse X400 (c=..;..) comme liste déroulante, php, sql [ par gypsi3000 ] Je souhaiterai faire afficher une liste d'adresse web répertoriée dans une base de données depuis un menu déroulant qui correspond aux thèmes identifi redirection dans un formulaire [ par rastagnol ] salut !voila mon soucis ...G un formulaire dans lequel G des boutons radios qui redirigent apres l'envoi de ce formulaire via du javascript mais le p l'adresse ip avec php [ par marniga ] salut tous le monde comment affiché l'adresse ip d'un ordinateur avec le langage php et merci bcp frames avec php [ par djomsroset ] salutj'ai 2 pb2- j'ai fait des frames avec php, kan je navique dans mon site les adresse des pages ne s'affichent pas dans la barre d'adresse, cette d du php dans du xml [ par babbleshit ] Bonsoir ! J'ai t&#233;l&#233;charg&#233; une gallerie photo en flash qui fonctionne &#224; partir d'un ".xml". Et je voulais savoir si je pouvais fair


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,624 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.