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