Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Doc/Pleade/GoogleMaps
Module Google Maps
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 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"/>
- Avoir préalablement activé dans le pleade-plus.properties
Qu'est ce que ce module ?
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 ?
l'utilisation de ce module est assez simple, cela dépends quand quel contexte on se positionne:
- Utilisateur
- Activer le module
- Se connecter
- Publier un document
- 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
- 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) |
Comment fonctionne t'il ?
Diagramme
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 | Requête vers le service Google Maps pour résoudre un nom de lieu (on lui envoie un nom de lieu) |
| 3 | 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) |
| 4 | 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 |
| 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. |
Description
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
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
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é.
Visualisation sur une carte
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).
- 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 ?
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
Les fichiers javascript:
- /pleade-entreprise/src/webapp/theme/js/gmaps
Les Fichiers de propritété :
- /pleade-entreprise/src/webapp/WEB-INF/properties/pleade-plus.properties
A Propos des autres API
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
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