WATERBEAR:Localisation

De WIKI sur Linux (ADB)
Révision datée du 6 décembre 2022 à 12:57 par Adebast (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

But

Dans l'article Api de localisation de Rues/Communes, nous avons mis en oeuvre un module d'aide à la recherche d'adresse. Nous allons l'appliquer au remplissage de l'adresse d'un lecteur.


Mise en oeuvre

Lorsque vous voulez ajouter un utilisateur, vous avez une section consacrée à son adresse. La zone "9a accès" fait appel à une API de l'IGN française ayant des droits d'accès limités ou payants. D'autre part, il est limité à la France. Votre API, elle intègre la France et la Belgique et est ouverte à l'ajout d'autres pays. Elle a été conçue afin d'être compatible à celle de l'IGN français.


Pour l'activer, il faut changer une ligne dans le code PHP du logiciel de Waterbear. Le fichier concerné est "include/classes/geoportail.php".

La ligne 35 de ce fichier sous la fonction "completion_ws":

$url="http://wxs.ign.fr/".$clef."/ols/apis/completion?text=".$texte."&maximumResponses=".$maximumResponses."&type=".$type."&terr=".$terr;

est à mettre en commentaire (double slash "//" en début de ligne) et à remplacer par:

$url="http://localhost/localisation/recherche.php?maximumResponses=".$maximumResponses."&terr=".$terr."&text=".$texte."&type=street";

La partie http://localhost/localisation/ est à adapter selon votre implémentation dans le serveur WEB.


Comme nous ne sommes pas limités à la France, il devient utile à nécessaire de signaler le pays. Nous allons ajouter le code du pays en deux lettres (BE ou FR) devant le code postal et intégré à celui-ci.

Pour l'implémentation, il faut agir dans le code PHP du logiciel à deux endroits:

  • La première intervention se passe lors de l'affichage de la listes des rues trouvées. La chaine du type "<rue> : <code postal> <commune>" devient "<rue> : <code pays> <code postal> <commune>". Ceci se passe dans le script PHP "include/plugins/catalogue/recherches/autocomplete_rue_ign.php".

A la ligne 21 de la fonction "plugin_catalogue_recherches_autocomplete_rue_ign", la ligne:

$nom=$proposition["street"]." : ".$proposition["zipcode"]." ".$proposition["city"];

devient

$nom=$proposition["street"]." : ".$proposition["countrycode"]." ".$proposition["zipcode"]." ".$proposition["city"];

La zone "countrycode" a été insérée.

  • La seconde intervention concerne de découpage et l'affectation de ces différentes information de la chaine ci-dessus. Il faut repérer la présence éventuelle de ce code de pays et l'intégrer au code postal. C'est le script PHP "include/plugins/catalogue/catalogage/grilles/actions_grilles/wizard_lecteur_analyse_adresse.php" qui est concerné.

A la ligne 38, les deux lignes:

$CP= trim($elements[0]);
$ville= trim($elements[1]);

sont à remplacer par le bloc:

   if (strlen(trim($elements[0])) < 4)
    {
    $elements=explode(" ", trim($segments[1]), 3);
    $CP= trim($elements[0])." ".trim($elements[1]);
    $ville= trim($elements[2]);
    }
   else
    {
    $CP= trim($elements[0]);
    $ville= trim($elements[1]);
    }


Scripts

Les scripts PHP ont été modifiés dans le logiciel. Ils ont été ajoutés à l'ensemble qui est téléchargeable au lien suivant:

Télécharger le fichier ZIP des modifications de Waterbear

Un autre fichier ne comprenant que ces scripts est téléchargeable au lien suivant:

Télécharger le fichier ZIP des scripts de géolocalisation





->retour à la personnalisation de Waterbear