PTV Loxane, solutions pour la mobilité
Moteur de requêtes pour données GSF
David BAROUHDavid BAROUHMaster Professionnel SIIC 2007/2008Master Professionnel SIIC 2007/2008
Sous le tutorat de Sébastien BEOLET, Ingénieur de Sous le tutorat de Sébastien BEOLET, Ingénieur de RechercheRecherche
Présentation du 26 septembre 2008Présentation du 26 septembre 2008
PTV Loxane, solutions pour la mobilité
Plan
❏ Présentation de l’entreprisePrésentation de l’entreprise
❏ Etudes des besoinsEtudes des besoins
❏ Etudes de l’existant : ParserEtudes de l’existant : Parser
❏ Architecture proposéeArchitecture proposée
❏ Développement de la librairieDéveloppement de la librairie
❏ Interface graphique / OCXInterface graphique / OCX
❏ Gestion de projetGestion de projet
PTV Loxane, solutions pour la mobilité
Introduction
❏ Buts de la missionButs de la mission► Première expériencePremière expérience► Formation complèteFormation complète► Diplôme M2 SIICDiplôme M2 SIIC
❏ ContexteContexte► Cartographie numériqueCartographie numérique► Entreprise innovanteEntreprise innovante
❏ Vue d’ensembleVue d’ensemble► Recherches et développementRecherches et développement► Cadre du cursusCadre du cursus
PTV Loxane, solutions pour la mobilité
Plan
❏ Présentation de l’entreprisePrésentation de l’entreprise► Groupe PTV / PTV AGGroupe PTV / PTV AG► PTV LoxanePTV Loxane
❏ Etudes des besoinsEtudes des besoins
❏ Etudes de l’existant : ParserEtudes de l’existant : Parser
❏ Architecture proposéeArchitecture proposée
❏ Développement de la librairieDéveloppement de la librairie
❏ Interface graphique / OCXInterface graphique / OCX
❏ Gestion de projetGestion de projet
PTV Loxane, solutions pour la mobilité
Groupe PTV / PTV AG
❏ Groupe PTVGroupe PTV► 29 ans d’expérience29 ans d’expérience► 17 filiales sur 9 pays européens et 4 continents17 filiales sur 9 pays européens et 4 continents► CA consolidé de 83.4 M€CA consolidé de 83.4 M€► Effectif de 700 personnesEffectif de 700 personnes
❏ Quelques chiffresQuelques chiffres► Plus de 5 000 000 d’utilisateurs grand public.► Plus de 50 000 utilisateurs professionnels.► Plus de 500 projets logistique ou mobilité
PTV Loxane, solutions pour la mobilité
Groupe PTV / PTV AG
❏ Présence internationalePrésence internationale
PTV Loxane, solutions pour la mobilité
PTV Loxane
❏ PTV LoxanePTV Loxane► 14 ans d'expérience14 ans d'expérience► 34 collaborateurs34 collaborateurs► 2 établissements (Beauchamp et Toulouse)2 établissements (Beauchamp et Toulouse)
❏ ClientsClients► 20 000 licences professionnelles20 000 licences professionnelles► 20 000 véhicules suivis en temps réel20 000 véhicules suivis en temps réel► 20 000 ordres de transports optimisés ou 20 000 ordres de transports optimisés ou
dispatchés chaque jourdispatchés chaque jour► Des millions de cartes et de calculs d'itinéraires en Des millions de cartes et de calculs d'itinéraires en
ligneligne
PTV Loxane, solutions pour la mobilité
PTV Loxane
❏ MissionMission► Aider entreprises et particuliers dans la Aider entreprises et particuliers dans la
gestion de leurs déplacementsgestion de leurs déplacements
❏ MétiersMétiers► Edition & distributionEdition & distribution
● LogicielsLogiciels● ComposantsComposants● Web servicesWeb services
► ServicesServices● ÉtudesÉtudes● InstallationsInstallations● Formations et accompagnementFormations et accompagnement
PTV Loxane, solutions pour la mobilité
Plan
❏ Présentation de l’entreprisePrésentation de l’entreprise❏ Etudes des besoinsEtudes des besoins
► Outils de PTV LoxaneOutils de PTV Loxane► Architecture actuelleArchitecture actuelle► BesoinsBesoins
❏ Etudes de l’existant : ParserEtudes de l’existant : Parser❏ Architecture proposéeArchitecture proposée❏ Développement de la librairieDéveloppement de la librairie❏ Interface graphique / OCXInterface graphique / OCX❏ Gestion de projetGestion de projet
PTV Loxane, solutions pour la mobilité
Outils de PTV Loxane
❏ Base de données cartographiques GSFBase de données cartographiques GSF
LandmarkLandmark(.lxd)(.lxd)
LinearLinear(.lin)(.lin)
LandcoverLandcover(.lco)(.lco)
PTV Loxane, solutions pour la mobilité
Architecture actuelle
ApplicationApplication(Loxane Pro, …)(Loxane Pro, …)
LandmarkLandmark(.lxd)(.lxd)
LinearLinear(.lin)(.lin)
LandcoverLandcover(.lco)(.lco)
PTV Loxane, solutions pour la mobilité
Besoins
❏ Iso fonctionnalitésIso fonctionnalités
❏ Evolution des fonctionnalitésEvolution des fonctionnalités► Plusieurs fichiers en entréePlusieurs fichiers en entrée► Langage particulierLangage particulier► ScriptsScripts► Nouvelles requêtes géographiquesNouvelles requêtes géographiques
❏ MoteurMoteur► Léger, portableLéger, portable► Facilement intégrable, évolutif, compréhensibleFacilement intégrable, évolutif, compréhensible► Contrôle total, pas de dépendancesContrôle total, pas de dépendances► Pas d’utilisation d’outils payantsPas d’utilisation d’outils payants
PTV Loxane, solutions pour la mobilité
IHMIHM
Besoins
ApplicationApplication(Loxane Pro, …)(Loxane Pro, …)
LandmarkLandmark(.lxd)(.lxd)
LinearLinear(.lin)(.lin)
LandcoverLandcover(.lco)(.lco)
SQLEngineSQLEngine
PTV Loxane, solutions pour la mobilité
IHMIHM
Besoins
ApplicationApplication(Loxane Pro, …)(Loxane Pro, …)
LandmarkLandmark(.lxd)(.lxd)
LinearLinear(.lin)(.lin)
LandcoverLandcover(.lco)(.lco)
SQLEngineSQLEngine
PTV Loxane, solutions pour la mobilité
Plan
❏ Présentation de l’entreprisePrésentation de l’entreprise
❏ Etudes des besoinsEtudes des besoins
❏ Etudes de l’existant : ParserEtudes de l’existant : Parser
❏ Architecture proposéeArchitecture proposée
❏ Développement de la librairieDéveloppement de la librairie
❏ Interface graphique / OCXInterface graphique / OCX
❏ Gestion de projetGestion de projet
PTV Loxane, solutions pour la mobilité
Etude de l’existant
❏ Lex et YaccLex et Yacc► Classiques et généralistesClassiques et généralistes► Analyse grammaticaleAnalyse grammaticale► PayantPayant
❏ Flex et BisonFlex et Bison► Equivalents gratuits de Lex et YaccEquivalents gratuits de Lex et Yacc► Difficultés de mises en places et maintenanceDifficultés de mises en places et maintenance
❏ RegexRegex► RapideRapide► Librairies externesLibrairies externes► Difficultés de mises en place et maintenanceDifficultés de mises en place et maintenance
PTV Loxane, solutions pour la mobilité
Etude de l’existant
❏ Temel SQLParserTemel SQLParser► Simple et légerSimple et léger► SimplisteSimpliste► LimitéLimité
❏ OGR / MitabOGR / Mitab► Complet, rapide et portableComplet, rapide et portable► Complexité de portage en C++Complexité de portage en C++
PTV Loxane, solutions pour la mobilité
Etude de l’existant
"A la main"
OGR / Mitab
Temel SQLParser
Regex
Flex et Bison
Lex et Yacc
IntégrableCapacitésEvolutifPortableLégerGratuitMéthode
PTV Loxane, solutions pour la mobilité
Plan
❏ Présentation de l’entreprisePrésentation de l’entreprise❏ Etudes des besoins Etudes des besoins ❏ Etudes de l’existant : ParserEtudes de l’existant : Parser❏ Architecture proposéeArchitecture proposée
► ArchitectureArchitecture► LangageLangage
❏ Développement de la librairieDéveloppement de la librairie❏ Interface graphique / OCXInterface graphique / OCX❏ Gestion de projetGestion de projet
PTV Loxane, solutions pour la mobilité
Architecture
IHMIHM
ApplicationApplication(Loxane Pro, …)(Loxane Pro, …)
LandmarkLandmark(.lxd)(.lxd)
LinearLinear(.lin)(.lin)
LandcoverLandcover(.lco)(.lco)
SQLEngineSQLEngine
PTV Loxane, solutions pour la mobilité
Architecture
IHMIHM
ApplicationApplication(Loxane Pro, …)(Loxane Pro, …)
LandmarkLandmark(.lxd)(.lxd)
LinearLinear(.lin)(.lin)
LandcoverLandcover(.lco)(.lco)
SQLEngineSQLEngineDLLDLL
PTV Loxane, solutions pour la mobilité
Architecture
IHMIHM
ApplicationApplication(Loxane Pro, …)(Loxane Pro, …)
LandmarkLandmark(.lxd)(.lxd)
LinearLinear(.lin)(.lin)
LandcoverLandcover(.lco)(.lco)
SQLEngineSQLEngineOCXOCX
PTV Loxane, solutions pour la mobilité
Langage
❏ Basé sur le SQLBasé sur le SQLSELECT toto.* FROM toto WHERE toto.1 < 2
❏ Requêtes supplémentairesRequêtes supplémentaires► CREATE TABLECREATE TABLE► WRITE TABLEWRITE TABLE
❏ Requêtes géographiquesRequêtes géographiques► CONTAINS, INTERSECT, TOUCHESCONTAINS, INTERSECT, TOUCHES► WITHIN, DISTANCE, EQUALS, OVERLAPSWITHIN, DISTANCE, EQUALS, OVERLAPS► POINTONSURFACE, AREA, NUMGEOMETRIES, GEOMETRYN, POINTONSURFACE, AREA, NUMGEOMETRIES, GEOMETRYN,
GEOMETRYTYPE, BOX2DGEOMETRYTYPE, BOX2D
❏ Création d’une BNFCréation d’une BNF
PTV Loxane, solutions pour la mobilité
Plan
❏ Présentation de l’entreprisePrésentation de l’entreprise❏ Etudes des besoinsEtudes des besoins❏ Etudes de l’existant : ParserEtudes de l’existant : Parser❏ Architecture proposéeArchitecture proposée❏ Développement de la librairieDéveloppement de la librairie
► ArchitectureArchitecture► StructuresStructures► Requêtes géographiquesRequêtes géographiques► MoteurMoteur► Exemple de scriptExemple de script
❏ Interface graphique / OCXInterface graphique / OCX❏ Gestion de projetGestion de projet
PTV Loxane, solutions pour la mobilité
Architecture
SQLTableSQLTable
PTV Loxane, solutions pour la mobilité
Architecture
SQLDatabaseSQLDatabase
SQLTableSQLTable
PTV Loxane, solutions pour la mobilité
Architecture
lxwSQLEnginelxwSQLEngine
SQLParserSQLParser
SQLDatabaseSQLDatabase
SQLTableSQLTable
PTV Loxane, solutions pour la mobilité
Architecture
lxwSQLEnginelxwSQLEngine
SQLQueryResultSQLQueryResult SQLParserSQLParser
SQLDatabaseSQLDatabase
SQLTableSQLTable
SQLLXNSQLLXN
SQLUtilsSQLUtils
PTV Loxane, solutions pour la mobilité
Architecture
lxwSQLEnginelxwSQLEngine
SQLQueryResultSQLQueryResult SQLParserSQLParser
SQLDatabaseSQLDatabase
SQLTableSQLTable
SQLLXNSQLLXN
SQLUtilsSQLUtils
PTV Loxane, solutions pour la mobilité
Structures
QUERYQUERY
COLUMN_DEFINITIONCOLUMN_DEFINITION TABLE_DEFINITIONTABLE_DEFINITION SUMMARYSUMMARY FIELD_OPERATIONFIELD_OPERATION
PTV Loxane, solutions pour la mobilité
Structures
FIELD_OPERATIONFIELD_OPERATION
First Sub OpFirst Sub Op Second Sub OpSecond Sub Op
First Sub OpFirst Sub Op Second Sub OpSecond Sub Op First Sub OpFirst Sub Op Second Sub OpSecond Sub Op
PTV Loxane, solutions pour la mobilité
FIELD_OPERATIONFIELD_OPERATION
First Sub OpFirst Sub Op Second Sub OpSecond Sub Op
First Sub OpFirst Sub Op Second Sub OpSecond Sub Op First Sub OpFirst Sub Op Second Sub OpSecond Sub Op
SELECT * FROM toto WHERE toto.1 < 20 OR (toto.1 > 50 AND toto.1 < 100)
Structures
PTV Loxane, solutions pour la mobilité
Structures
OROR
<< ANDAND
toto.1toto.1 2020 >> <<
toto.1toto.1 5050 toto.1toto.1 100100
PTV Loxane, solutions pour la mobilité
Requêtes géographiques
❏ Nouvel attribut « Geometry »Nouvel attribut « Geometry »
❏ WITHIN & INTERSECTWITHIN & INTERSECT► Evaluation similaire aux opérations classiquesEvaluation similaire aux opérations classiques► Exemple : toto.Geometry INTERSECT POINT(1 1)Exemple : toto.Geometry INTERSECT POINT(1 1)
❏ DISTANCEDISTANCE► Fonction différenteFonction différente► Calcul doit être effectué Calcul doit être effectué à priorià priori► Exemple : DISTANCE(toto.Geometry, POINT(1 1)) < 100Exemple : DISTANCE(toto.Geometry, POINT(1 1)) < 100
PTV Loxane, solutions pour la mobilité
Requêtes géographiques
❏ Différentes utilisationDifférentes utilisation► CoordonnéesCoordonnées
● Utilisation de chaînes WKTUtilisation de chaînes WKTPOINT(1 1)POINT(1 1)
► TablesTables● DISTANCE(villes.Geometry, hopitaux.Geometry) < 1000DISTANCE(villes.Geometry, hopitaux.Geometry) < 1000
❏ Référentiels spatiauxRéférentiels spatiaux► Nouvelle clause : SPATIALREFNouvelle clause : SPATIALREF► Généralisation du SQLLXNGénéralisation du SQLLXN
PTV Loxane, solutions pour la mobilité
Moteur (lxwSQLEngine)
❏ Fonctionnement en deux tempsFonctionnement en deux temps► Pré sélection géographiquePré sélection géographique► EvaluationEvaluation
❏ Sélections par identifiantsSélections par identifiants
❏ Réutilisation des travaux préparatoiresRéutilisation des travaux préparatoires
❏ Utilisation d’une structure de stockage des résultatsUtilisation d’une structure de stockage des résultats► GénéralisteGénéraliste► IdentifiéeIdentifiée
PTV Loxane, solutions pour la mobilité
Exemple de script
CREATE TABLE C:\TA20077\France\Landcover\admin3.lco, Landcover, departement;CREATE TABLE C:\TA20077\France\Landmark\cities5.lxd, Landmark, villes;
PTV Loxane, solutions pour la mobilité
Exemple de script
CREATE TABLE C:\TA20077\France\Landcover\admin3.lco, Landcover, departement;CREATE TABLE C:\TA20077\France\Landmark\cities5.lxd, Landmark, villes;
SELECT w.*FROM departement wWHERE DISTANCE(w.geometry, POINT(369377 1986171)) < 100000SPATIALREF PROJCS_LAMBERT_II_ETENDU;
PTV Loxane, solutions pour la mobilité
Exemple de script
PTV Loxane, solutions pour la mobilité
Exemple de script
CREATE TABLE C:\TA20077\France\Landcover\admin3.lco, Landcover, departement;CREATE TABLE C:\TA20077\France\Landmark\cities5.lxd, Landmark, villes;
SELECT w.*FROM departement wWHERE DISTANCE(w.geometry, POINT(369377 1986171)) < 100000SPATIALREF PROJCS_LAMBERT_II_ETENDU;
PTV Loxane, solutions pour la mobilité
Exemple de script
CREATE TABLE C:\TA20077\France\Landcover\admin3.lco, Landcover, departement;CREATE TABLE C:\TA20077\France\Landmark\cities5.lxd, Landmark, villes;
SELECT w.*FROM departement wWHERE DISTANCE(w.geometry, POINT(369377 1986171)) < 100000SPATIALREF PROJCS_LAMBERT_II_ETENDU;
SELECT x.*FROM Result−2−lco w, villes xWHERE x.geometry WITHIN w.geometry;
PTV Loxane, solutions pour la mobilité
Exemple de script
PTV Loxane, solutions pour la mobilité
Exemple de script
CREATE TABLE C:\TA20077\France\Landcover\admin3.lco, Landcover, departement;CREATE TABLE C:\TA20077\France\Landmark\cities5.lxd, Landmark, villes;
SELECT w.*FROM departement wWHERE DISTANCE(w.geometry, POINT(369377 1986171)) < 100000SPATIALREF PROJCS_LAMBERT_II_ETENDU;
SELECT x.*FROM Result−2−lco w, villes xWHERE x.geometry WITHIN w.geometry;
PTV Loxane, solutions pour la mobilité
Exemple de script
CREATE TABLE C:\TA20077\France\Landcover\admin3.lco, Landcover, departement;CREATE TABLE C:\TA20077\France\Landmark\cities5.lxd, Landmark, villes;
SELECT w.*FROM departement wWHERE DISTANCE(w.geometry, POINT(369377 1986171)) < 100000SPATIALREF PROJCS_LAMBERT_II_ETENDU;
SELECT x.*FROM Result−2−lco w, villes xWHERE x.geometry WITHIN w.geometry;
WRITE TABLE Result−3−lxd AS CitiesInDep IN C:\Tables\;
PTV Loxane, solutions pour la mobilité
Plan
❏ Présentation de l’entreprisePrésentation de l’entreprise
❏ Etudes des besoinsEtudes des besoins
❏ Etudes de l’existant : ParserEtudes de l’existant : Parser
❏ Architecture proposéeArchitecture proposée
❏ Développement de la librairieDéveloppement de la librairie
❏ Interface graphique / OCXInterface graphique / OCX
❏ Gestion de projetGestion de projet
PTV Loxane, solutions pour la mobilité
Interface graphique / OCX
PTV Loxane, solutions pour la mobilité
Interface graphique / OCX
❏ Informations disponiblesInformations disponibles► Tables disponiblesTables disponibles► Champs disponiblesChamps disponibles► Opérations adéquates suivant les types de champsOpérations adéquates suivant les types de champs
❏ Aide à la conceptionAide à la conception► Complétion automatiqueComplétion automatique► Détection des erreurs syntaxiquesDétection des erreurs syntaxiques
❏ Interface unifiéeInterface unifiée
PTV Loxane, solutions pour la mobilité
Plan
❏ Présentation de l’entreprisePrésentation de l’entreprise❏ Etudes des besoins Etudes des besoins ❏ Etudes de l’existant : ParserEtudes de l’existant : Parser❏ Architecture proposéeArchitecture proposée❏ Développement de la librairieDéveloppement de la librairie❏ Interface graphique / OCXInterface graphique / OCX❏ Gestion de projetGestion de projet
► PlanningPlanning► RéunionsRéunions
PTV Loxane, solutions pour la mobilité
Planning et réunions
❏ Réunions généralesRéunions générales❏ Réunions noyauRéunions noyau❏ Réunions de bilanRéunions de bilan
❏ Etude des besoinsEtude des besoins
❏ Etude de l’existantEtude de l’existant
❏ Création du langageCréation du langage
❏ Création des structuresCréation des structures
❏ Adaptation du parserAdaptation du parser
❏ Moteur de requêtageMoteur de requêtage
❏ Encapsulation / OCXEncapsulation / OCX
Total :Total :
66
88
88
1010
2020
6464
1414
130130
PTV Loxane, solutions pour la mobilité
Conclusion
❏ Nouvelles compétencesNouvelles compétences► TechniquesTechniques► Cartographie numériqueCartographie numérique► Apprentissage du métier d’ingénieurApprentissage du métier d’ingénieur
❏ Fonctionnement d’une entrepriseFonctionnement d’une entreprise► Travail en équipeTravail en équipe► Partage des connaissancesPartage des connaissances► Buts communsButs communs
❏ Mise en perspectiveMise en perspective► Du cursus universitaireDu cursus universitaire► De l’avenir en tant qu’ingénieurDe l’avenir en tant qu’ingénieur
PTV Loxane, solutions pour la mobilité
Moteur de requêtes pour données GSF
David BAROUHDavid BAROUHMaster Professionnel SIIC 2007/2008Master Professionnel SIIC 2007/2008
Sous le tutorat de Sébastien BEOLET, Ingénieur de RechercheSous le tutorat de Sébastien BEOLET, Ingénieur de Recherche
Présentation du 26 septembre 2008Présentation du 26 septembre 2008
Merci de votre écoute