« WATERBEAR:Localisation » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
(Page créée avec « __FORCETOC__ =But= Dans l'article Api de localisation de Rues/Communes, nous avons mis en oeuvre un module d'aide à la… »)
 
Aucun résumé des modifications
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
__FORCETOC__
__FORCETOC__
=But=
=But=
Dans l'article [[WATERBEAR:Api de localisation de Rues/Communes|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.
Dans l'article [[LINUX:Api de localisation de Rues/Communes|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.




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


A la ligne 35 de ce fichier de la fonction "completion_ws",:
La ligne 35 de ce fichier sous la fonction "completion_ws":
  <nowiki>$url="http://wxs.ign.fr/".$clef."/ols/apis/completion?text=".$texte."&maximumResponses=".$maximumResponses."&type=".$type."&terr=".$terr;</nowiki>
  <nowiki>$url="http://wxs.ign.fr/".$clef."/ols/apis/completion?text=".$texte."&maximumResponses=".$maximumResponses."&type=".$type."&terr=".$terr;</nowiki>
Cette ligne est à mettre en commentaire (double slash "//" en début de ligne) et à remplacer par:
est à mettre en commentaire (double slash "//" en début de ligne) et à remplacer par:
  <nowiki>$url="http://localhost/localisation/recherche.php?maximumResponses=".$maximumResponses."&terr=".$terr."&text=".$texte."&type=street";</nowiki>
  <nowiki>$url="http://localhost/localisation/recherche.php?maximumResponses=".$maximumResponses."&terr=".$terr."&text=".$texte."&type=street";</nowiki>
La partie <nowiki>http://localhost/localisation/</nowiki> est à adapter selon votre implémentation.
La partie <nowiki>http://localhost/localisation/</nowiki> 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 <nowiki>"<rue> : <code postal> <commune>"</nowiki> devient <nowiki>"<rue> : <code pays> <code postal> <commune>"</nowiki>. 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:
<nowiki>$nom=$proposition["street"]." : ".$proposition["zipcode"]." ".$proposition["city"];</nowiki>
devient
<nowiki>$nom=$proposition["street"]." : ".$proposition["countrycode"]." ".$proposition["zipcode"]." ".$proposition["city"];</nowiki>
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:
[[Media:WATERBEAR:Waterbear.modif.zip|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:
[[Media:WATERBEAR:Waterbear.geo.zip|Télécharger le fichier ZIP des scripts de géolocalisation]]
 





Dernière version du 6 décembre 2022 à 12:57

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