Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« Doc/Pleade/GoogleMaps » : différence entre les versions
| (23 versions intermédiaires par 3 utilisateurs non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
= Module Google Maps = | = Module Google Maps - Paramétrage = | ||
Pour installer ce projet il faut l'installer de puis le projet [http://mw.ajlsm.com/wiki/Doc/Quickstart_Pleade DEV] et utiliser le projet pleade-entreprise-gmaps, qui contient une partie des choses nécessaires a son utilisation, le reste est a installer, pour cela il nous faut : | Pour installer ce projet il faut l'installer de puis le projet [http://mw.ajlsm.com/wiki/Doc/Quickstart_Pleade DEV] et utiliser le projet pleade-entreprise-gmaps, qui contient une partie des choses nécessaires a son utilisation, le reste est a installer, pour cela il nous faut : | ||
| Ligne 5 : | Ligne 5 : | ||
*Avoir installer Mysql, la dernière version est recommandée. | *Avoir installer Mysql, la dernière version est recommandée. | ||
{{cmd|sudo apt-get install mysql-server}} | {{cmd|sudo apt-get install mysql-server}} | ||
*Avoir préalablement activé les paramètres nécessaires dans le '''pleade-plus.properties''' | |||
<syntaxhighlight lang="properties">###### ###### | |||
# - Affichage Google Maps - # | |||
###### ###### | |||
# Active le module pleade google maps | |||
pleade.gmaps.active=true | |||
# Résolution des noms de lieux en temps réel lors de la publication (gmaps) | |||
pleade.gmaps.publish-resolve=true</syntaxhighlight> | |||
* Avoir dé-commenter (ou ajouter) le champs agrégé nécessaires à la création de l'index contenant la géolocalisation dans le fichier '''ead-aggregated-fields.xml'''. | |||
<syntaxhighlight lang="xml"><aggregated-field name="geognames" type="field"> | |||
<field name="fgeogname"/> | |||
<field name="fregion"/> | |||
<field name="flieudocument"/> | |||
<field name="fcommune"/> | |||
<field name="fbatiment"/> | |||
</aggregated-field></syntaxhighlight> | |||
*Avoir ajouté la table pour l'application dans la base de données pleade80 qui aura été crée. | *Avoir ajouté la table pour l'application dans la base de données pleade80 qui aura été crée. | ||
{{notice|Dans les nouvelles version de pleade, la table se crée toute seule lors de l'initialisation du module Google Maps.}} | |||
<small><syntaxhighlight lang="sql"> | <small><syntaxhighlight lang="sql"> | ||
| Ligne 23 : | Ligne 44 : | ||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ; | ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ; | ||
</syntaxhighlight></small> | </syntaxhighlight></small> | ||
*Avoir configuré les données de connexions a MySQL dans tomcat sur le fichier context.xml | *Avoir configuré les données de connexions a MySQL dans tomcat sur le fichier context.xml | ||
| Ligne 31 : | Ligne 53 : | ||
<small><syntaxhighlight lang="xml"><Resource name="jdbc/pleade" auth="Container" type="javax.sql.DataSource" maxActive="1000" maxIdle="500" maxWait="10000" url="jdbc:mysql://localhost/pleade80" driverClassName="com.mysql.jdbc.Driver" username="sdxapp" password="sdxapp-pwd"/></syntaxhighlight></small> | <small><syntaxhighlight lang="xml"><Resource name="jdbc/pleade" auth="Container" type="javax.sql.DataSource" maxActive="1000" maxIdle="500" maxWait="10000" url="jdbc:mysql://localhost/pleade80" driverClassName="com.mysql.jdbc.Driver" username="sdxapp" password="sdxapp-pwd"/></syntaxhighlight></small> | ||
Enfin il faut parametrer le fichier de configuration pleade-plus.properties, | |||
celui ci permettra de configurer la carte et améliorer son fonctionnement: | |||
<syntaxhighlight lang="properties"> | |||
###### ###### | |||
# - Affichage Google Maps - # | |||
###### ###### | |||
# Active le module pleade google maps | |||
pleade.gmaps.active=false | |||
# Résolution des noms de lieux en temps réel lors de la publication (gmaps) | |||
pleade.gmaps.publish-resolve=true | |||
# Mode de carte ( google maps => maps || leaflet => omaps ) | |||
pleade.gmaps.map.type=maps | |||
# Latitude (lat) puis longitude (lon) par défaut | |||
#( si un lieu n'a pas pu être résolu il sera placé a coté de ces coordonnées ) | |||
#( elles doivent être séparés par une virgule et être tronquée a deux chiffres après le point ) | |||
#( récupérable ici : http://ubuntu:8080/pleade-entreprise-gmaps/functions/gmaps/getgeodata.xml?lieu=NOM-DE-LA-VILLE-PAR-DEFAUT&resolve=true ) | |||
pleade.gmaps.map.defaultlatlng=44.83,-0.57 | |||
#région par défaut (pour aider au géocodage) | |||
#( Qui aidera google maps a résoudre les noms de lieu dans une zone donnée ) | |||
pleade.gmaps.map.defaultregion=FR | |||
#langue par défaut | |||
#( qui aidera google maps a récupérer les noms de lieux en français ) | |||
pleade.gmaps.map.defaultlangage=fr | |||
#hauteur de la carte en pixel | |||
#( afin qu'elle soit de la bonne taille dans la page ou elle sera visualisée ) | |||
pleade.gmaps.map.height=600 | |||
#zoom de la carte google maps | |||
#( niveau de zoom au chargement de la carte, seulement sur google maps ) | |||
pleade.gmaps.map.zoom=5 | |||
#zoom minimum et maximum de la carte omaps | |||
#( permet de définir une limite quand au zoom afin de ne pas sortir de la carte par exemple ) | |||
pleade.gmaps.omap.min.zoom=4 | |||
pleade.gmaps.omap.max.zoom=15 | |||
</syntaxhighlight> | |||
Si par connaissances certains noms de lieux sont selons vous difficile a traduite en coordonées GPS, il faut configurer le fichier gmaps-filter.xml afin de faciliter la tache du géocodeur. | |||
la syntaxe est en Reg Ex. | |||
<syntaxhighlight lang="xml"> | |||
<!-- Salles (Les) (Gironde, France) [aujourd'hui : Salles-de-Castillon (Les) (Gironde, France)]--> <!-- Salles-de-Castillon (Les) (Gironde, France) On ne garde que les valeurs --> | |||
<!-- qui sont dans aujourd'hui--> | |||
<entry key="([^']*)(\[aujourd'hui : )([^']*)(\])">$3</entry> | |||
<!-- on enlève les tirets "--" --> | |||
<entry key="([^.]*)(--)([^.]*)">$1 $3</entry> | |||
<!-- On enlève une valeur après un point virgule comme "bordeaux (gironde; france)" --> | |||
<!-- Cela donnera "Bordeaux (gironde) --> | |||
<entry key="([^.]*)\(([^.]*);([^.]*)\)">$1 ($2)</entry> | |||
<!-- on sort une valeur qui est entre crochets --> | |||
<entry key="(\[)([^.]*)(\])">$2</entry> | |||
<!-- on enlève les apostrophes --> | |||
<!--<entry key="([^.]*)(\')([^.]*)">$1 $3</entry>--> | |||
<!-- on enlève les "le la les" des noms de lieux) --> | |||
<entry key="\(le\)"></entry> | |||
<entry key="\(la\)"></entry> | |||
<entry key="\(les\)"></entry> | |||
<!-- Si dijon est présent on le met en fin de phrase --> | |||
<entry key="(Dijon)([^.]*)">$2 $1</entry> | |||
<!-- Si cote d'or est présent, on l'enleve --> | |||
<entry key="(\(Côte\-d\'Or\))([^.]*)">$2</entry> | |||
<!-- la fonction findAddAfter permet de chercher un mot et de l'ajouter en fin de phrase --> | |||
<!-- si il n'est pas présent findAddBefore reprends le même concept sauf qu'il les place --> | |||
<!-- en début de phrase --> | |||
<!--<entry key="findAddAfter[Dijon]">Dijon</entry>--> | |||
<!--<entry key="findAddBefore[Dijon]">Dijon</entry>--> | |||
<entry key="findAddAfter[France]">France</entry> | |||
</syntaxhighlight> | |||
Les instructions de nettoyages sont exécutées dans l'ordre et sont enchaînées, il faut donc faire attention a bien les organiser | |||
= Module Google Maps - Développement = | |||
=== Qu'est ce que ce module ? === | === Qu'est ce que ce module ? === | ||
| Ligne 44 : | Ligne 152 : | ||
*Utilisateur | *Utilisateur | ||
*# Faire une recherche | |||
*# cliquer sur la petite icône en forme de marqueur en faut a droite pour changer le mode d'affichage des résultats | |||
*Administrateur | |||
*# Activer le module | *# Activer le module | ||
*# Se connecter | *# Se connecter | ||
*# Publier un document | *# Publier un document | ||
*# Faire une recherche | *# Faire une recherche | ||
*# | *# Cliquer sur un lieu qui ne semble pas être au bon endroit | ||
*# Cliquer sur "Repositionner" pour déplacer le marqueur, puis sur valider si le changement de place est correct. ( le bouton Supprimer place le marqueur sur des coordonnées nulles, le marqueur ne sera plus affiché sur la carte sauf si une nouvelle résolution est lancée via la commande resolve all ) | |||
*Développeur | *Développeur | ||
| Ligne 61 : | Ligne 174 : | ||
|- | |- | ||
| http://localhost:8080/pleade-entreprise-gmaps/functions/gmaps/getgeodata.xml?lieu=resolve-all&resolve=resolve-all || @lieu=resolve-all (obligatoire) @resolve=resolve-all (obligatoire) || tout comme le précédent service, ce service permet de géocoder des lieux, en effet ce service vas chercher dans toute la base de données en dehors d'un processus de publication, les lieux qui n’ont pu être décodé(limite google) ou qui on des erreurs au niveau de leur syntaxe (que google n'as su résoudre) | | http://localhost:8080/pleade-entreprise-gmaps/functions/gmaps/getgeodata.xml?lieu=resolve-all&resolve=resolve-all || @lieu=resolve-all (obligatoire) @resolve=resolve-all (obligatoire) || tout comme le précédent service, ce service permet de géocoder des lieux, en effet ce service vas chercher dans toute la base de données en dehors d'un processus de publication, les lieux qui n’ont pu être décodé(limite google) ou qui on des erreurs au niveau de leur syntaxe (que google n'as su résoudre) | ||
|- | |||
| http://localhost:8080/pleade-entreprise-gmaps/functions/gmaps/altergeodata.xml?place=VILLE&lat=LATITUDE&lng=LONGITUDE || @place (obligatoire) @LAT (obligatoire) @lng (obligatoire) || ce service permet de modifier la position d'un lieu a partir de coordonnées latitude et longitude | |||
|- | |||
|} | |} | ||
{{important|L'API de google maps qui sert a géocoder a une limite qui est de 2500 lieux par tranche de | {{important|L'API de google maps qui sert a géocoder a une limite qui est de 2500 lieux par tranche de 24 heures a hauteur de 10 lieux géocodés par seconde MAXIMUM !}} | ||
=== Comment fonctionne t'il ? === | === Comment fonctionne t'il ? === | ||
| Ligne 79 : | Ligne 195 : | ||
| 1 || Envoi des noms de lieux dans le module Google Maps de Pleade | | 1 || Envoi des noms de lieux dans le module Google Maps de Pleade | ||
|- | |- | ||
| 2 || | | 2 || Nettoyage des noms de lieux dans le module a partir d'un fichier de configuration spécifique | ||
|- | |- | ||
| 3 || | | 3 || Requête vers le service Google Maps pour résoudre un nom de lieu (on lui envoie un nom de lieu) | ||
|- | |- | ||
| 4 || | | 4 || Récupération de la réponse du service Google Maps ( Cette réponse peut ou non renvoyer des coordonnées GPS cela dépends de la syntaxe du nom de lieu car le Service Google Maps peut ne pas comprendre tout ce qu'on lui envoie) | ||
|- | |- | ||
| 5 || Lors de l'affichage des résultats de recherche sous forme cartographiée, Pleade va chercher dans la base de données les coordonnées GPS correspondant aux résultats de recherche pour les placer sur la carte. | | 5 || Stockage des résultats GPS en base de données afin de ne plus avoir a refaire le processus précédent pour un nom de lieu déjà résolu | ||
|- | |||
| 6 || Lors de l'affichage des résultats de recherche sous forme cartographiée, Pleade va chercher dans la base de données les coordonnées GPS correspondant aux résultats de recherche pour les placer sur la carte. | |||
|} | |} | ||
| Ligne 104 : | Ligne 222 : | ||
Google impose une limite de traduction à hauteur de 2500 lieux par jour. | Google impose une limite de traduction à hauteur de 2500 lieux par jour. | ||
Si la base de donnée contient plus de 2500 lieux, seuls les 2500 premiers lieux sont traduits et le processus s'arrête. Il devra être relancé autant de fois que nécessaire. | Si la base de donnée contient plus de 2500 lieux, seuls les 2500 premiers lieux sont traduits et le processus s'arrête. Il devra être relancé autant de fois que nécessaire. | ||
Le processus reprendra à l'endroit où il s'est arrêté. | Le processus reprendra à l'endroit où il s'est arrêté. | ||
Lors du géocodage, les noms de lieux sont récupéré puis nettoyés a l'aide d'un fichier de configuration basé sur la syntaxe Reg Ex, celui ci peut enlever, modifier ou rajouter des termes afin de faciliter le travail du géocodage pour ensuite avoir de meilleurs résultats en terme de localisation. | |||
===== Visualisation sur une carte ===== | ===== Visualisation sur une carte ===== | ||
| Ligne 110 : | Ligne 230 : | ||
*Si oui, ils sont récupérés pour afficher les résultats de recherche sur une carte. | *Si oui, ils sont récupérés pour afficher les résultats de recherche sur une carte. | ||
Une icône (marker) permet de visualiser le lieu sur la carte. Un clic affiche les informations suivantes : un titre (obligatoire), une date (optionnel), un lieu (obligatoire) et une image (optionnel). | Une icône (marker) permet de visualiser le lieu sur la carte. Un clic affiche les informations suivantes : un titre (obligatoire), une date (optionnel), un lieu (obligatoire) et une image (optionnel). | ||
si plusieurs documents ont un même point de localisation, ils seront tous affichées lors de l'ouverture de la bulle d'information. | |||
*Sinon : | *Sinon : | ||
# Le module tente de les résoudre "à la volée" (paramètre à activer), puis les affiche si il les trouve. Attention, ne pas utiliser sur un grand nombre de résultats non géocodés en Production. | |||
# Si le module GoogleMaps ne trouve pas de lieu ou que l'option de résolution ci-dessus n'est pas activé, aucun point ne sera affiché sur la carte. | |||
=== Ou sont localisés les fichiers afin de l'utiliser ? === | === Ou sont localisés les fichiers afin de l'utiliser ? === | ||
Les fichiers concernant pleade-entreprise-gmaps sont localisés dans pleade entreprise. | |||
Les fichiers JAVA: | |||
* org.pleade.beans | |||
** GoogleBean.java | |||
* org.pleade.database.utils | |||
** DAOConfigurationException.java | |||
** DAOException.java | |||
** DBConnexion.java | |||
* org.pleade.database.dao | |||
** DAO.java | |||
** GoogleDAO.java | |||
* org.pleade.gmapservice | |||
** GmapsService.java | |||
* org.pleade.google | |||
** GeodataType.java | |||
** GoogleWebService.java | |||
** GoogleWebServiceData.java | |||
** GoogleWebServiceOneData.java | |||
** IGoogleWebService.java | |||
** TypeData.java | |||
* com.ajlsm.cocoon.generation | |||
** GmapsGenerator.java | |||
Les Fichiers XSL : | |||
* /pleade-entreprise/src/webapp/module-eadeac/xsl/maps-results.xsl | |||
* /pleade-entreprise/src/webapp/module-eadeac/xsl/omaps-results.xsl | |||
Les fichiers javascript: | |||
* /pleade-entreprise/src/webapp/theme/js/gmaps/gmaps.js | |||
* /pleade-entreprise/src/webapp/theme/js/omaps/omaps.js | |||
Les fichiers de style: | |||
* /pleade-entreprise/src/webapp/theme/css/gmaps.css | |||
* /pleade-entreprise/src/webapp/theme/css/leaflet.css | |||
Les Fichiers de propritété : | |||
* /pleade-entreprise/src/webapp/WEB-INF/properties/pleade-plus.properties | |||
* /pleade-entreprise/src/webapp/module-eadeac/conf/gmaps-filter.xml | |||
===== Design de l'application ===== | |||
[[Fichier:Gmaps_new_UML.gif|700px|center]] | |||
=== A Propos des autres API === | === A Propos des autres API === | ||
| Ligne 143 : | Ligne 310 : | ||
= Important = | = Important = | ||
{{notice| Pour facilement retrouver modifier le design de la carte, on peut aller sur ce site http://googlemapbuilder.mynameisdonald.com/ <br /> | |||
Pour LeafLet la selection se fait directement sur la carte en haut a droite}} | |||
La documentation concernant Google se trouve ici: | La documentation concernant Google se trouve ici: | ||
Dernière version du 20 août 2014 à 09:37
Module Google Maps - Paramétrage
[modifier | modifier le wikicode]Pour installer ce projet il faut l'installer de puis le projet DEV et utiliser le projet pleade-entreprise-gmaps, qui contient une partie des choses nécessaires a son utilisation, le reste est a installer, pour cela il nous faut :
- Avoir installer Mysql, la dernière version est recommandée.
sudo apt-get install mysql-server
- Avoir préalablement activé les paramètres nécessaires dans le pleade-plus.properties
###### ######
# - Affichage Google Maps - #
###### ######
# Active le module pleade google maps
pleade.gmaps.active=true
# Résolution des noms de lieux en temps réel lors de la publication (gmaps)
pleade.gmaps.publish-resolve=true
- Avoir dé-commenter (ou ajouter) le champs agrégé nécessaires à la création de l'index contenant la géolocalisation dans le fichier ead-aggregated-fields.xml.
<aggregated-field name="geognames" type="field">
<field name="fgeogname"/>
<field name="fregion"/>
<field name="flieudocument"/>
<field name="fcommune"/>
<field name="fbatiment"/>
</aggregated-field>
- Avoir ajouté la table pour l'application dans la base de données pleade80 qui aura été crée.
--
-- Structure de la table `module_maps`
--
CREATE TABLE IF NOT EXISTS `module_maps` (
`id_maps` int(11) NOT NULL AUTO_INCREMENT,
`base_adress_maps` varchar(1000) DEFAULT NULL,
`formated_adress_maps` varchar(1000) DEFAULT NULL,
`type_adress_maps` varchar(250) DEFAULT NULL,
`location_type_maps` varchar(250) DEFAULT NULL,
`lat_maps` varchar(250) DEFAULT NULL,
`lng_maps` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id_maps`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
- Avoir configuré les données de connexions a MySQL dans tomcat sur le fichier context.xml
Il faut ajouter cette balise dans le context.xml si elle n'existe pas afin de permettre au module google maps de se connecter a la base de donnée, celui ci utilise JNDI pour configurer la connexion.
<Resource name="jdbc/pleade" auth="Container" type="javax.sql.DataSource" maxActive="1000" maxIdle="500" maxWait="10000" url="jdbc:mysql://localhost/pleade80" driverClassName="com.mysql.jdbc.Driver" username="sdxapp" password="sdxapp-pwd"/>
Enfin il faut parametrer le fichier de configuration pleade-plus.properties,
celui ci permettra de configurer la carte et améliorer son fonctionnement:
###### ######
# - Affichage Google Maps - #
###### ######
# Active le module pleade google maps
pleade.gmaps.active=false
# Résolution des noms de lieux en temps réel lors de la publication (gmaps)
pleade.gmaps.publish-resolve=true
# Mode de carte ( google maps => maps || leaflet => omaps )
pleade.gmaps.map.type=maps
# Latitude (lat) puis longitude (lon) par défaut
#( si un lieu n'a pas pu être résolu il sera placé a coté de ces coordonnées )
#( elles doivent être séparés par une virgule et être tronquée a deux chiffres après le point )
#( récupérable ici : http://ubuntu:8080/pleade-entreprise-gmaps/functions/gmaps/getgeodata.xml?lieu=NOM-DE-LA-VILLE-PAR-DEFAUT&resolve=true )
pleade.gmaps.map.defaultlatlng=44.83,-0.57
#région par défaut (pour aider au géocodage)
#( Qui aidera google maps a résoudre les noms de lieu dans une zone donnée )
pleade.gmaps.map.defaultregion=FR
#langue par défaut
#( qui aidera google maps a récupérer les noms de lieux en français )
pleade.gmaps.map.defaultlangage=fr
#hauteur de la carte en pixel
#( afin qu'elle soit de la bonne taille dans la page ou elle sera visualisée )
pleade.gmaps.map.height=600
#zoom de la carte google maps
#( niveau de zoom au chargement de la carte, seulement sur google maps )
pleade.gmaps.map.zoom=5
#zoom minimum et maximum de la carte omaps
#( permet de définir une limite quand au zoom afin de ne pas sortir de la carte par exemple )
pleade.gmaps.omap.min.zoom=4
pleade.gmaps.omap.max.zoom=15
Si par connaissances certains noms de lieux sont selons vous difficile a traduite en coordonées GPS, il faut configurer le fichier gmaps-filter.xml afin de faciliter la tache du géocodeur. la syntaxe est en Reg Ex.
<!-- Salles (Les) (Gironde, France) [aujourd'hui : Salles-de-Castillon (Les) (Gironde, France)]--> <!-- Salles-de-Castillon (Les) (Gironde, France) On ne garde que les valeurs -->
<!-- qui sont dans aujourd'hui-->
<entry key="([^']*)(\[aujourd'hui : )([^']*)(\])">$3</entry>
<!-- on enlève les tirets "--" -->
<entry key="([^.]*)(--)([^.]*)">$1 $3</entry>
<!-- On enlève une valeur après un point virgule comme "bordeaux (gironde; france)" -->
<!-- Cela donnera "Bordeaux (gironde) -->
<entry key="([^.]*)\(([^.]*);([^.]*)\)">$1 ($2)</entry>
<!-- on sort une valeur qui est entre crochets -->
<entry key="(\[)([^.]*)(\])">$2</entry>
<!-- on enlève les apostrophes -->
<!--<entry key="([^.]*)(\')([^.]*)">$1 $3</entry>-->
<!-- on enlève les "le la les" des noms de lieux) -->
<entry key="\(le\)"></entry>
<entry key="\(la\)"></entry>
<entry key="\(les\)"></entry>
<!-- Si dijon est présent on le met en fin de phrase -->
<entry key="(Dijon)([^.]*)">$2 $1</entry>
<!-- Si cote d'or est présent, on l'enleve -->
<entry key="(\(Côte\-d\'Or\))([^.]*)">$2</entry>
<!-- la fonction findAddAfter permet de chercher un mot et de l'ajouter en fin de phrase -->
<!-- si il n'est pas présent findAddBefore reprends le même concept sauf qu'il les place -->
<!-- en début de phrase -->
<!--<entry key="findAddAfter[Dijon]">Dijon</entry>-->
<!--<entry key="findAddBefore[Dijon]">Dijon</entry>-->
<entry key="findAddAfter[France]">France</entry>
Les instructions de nettoyages sont exécutées dans l'ordre et sont enchaînées, il faut donc faire attention a bien les organiser
Module Google Maps - Développement
[modifier | modifier le wikicode]Qu'est ce que ce module ?
[modifier | modifier le wikicode]Ce module apporte une nouvelle fonctionnalité a Pleade qui est l'affichage des résultats de recherche sur une carte de type google maps, le but de cet affichage est de voir où est localisé géographiquement les séries, les documents publiés sur Pleade en fonction de leur nom de lieu.
Comment s'en sert t'on ?
[modifier | modifier le wikicode]l'utilisation de ce module est assez simple, cela dépends quand quel contexte on se positionne:
- Utilisateur
- Faire une recherche
- cliquer sur la petite icône en forme de marqueur en faut a droite pour changer le mode d'affichage des résultats
- Administrateur
- Activer le module
- Se connecter
- Publier un document
- Faire une recherche
- Cliquer sur un lieu qui ne semble pas être au bon endroit
- Cliquer sur "Repositionner" pour déplacer le marqueur, puis sur valider si le changement de place est correct. ( le bouton Supprimer place le marqueur sur des coordonnées nulles, le marqueur ne sera plus affiché sur la carte sauf si une nouvelle résolution est lancée via la commande resolve all )
- Développeur
- Activer le module
- Avoir fait une publication pour remplir la base de données
- Appeler un service cocoon pour utiliser le module google maps
| URL | Paramètres | Action |
|---|---|---|
| http://localhost:8080/pleade-entreprise-gmaps/functions/gmaps/getgeodata.xml?lieu=VILLE&resolve=true | @place (obligatoire) @resolve (optionnel) | Ce service sert a récupérer des données géographiques afin de localiser un lieu en fonction de son nom de lieu. on spécifie le nom de lieu dans le paramètre @lieu il est obligatoire car ce service ne devinera pas quelque lieu vous souhaitez géocoder enfin le paramètre @resolve lui est optionnel, il permet de spécifier au service si vous souhaitez résoudre en temps réel les noms de lieux que vous donnez, par défaut il est a false. |
| http://localhost:8080/pleade-entreprise-gmaps/functions/gmaps/getgeodata.xml?lieu=resolve-all&resolve=resolve-all | @lieu=resolve-all (obligatoire) @resolve=resolve-all (obligatoire) | tout comme le précédent service, ce service permet de géocoder des lieux, en effet ce service vas chercher dans toute la base de données en dehors d'un processus de publication, les lieux qui n’ont pu être décodé(limite google) ou qui on des erreurs au niveau de leur syntaxe (que google n'as su résoudre) |
| http://localhost:8080/pleade-entreprise-gmaps/functions/gmaps/altergeodata.xml?place=VILLE&lat=LATITUDE&lng=LONGITUDE | @place (obligatoire) @LAT (obligatoire) @lng (obligatoire) | ce service permet de modifier la position d'un lieu a partir de coordonnées latitude et longitude |
Comment fonctionne t'il ?
[modifier | modifier le wikicode]Diagramme
[modifier | modifier le wikicode]Voici un diagramme présentant le fonctionnement du module Google Maps de manière globale.

| Numéro Action | Descriptif |
|---|---|
| 1 | Envoi des noms de lieux dans le module Google Maps de Pleade |
| 2 | Nettoyage des noms de lieux dans le module a partir d'un fichier de configuration spécifique |
| 3 | Requête vers le service Google Maps pour résoudre un nom de lieu (on lui envoie un nom de lieu) |
| 4 | Récupération de la réponse du service Google Maps ( Cette réponse peut ou non renvoyer des coordonnées GPS cela dépends de la syntaxe du nom de lieu car le Service Google Maps peut ne pas comprendre tout ce qu'on lui envoie) |
| 5 | Stockage des résultats GPS en base de données afin de ne plus avoir a refaire le processus précédent pour un nom de lieu déjà résolu |
| 6 | Lors de l'affichage des résultats de recherche sous forme cartographiée, Pleade va chercher dans la base de données les coordonnées GPS correspondant aux résultats de recherche pour les placer sur la carte. |
Description
[modifier | modifier le wikicode]Le module GoogleMaps permet d'avoir une autre approche dans la recherche documentaire, en mettant en avant l'aspect géographique.
L'application Pleade, embarque le module google maps. Il peut être activé ou désactivé. Afin d'afficher des résultats sur une carte, il faut effectuer certaines actions comme activer le module et lancer une publication.
Collecte
[modifier | modifier le wikicode]Lors de la publication le module google maps va aller récupérer des noms de lieux pour ensuite les stocker dans une base de données. C'est la seule action faite lors de la publication d'un document.
Géocodage
[modifier | modifier le wikicode]Une fois les lieux étant stockés, on récupére leur position GPS en utilisant le service de traduction de noms de lieux en coordonnées GPS de google (géocodage). Cette étape est dissociée du processus de publication et est lancée depuis une URL.
Google impose une limite de traduction à hauteur de 2500 lieux par jour. Si la base de donnée contient plus de 2500 lieux, seuls les 2500 premiers lieux sont traduits et le processus s'arrête. Il devra être relancé autant de fois que nécessaire. Le processus reprendra à l'endroit où il s'est arrêté.
Lors du géocodage, les noms de lieux sont récupéré puis nettoyés a l'aide d'un fichier de configuration basé sur la syntaxe Reg Ex, celui ci peut enlever, modifier ou rajouter des termes afin de faciliter le travail du géocodage pour ensuite avoir de meilleurs résultats en terme de localisation.
Visualisation sur une carte
[modifier | modifier le wikicode]Le module GoogleMaps va vérifier si les lieux contenus dans les résultats de recherche ont des coordonnées GPS.
- Si oui, ils sont récupérés pour afficher les résultats de recherche sur une carte.
Une icône (marker) permet de visualiser le lieu sur la carte. Un clic affiche les informations suivantes : un titre (obligatoire), une date (optionnel), un lieu (obligatoire) et une image (optionnel).
si plusieurs documents ont un même point de localisation, ils seront tous affichées lors de l'ouverture de la bulle d'information.
- Sinon :
- Le module tente de les résoudre "à la volée" (paramètre à activer), puis les affiche si il les trouve. Attention, ne pas utiliser sur un grand nombre de résultats non géocodés en Production.
- Si le module GoogleMaps ne trouve pas de lieu ou que l'option de résolution ci-dessus n'est pas activé, aucun point ne sera affiché sur la carte.
Ou sont localisés les fichiers afin de l'utiliser ?
[modifier | modifier le wikicode]Les fichiers concernant pleade-entreprise-gmaps sont localisés dans pleade entreprise.
Les fichiers JAVA:
- org.pleade.beans
- GoogleBean.java
- org.pleade.database.utils
- DAOConfigurationException.java
- DAOException.java
- DBConnexion.java
- org.pleade.database.dao
- DAO.java
- GoogleDAO.java
- org.pleade.gmapservice
- GmapsService.java
- org.pleade.google
- GeodataType.java
- GoogleWebService.java
- GoogleWebServiceData.java
- GoogleWebServiceOneData.java
- IGoogleWebService.java
- TypeData.java
- com.ajlsm.cocoon.generation
- GmapsGenerator.java
Les Fichiers XSL :
- /pleade-entreprise/src/webapp/module-eadeac/xsl/maps-results.xsl
- /pleade-entreprise/src/webapp/module-eadeac/xsl/omaps-results.xsl
Les fichiers javascript:
- /pleade-entreprise/src/webapp/theme/js/gmaps/gmaps.js
- /pleade-entreprise/src/webapp/theme/js/omaps/omaps.js
Les fichiers de style:
- /pleade-entreprise/src/webapp/theme/css/gmaps.css
- /pleade-entreprise/src/webapp/theme/css/leaflet.css
Les Fichiers de propritété :
- /pleade-entreprise/src/webapp/WEB-INF/properties/pleade-plus.properties
- /pleade-entreprise/src/webapp/module-eadeac/conf/gmaps-filter.xml
Design de l'application
[modifier | modifier le wikicode]
A Propos des autres API
[modifier | modifier le wikicode]Google maps Geocode est une API qui permet de récupérer des données géographiques telles que des coordonées GPS ou des adresses a partir d'un nom de lieu, cependant, il existe d'autres API pour faire ce travail:
- OpenStreetMap Nominatim API:
- Yahoo Geo API:
- MapQuest API:
- DataScienceToolkit:
- Microsoft Bing API:
- Cloudmade API:
- Openaddresses API:
- Gisgraphy API:
Voici une liste de 74 API de Géocodage: http://www.programmableweb.com/apitag/geocoding
Update(25/02/2014)
Important
[modifier | modifier le wikicode]Pour LeafLet la selection se fait directement sur la carte en haut a droite.
La documentation concernant Google se trouve ici: https://developers.google.com/maps/documentation/geocoding/
Explications sur l'api google maps (Affinage des requêtes, réponses, ...): http://www.touraineverte.com/google-geocoding-api/index.html