Bienvenue dans la doc de FollowDem¶
FollowDem est une application web cartographique permettant de suivre le déplacement d’objets équipés d’un GPS.
Utilisée pour le suivi GPS des bouquetins du Parc national des Ecrins : http://bouquetins.ecrins-parcnational.fr
Contenu:
SERVEUR¶

Pré-requis¶
Vous devez disposer d’un serveur ou d’un hébergement mutualisé avec MySQL, PHP 5 et Apache2.
Si vous avez la main sur le serveur, cette documentation vous aidera à sa mise en place.
Si vous disposez d’un hébergement mutualisé, le serveur doit être prêt à l’utilisation (avec MySQL, PHP 5.4 et Apache2), passez alors directement à la rubrique INSTALLATION.
- Ressources minimales du serveur :
Un serveur disposant d’au moins de 1 Go RAM et de 10 Go d’espace disque.
Disposer d’un utilisateur linux (nommé
followdem
dans cette exemple et dont le répertoire est ainsi dans/home/followdem/
)sudo adduser --home /home/followdem followdem
Installation et configuration du serveur¶
Installation pour Ubuntu.
notes: | Cette documentation concerne une installation sur Ubuntu 12.04 LTS. Elle devrait être valide sur Debian ou une version plus récente d’Ubuntu. Pour tout autre environemment les commandes sont à adapter. |
---|
.
notes: | L’utilisateur followdem est à remplacer par le nom de votre utilisateur linux si vous en avez choisi un différent. |
---|
Assignez le rôle d’administrateur à l’utilisateur
followdem
:sudo usermod -g www-data followdem sudo usermod -a -G root followdem sudo adduser followdem sudo exit
Fermer la console et la réouvrir pour que les modifications soient prises en compte.
Mise à jour des sources applicatives :
sudo apt-get update
Installer Apache :
sudo apt-get install apache2
Activer le mod_rewrite et redémarrer Apache :
sudo a2enmod rewrite sudo apache2ctl restart
Installation de PHP et ses librairies¶
sudo apt-get install php5-common libapache2-mod-php5 php5-cli
sudo apt-get install php5-mysql php5-curl
sudo apt-get install php5-imap
sudo php5enmod imap
sudo service apache2 restart
Installation et configuration de MYSQL¶
Installation de MySQL et création de l’utilisateur
root
avec le mot à passe à remplacer :apt-get install mysql-server mysql-client libmysqlclient15-dev mysql-common sudo mysqladmin -u root password Nouveau_mot_de_passe -p ""
Ouvrir le fichier de configuration de MySQL pour le modifier :
sudo vi /etc/mysql/my.cnf
Dans le fichier my.cnf
, modifier les lignes de la façon suivante :
language = /usr/share/mysql/french
key_buffer = 32M
query_cache_limit = 2M
#log_bin = /var/log/mysql/mysql-bin.log
#expire_logs_days = 10
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
default-character-set = utf8
default-collation = utf8_general_ci
default-character-set = utf8
Rechargez ensuite le serveur :
/etc/init.d/mysql reload
Création d’un utilisateur MySQL (nom et mot de passe à replacer par vos valeurs) :
CREATE USER "nom_utilisateur"@"localhost"; SET password FOR "nom_utilisateur"@"localhost" = password('mot_de_passe');
Création d’une base de donnéees MySQL (nom à remplacer) :
CREATE DATABASE nom_de_la_base;
Pour se placer dans la base, tapez dans MySQL :
USE nom_de_la_base;
Attribution des droits à l’utilisateur MySQL :
GRANT ALL ON nom_de_la_base.* TO "nom_utilisateur"@"localhost";
INSTALLATION¶

Création des tables de la base de données MySQL¶
Avec phpMyAdmin¶
Se placer dans la BDD de FollowDem puis dans l’onglet Importer
de phpMyAdmin.
Cliquez sur Choisissez un fichier
et sélectionner le fichier data/FollowDem_DataBase.sql
qui est le script de création des tables.
Ensuite sélectionnez utf-8
comme Jeu de caractères du fichier, autorisez l’importation partielle, sélectionnez SQL
comme Format.
Enfin, cliquez sur Exécuter
Votre base de données est maintenant opérationnelle et sans données.
Vous pouvez aussi importer un jeu de données exemple en effectuant les mêmes étapes que ci-dessus, mais en sélectionnant le fichier data/FollowDem_DataSet.sql
.
En ligne de commande¶
Se placer dans le répertoire data
de l’application (en remplacant followdem
par le nom de votre utilisateur Linux et monprojet
par le répertoire où vous avez placer l’application FollowDem) :
cd /home/followdem/monprojet/data
Créer la BDD MySQL (en remplacant par vos valeurs d’utilisateur MySQL et de nom de BDD) :
mysql -unomUtilisateur -pmotDePasse
use nomDeLaBase;
source FollowDem_DataBase.sql;
Comme sur phpMyAdmin, si vous souhaitez ajouter le jeu de données d’exemple, saisissez en plus la commande suivante :
source FollowDem_DataSet.sql;
Installation du répertoire de l’application¶
Avec un logiciel FTP ou SSH (WinSCP, Filezilla…)¶
- Récupérez le ZIP de la version souhaitée de l’application sur le Github du projet FollowDem (https://github.com/PnEcrins/FollowDem/releases)
- Extraire le contenu dans un répertoire au nom de votre projet à la racine du répertoire de publication web d’Apache du serveur.
En ligne de commande¶
Récupérer le zip de l’application sur le Github du projet (X.Y.Z à remplacer par le numéro de version souhaité) et dézippez le dans le répertoire de l’utilisateur linux :
cd /home/followdem wget https://github.com/PnEcrins/FollowDem/archive/X.Y.Z.zip unzip X.Y.Z.zip cd FollowDem-X.Y.Z/
Vous pouvez renommer le répertoire de l’application si vous souhaitez.
Configuration Apache¶
Créez un virtualhost pour l’application :
sudo nano /etc/apache2/sites-available/followdem.conf
Intégrez-y ces lignes en les adaptant à votre serveur :
<VirtualHost *:80>
ServerName URLServeur
Alias / "repertoire de l'appli"
<Directory "repertoire de l'appli">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Activez le virtualhost puis redémarrez Apache :
sudo a2ensite followdem
sudo apachectl restart
Configuration de l’application¶
Créer le répertoire /csv
à la racine de l’application, créer le fichier tracked_objects.csv
à l’intérieur de ce répertoire.
Ensuite, créer le répertoire /csv
dans le répertoire /tmp
(ce sera ce répertoire qui recevra les fichiers txt contenus dans les pièces jointes des emails envoyés par le satellite).
Exécutez le script install.sh
qui va copier les différents fichiers exemples :
cd /home/followdem/monprojet
.install.sh
Editer alors le fichier config/config.php
pour définir les paramètres de connexion à votre base de données, ainsi que tous les paramètres utiles à une personnalisation de votre application.
Voir la rubrique CONFIGURATION pour le détail des paramètres.
Fonds cartographiques¶
3 types de fonds cartographiques peuvent être utilisés dans l’application :
- Fonds IGN en utilisant l’API du Geoportail.
- Fonds OpenStreetMap.
- Fonds Google Maps.
La configuration des fonds à utiliser se fait dans le fichier /config/config.php
à partir de la ligne 323. Voir rubrique CONFIGURATION pour le détail des paramètres.
Vous avez la possibilité d’ajouter un fond cartographique en respectant la nomenclature utilisée au dessus.
Vous pouvez aussi définir le fond vous souhaitez utiliser par défaut, en modifiant la ligne suivante du fichier /config/config.php
:
$config['leaflet_fonds_carte_defaut'] = "OSM";
Vous avez aussi la possibilité d’utiliser les fonds de carte Google Maps avec le paramètre ligne 393 du fichier /config/config.php
.
Fonds IGN Geoportail¶
Commencez par commander une clé IGN. Si vous êtes un établissement public, vous disposez de la licence géoservices IGN pour usage grand public - gratuite
Nous conseillons les couches suivantes :
- WMTS-Géoportail - Cartes IGN
- WMTS-Géoportail - Scan IGN
- WMTS-Géoportail - Orthophoto IGN
Pour cela, il faut que vous disposiez d’un compte IGN pro. (http://professionnels.ign.fr) Une fois connecté au site:
- aller dans Nouvelle commande
- choisir Géoservices IGN : Pour le web dans la rubrique « LES GÉOSERVICES EN LIGNE »
- cocher l’option « Pour un site internet grand public »
- cocher l’option « Licence géoservices IGN pour usage grand public - gratuite »
- saisir votre url. Attention, l’adresse doit être précédée de http://
- Finir votre commande en selectionnant les couches souhaitées et en acceptant les différentes licences.
Une fois que votre commande est prète, saisissez la valeur de la clé IGN reçue dans le fichier config/config.php
: remplacer la chaine maCleIgn
dans le paramètre $config['leaflet_fonds_carte']
dans l’URL des fonds IGN Geoportail.
Cache serveur¶
Smarty s’occupe de sauvegarder le cache sur le serveur et garde ce cache pendant deux heures (durée paramétrable avec $config['smarty_cache_lifetime']
dans le fichier config/config.php
).
Le cache est sauvegardé dans deux dossiers différents : /templates_c
et /cache
.
Lorsque vous effectuez des modifications dans l’application, il se peut que les changements ne se soient pas enregistrés dans les dossiers de cache.
Pour voir ces modifications appliquées, il vous faudra vider les dossiers /templates_c
et /cache
.
Gestion des droits¶
Si vous rencontrez des problèmes lors de l’exécution du script d’import des csv (cf configuration.rst
), ceci vient des droits sur le fichier tracked_objects.csv
.
Il faut que vous exécutiez la commande suivante :
chmod 664 -R csv/
GESTION DES DONNEES¶
Après avoir installé et configuré l’application, vous devez créer vos objets suivis dans la base de données.
Une interface d’administration est en cours de développement (dans le répertoire _admin
, accessible à l’adresse http://mondomaine.com/_admin
). Elle permet actuellement de lister les objets de la BDD mais pas encore de les éditer. Ainsi ces opérations de gestion des données doivent pour le moment être faites directement dans la BDD.
Tout d’abord, sélectionnez la BDD de votre application dans phpMyAdmin.
CAS n°1 : Ajouter un objet dont l’émetteur GPS n’a jamais été utilisé¶
Insérez une nouvelle ligne dans la table tracked_objects
:
id
: correspond à l’identifiant numérique de l’émetteur GPS.nom
: nom de l’objet.date_creation
: date du jour ou laisser vide.date_maj
: laisser vide (renseigné automatiquement à chaque import de données).active
: désactive l’affichage d’un objet qui ne renvoie pas de données GPS.
Attention mettre 0
dans le champs active
ne signifie pas que l’objet sera désactivé du site pour toujours mais qu’il n’y apparaît plus tant que de nouvelles données satellites ne sont pas disponibles.
Si des données correspondantes à l’émetteur GPS sont de nouveau transmises l’objet sera réactivé automatiquement.
Ensuite, insérez 4 nouvelles entrées dans la table objects_features
(une entrée par champ nom_prop
) :
id_tracked_objects
: correspond à l’identifiant numérique de l’émetteur GPS (sans le T5HS- devant)nom_prop
: peut avoir 4 valeurs différentes :couleurD
: couleur de la boucle sur l’oreille droite,couleurG
: couleur de la boucle sur l’oreille gauche,naissance
: année de naissancesexe
: M ou F
valeur_prop
: valeur selonnom_prop
:couleurD
oucouleurG
: couleur héxadecimale précédée de # (ex : #FF4574)naissance
: année au format numérique (ex : 2010)sexe
: F ou M
Il ne reste plus qu’à lancer un import des données existantes si des données ont déjà été transmises après la pose de l’émetteur GPS sur l’objet traqué.
Ces données se trouvent dans les fichiers TXT du répertoire /tmp/csv
.
Il faut donc exécuter le script http://mon-domaine.com/controler/import_imap_csv. Les données sont intégrées dans la table gps_data
. Voir rubrique PRINCIPES DE L’APPLICATION dans la documentation CONFIGURATION.
Il se peut que le fichier contienne des données de test avant la pose de l’émetteur GPS, il faut donc éxecuter la requête suivante dans la BDD pour les supprimer (en remplacant id_emetteurGPS
par la valeur numérique souhaitée) :
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_emetteurGPS' AND `dateheure` > 'date_de_pose';
CAS n°2 : Ajout d’un nouvel objet dont l’émetteur GPS a déjà été utilisé sur un autre objet¶
Si l’émetteur GPS a déjà été utilisé il convient de supprimer toutes les données antérieures à la nouvelle date de pose de l’émetteur GPS (en remplacant id_emetteurGPS
par la valeur numérique souhaitée).
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_emetteurGPS' AND `dateheure` > 'date_de_pose';
Si vous souhaitez conserver les données de l’ancien objet, vous pouvez effectuer la requête suivante pour renommer son identifiant (O pour OLD) :
UPDATE `gps_data` SET `id_tracked_objects` = 'id_objet_O' WHERE `id_tracked_objects` = 'id_objet';
Ensuite reprenez les étapes du cas n°1.
CAS n°3 : Un objet change d’émetteur GPS¶
Modifiez l’identifiant de l’émetteur GPS dans la table tracked_objects
, pour ceci vous avez juste à modifier la ligne avec l’id souhaité.
Par la suite, modifiez l’identifiant de l’émetteur GPS dans la table objects_features
, vous devez modifier 4 lignes comme dans le cas n°1.
Sinon, tapez la requête suivante (en remplacant id_ancien_emetteurGPS
et id_nouvel_emetteurGPS
par les id souhaités) :
UPDATE `objects_features` SET `id_tracked_objects` = 'id_ancien_emetteurGPS' WHERE `id_tracked_objects` = 'id_nouvel_emetteurGPS';
Enfin, supprimez les données datant d’avant la pose de l’émetteur GPS (en remplacant id_emetteurGPS
) :
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_emetteurGPS' AND `dateheure` > 'date_de_pose';
Très important, si vous souhaitez conserver les anciennes données de l’objet, tapez la requête suivante (en remplacant id_ancien_emetteurGPS
et id_nouvel_emetteurGPS
) :
UPDATE `gps_data` SET `id_tracked_objects` = 'id_ancien_emetteurGPS' WHERE `id_tracked_objects` = 'id_nouvel_emetteurGPS';
Mais si vous souhaitez les supprimer, privilégiez plutôt la requête suivante (en remplacant id_ancien_emetteurGPS
) :
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_ancien_emetteurGPS';
Tout comme dans le cas n°1, si vous voulez importer des données existantes, exécutez le script suivant : http://mon-domaine.com/controler/import_imap_csv.
CAS n°4 : Ne plus afficher un objet¶
2 solutions s’offrent à vous :
- Vous voulez conserver les anciennes données :
Il suffit pour cela de renommer l’identifiant dans la table tracked_objects
.
Et après il faut mettre le champ active
à 0
.
- Vous souhaitez supprimer définitivement les données :
Exécutez les requêtes suivantes (en remplacant id_emetteurGPS
) :
DELETE FROM `tracked_objects` WHERE `id` = 'id_emetteurGPS';
DELETE FROM `objects_features` WHERE `id_tracked_objects` = 'id_emetteurGPS';
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_emetteurGPS';
CONFIGURATION¶
Principe de l’application¶
Principe général :
L’application permet de suivre la position et le délacement de plusieurs objets équipés d’un GPS.
Les objets ont chacun un identifiant. Ils transmettent tous leur position GPS à un satellite à intervalles réguliers.
Il faut ensuite récupérer ces positions GPS des objets pour les intégrer dans la base de données MySQL. Pour cela un fichier TXT par position et par objet est envoyé à une boite email.
Le fichier TXT (nommé T5HS-4183_2014-07-31_185705.txt
où 4183
est l’identifiant de l’objet et les chiffres suivants sont la date et l’heure) est construit de la sorte :
2014-07-31 20:57:05+0 44.989867 6.022400 (-)0
Date Time TTF Lat Long SAT´s 2D/3D Alt H-DOP Temp X Y
2014-07-31 18:57:00 100 44.9901367 6.0225950 6 3D 2547 3.5 14 46 29
Dans cet exemple, le fichier contient :
- la date et l’heure du relevé GPS
- le TTF (Time To First Fix, temps mis pour obtenir la position GPS de l’objet)
- la latitude et longitude en WGS84
- le nombre de satellites qui ont permis de définir la position
- si la position a été fournie en 2D ou en 3D
- l’altitude de la position
- le H-DOP (Dilution Of Precision, coefficient de précision de la position)
- la température (fournie par le GPS)
- X et Y (non utilisées)
Une tâche (import_imap_csv
dans le fichier /classes/controler/controler.class.php
) permet de :
- Se connecter à cette boite email et d’en extraire les fichiers TXT en pièce-jointe des emails
- Copier ces fichiers TXT dans le répertoire
tmp/csv
- Supprimer les emails une fois les fichiers TXT copiés sur le serveur
- Importer les nouvelles positions des différents objets (si ceux-ci existent dans la BDD avec un identifiant commun) dans un fichier CSV (
/csv/tracked_objects.csv
) - Supprimer les fichiers TXT temporaires une fois qu’ils ont été traités
- Importer les nouvelles positions dans la BDD MySQL depuis le fichier
/csv/tracked_objects.csv
- Vider le fichier
/csv/tracked_objects.csv
Cette tache peut être lancée manuellement (url/controler/import_imap_csv
) ou par un CRON lancé autmatiquement à intervalle régulier.
Pour mettre en place le CRON qui va lancer cette tache toutes les heures, éditez la liste des CRON du serveur :
crontab -e
Ajouter cette ligne dans le fichier (en remplacant URL_FollowDem
par l’URL de votre application) :
#BOUQUETINS Import des donnees toutes les heures
0 */1 * * * wget http://URL_FollowDem/controler/import_imap_csv -O - >> /var/www/followdem/logs/imports.log
Les résultats de la tache lancée automatiquement toutes les heures seront écrits dans le fichier de log /logs/imports.log
.
D’autres manières de remplir ce CSV pourraient être envisagées :
- Remplir directement le fichier CSV automatiquement ou à la main
- Importer les fichiers TXT dans le répertoire
tmp/csv
sans passer par une connexion à une boite email.
Ainsi une autre tache est disponible sans se connecter à une boite email, ni passer par des fichiers TXT : url/controler/import_csv
- Elle recherche le fichier :
csv/tracked_objects.csv
- Puis importe selon la définition du tableau associatif
$config['csv_colonne']
(nom_donnee => index CSV)
Dans notre cas, le fichier CSV est constitué des colonnes :
- Id de l’objet.
- Nom de l’objet.
- Date de l’envoi des données au satellite.
- Heure de l’envoi des données au satellite.
- TTF (pas utilisé)
- Latitude.
- Longitude.
- Nombre de satellites.
- 3D ou 2D. (si c’est on 3D on a l’altitude)
- Altitude de l’objet.
- H-DOP. (permet de connaître la fiabilité de la position)
- Température.
- X (pas utilisé)
- Y (pas utilisé)
Les colonnes et leur ordre dans le CSV sont configurables dans le paramètre $config['csv_colonne']
du fichier /config/config.php
Il est possible de définir des seuils de valeur pour lesquelles on ne souhaite pas intégrer les positions dans la BDD (Nombre de satellites trop faible, H-DOP trop élevé, latitude, longitude ou altitude incohérentes,…) avec le paramètre $config['csv_condition']
dans le fichier /config/config.php
.
Configurer l’application¶
Rendez vous dans le fichier /config/config.php
, c’est ce fichier qui est la base de la configuration de l’application.
Modifier nom de domaine de l’application
$config['url'] = 'http://mon-domaine.com';
Changer le titre de l’application
$config['titre_application'] = 'FollowDem';
Modifier l’URL vers un formulaire de contact
$config['emailContact'] = 'http://mon-domaine.com/nous-contacter';
Définir les langues disponibles (complétez le array en suivant la logique ci-dessous)
$config['langue_dispo'] = array('fr_FR'=>'fr','us_US'=>'us');
Définir une langue par défaut
$config['langue_defaut'] = 'fr';
Choisir un fuseau horaire
$config['fuseau'] = 'Europe/Paris';
Modifier l’encodage de l’application par défaut
$config['encodage'] = 'UTF-8';
Changer l’encodage de la date de sortie
$config['datesortie'] = '%a %e %b %Y - %H:%M';
Définir la durée en jours minimale de non mise-à-jour des données (un objet est désactivé si il n’a pas reçu de données pendant cette durée)
$config['date_data_valide'] = 150;
Changer la période minimale de suivi d’un objet (en jours)
$config['periode_min'] = 15;
Changer la période maximale de suivi d’un objet
$config['periode_max'] = 360;
Modifier les périodes possibles pour le suivi d’un objet (affiché sous forme de liste déroulante)
$config['periode_valeurs'] = array(3,15,30,60,90,120,150,180,210,240,270,300,330,360);
Sélectionner un séparateur pour le chemin du répertoire de l’application
$config['system_separateur'] = '/';
Modifier le répertoire de l’application
$config['rep_appli'] = '/var/www/followdem';
Définir le séparateur dans les fichiers CSV
$config['csv_separateur'] = ',';
Définir le paramètre d’exclusion de caractères spéciaux
$config['csv_enclosure'] = '"';
Modifier le nom du fichier CSV contenant les données à importer dans la BDD
$config['csv_name'] = 'tracked_objects.csv';
Modifier le répertoire qui contient ce fichier CSV
$config['csv_repertoire'] = 'csv';
Définir les colonnes du fichier CSV que vous voulez utiliser
$config['csv_colonne'] = array('id'=>0,'nom'=>1,'date'=>2,'heure'=>3,'latitude'=>5,'longitude'=>6,'temperature'=>11,'nb_satellites'=>7,'altitude'=>9);
Affecter l’Id d’un objet à un nom d’objet
$config['csv_nom_tracked_objects'] = array();
Changer l’email de réception des erreurs de traitement des fichiers CSV
$config['csv_email_error_nom'] = array('monPrenom'=>'exemple@domaine.com');
Choisir si la transmission d’email d’erreur lors de l’import est autorisée
$config['csv_email_error'] = false;
Récupérer des propriétés supplémentaires dans le CSV
$config['csv_colonne_objects_features'] = array();
Modifier le format de date du fichier CSV
$config['csv_date_format'] = 'Y-m-d';
Modifier le format de l’heure du fichier CSV
$config['csv_heure_format'] = 'H:i:s';
Changer les restrictions d’import de certaines données dans le fichier CSV
$config['csv_condition'] = array(array(5,'>0'),array(6,'>0'),array(9,'>1000'),array(9,'<4102'));
$config['csv_condition_type'] = array(5=>'numeric',6=>'numeric',9=>'numeric');
Modifier les paramètres de connexion à la base de données
$config['db_host'] = 'localhost';
$config['db_name'] = 'dbname';
$config['db_user'] = 'dbuser';
$config['db_password'] = 'monpassachanger';
$config['db_prefixe'] = '';
$config['db_type'] = 'mysql';
$config['db_encodage'] = 'UTF8';
Modifier les paramètres d’envoi d’email
$config['email_smtp'] = 'smtp.domaine.com';
$config['email_user'] = 'exemple@domaine.com';
$config['email_password'] = 'monpassachanger';
$config['email_port'] = 465;
$config['email_SMTPAuth'] = true; //true - false
$config['email_SMTPSecure'] = 'ssl'; //ssl - tls
$config['email_Charset'] = 'UTF-8';
$config['email_From'] = 'exemple@domaine.com';
$config['email_FromName'] = 'FollowDem';
Choisir si le debug dans Smarty est autorisé
$config['smarty_debugging'] = false;
Choisir si le cache serveur dans Smarty est autorisé
$config['smarty_caching'] = true;
Définir la durée de vie du cache serveur Smarty
$config['smarty_cache_lifetime'] = 120;
Paramétrer les fonds de carte utilisés par l’application.
Si vous utilisez les fonds de cartes IGN, pensez à remplacer la valeur de maCleIgn
dans url
.
$config['leaflet_fonds_carte'] = array(
"IGNCARTE"=>array(
'name'=>'Carte IGN',
'url'=>'http://gpp3-wxs.ign.fr/maCleIgn/geoportail/wmts?LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
'attribution'=>'IGN',
'maxZoom'=>17,
'subdomains'=>''
),
"IGNPHOTO"=>array(
'name'=>'Photo aérienne IGN',
'url'=>'http://gpp3-wxs.ign.fr/maCleIgn/geoportail/wmts?LAYER=ORTHOIMAGERY.ORTHOPHOTOS&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
'attribution'=>'IGN',
'maxZoom'=>19,
'subdomains'=>''
),
"IGNCARTEDET"=>array(
'name'=>'Carte détaillée IGN',
'url'=>'http://gpp3-wxs.ign.fr/maCleIgn/geoportail/wmts?LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
'attribution'=>'IGN',
'maxZoom'=>17,
'subdomains'=>''
),
"OSM"=>array(
'name'=>'OpenStreetMap',
'url'=>'http://{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png',
'attribution'=>'Tiles courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a>. Map data (c) <a href="http://www.openstreetmap.org/" target="_blank">OpenStreetMap</a> contributors, CC-BY-SA.',
'maxZoom'=>19,
'subdomains'=>array("otile1", "otile2", "otile3", "otile4")
)
);
Choisir le fond de carte par défaut sur l’application
$config['leaflet_fonds_carte_defaut'] = "OSM";
Changer les pictogrammes utilisés par Leaflet
$config['leaflet_pictos'] = array('position'=>
array(
'iconUrl'=>'images/marker-icon.png',
'iconRetinaUrl'=>'images/marker-icon-2x',
'iconSize'=>array(25, 41),
'iconAnchor'=>array(13, 20),
'popupAnchor'=>array(0, 0),
'shadowUrl'=>'images/marker-shadow.png',
'shadowRetinaUrl'=>'images/marker-shadow.png',
'shadowSize'=>array(41, 41),
'shadowAnchor'=>array(13, 20)
)
);
Choisir la position de centrage initial sur la carte
$config['leaflet_centrage_initiale'] = array('44.845159','6.310043');
Définir le zoom initial sur la carte
$config['leaflet_zoom_initial'] = 11;
Définir le zoom maximal sur la carte
$config['leaflet_zoom_max'] = 17;
Définir la position des icônes de zoom sur la carte
$config['leaflet_position_zoom'] = 'topright';
Choisir si le fond Google Maps sur la carte est autorisé
$config['leaflet_gmap'] = false;
Choisir un style par défaut pour les tracés
$config['lefleat_style_trace'] = array('color'=>"#000","fillColor"=>"#FFF","Opacity"=>1,"fillOpacity"=>1,"weight"=>3);
Choisir un style par défaut pour les flèches de direction
$config['lefleat_style_direction'] = array('color'=>"#7F2B7F","Opacity"=>1,"weight"=>3);
Modifier la distance d’affichage des flèches directionnelles sur les tracés
$config['lefleat_repeat_direction'] = '50';
Choisir un style par défaut des derniers points de suivi des objets
$config['lefleat_style_point_defaut'] = array('color'=>"#A60000","fillColor"=>"#f03","Opacity"=>1,"fillOpacity"=>0.9,"weight"=>5);
Modifier le style des derniers points en fonction des paramètres contenus dans la base de données
$config['lefleat_style_point_surcharge'] = array('color'=>"couleurD","fillColor"=>"couleurG","Opacity"=>1,"fillOpacity"=>0.9,"weight"=>5);
Paramétrer le suivi statistique de l’application (Google Analytics dans cet exemple avec ID à remplacer par le votre)
$config['active_tracking_stats'] = 'true';
$config['tracking_stats'] = "
<script type='text/javascript'>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'ID_GOOGLE_ANALYTICS_A_MODIFIER']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>";
Choisir si la récupération de la couleur dans le nom de l’objet est autorisée
$config['recupe_couleur_name_tracked_objects'] = true;
Choisir si l’affichage des messages d’erreurs et des exceptions est autorisé
$config['debug']=true;
Choisir si l’enregistrement des logs dans la base de données est autorisé
$config['log']=false;
CHANGELOG¶
0.4.0 (unreleased)¶
0.3.1 (2018-04-24)¶
New features
- US language file added
- Generic favicon
Documentation
- Update data management documentation
- Several additional information in installation documentation
0.3.0 (2015-06-26)¶
Nouvelles fonctionnalités
- Généricité des pages d’info de l’application (dans /template/pages/fr/)
- Documentation de la Gestion des données
- Evolution des développements sur l’administration (formulaire LOGIN, connexion à la BDD, composants JQUERY UI…)
0.2.0 (2015-06-22)¶
Nouvelles fonctionnalités
- Premiers développements de l’interface d’administration des données
- Documentation de la possibilité d’importer des données directement depuis le CSV avec la tache
url/controler/import_csv
(sans passer par la connexion email et les fichiers TXT)
Corrections de bug
- Erreur de nom de variable dans
api.class.php
- Suppression de 2 fichiers inutiles dans
/config/
- Nettoyage des commentaires
0.1.0 (2015-06-18)¶
Première version générique de l’application
A partir de l’application BOUQUETINS DU PARC NATIONAL DES ECRINS (http://bouquetins.ecrins-parcnatonal.fr) développée de manière générique par @nienfba en 2013, @romthi38 a finalisé la dépersonnalisation en juin 2015 pour qu’elle puisse être publiée et ainsi être utilisée par d’autres structures, potentiellement dans des contextes différents (suivi GPS de rapaces ou de tout autre animal ou objet équipé d’un émetteur GPS).
Fonctionnalités
- Retrait de toutes les spécificités de l’application initiale « BOUQUETINS du PNE »
- Intégration de tous les fichiers de l’application
- Intégration d’un script de création de la BDD et d’intégration optionnelle d’un jeu de données d’exemple
- Réalisation d’une documentation complète (http://followdem.rtfd.org) pour l’installation du serveur, de l’application et de la BDD ainsi que la configuration de l’application.