REST API - geolys.net

Transcription

REST API - geolys.net
Inside
Plate-forme de Géo-Intelligence pour les
Géo-Services multi-bâtiments et multi-étages
Open-Source
GEOLYS est la 1ère plate-forme de Géo-Intelligence du marché qui offre un
ensemble complet de géo-services contextualisés (personnalisables en
fonction du profil et de l’état en temps réel de l’environnement) et multibâtiments avec :
o rendu cartographique
o calcul d’itinéraire et guidage adaptés aux profils des utilisateurs
o notifications contextualisés
o analyse de données spatio-temporelles.
Les fonctionnalités GEOLYS sont facilement intégrables aux applications
métiers et disponibles hors connexion.
Le moteur de localisation de GEOLYS, issu de 3 années de recherches, fournit
une position à tout moment et en tout point du lieu à partir des capteurs du
téléphone, du plan du lieu et des équipements déjà disponibles.
GEOLYS est la seule solution industrielle (chaîne de production, robuste et
éprouvée) qui permette la mise en œuvre efficace de Géo-services à partir des
informations existantes (OSM, CAO, BIM, SIG…).
Rendre l’espace Géo-Intelligent
1. Une cartographie claire et simple pour explorer et comprendre.
2. Un guidage et un accompagnement individualisés et sécurisés
en temps réel.
3. Des notifications géo-contextualisées en fonction de la
personne, du lieu et de l’instant.
4. Une collecte des données de localisation pour enrichir la
connaissance métier et améliorer l’expérience.
La Géo-Intelligence pour l’ouverture de nouveaux
services à forte valeur ajoutée dans les bâtiments
Recherche et rendu
Value Maps
cartographique contextualisés,
multi-bâtiments
DONNEES DE CAPTEURS
MEMS – GPS – WiFi – Beacons
LiFi – UWB – NFC
Calcul d’itinéraire et guidage
Guidance
contextualisés
Platform
Notifications contextualisées
GEOMETRIE, TOPOLOGIE ET
SEMANTIQUE DU LIEU
OSM – CAO – BIM – SIG
Interaction
Analyse de données spatioAnalytics
temporelles
L’offre de plate-forme GEOLYS pour enrichir les
applications métier
WEB
SDK
CONTENUS POUR RENDU
VECTORIEL
RECHERCHE
CALCUL D’ITINERAIRE & GUIDAGE
CONTEXTUALISES
NOTIFICATIONS
CONTENUS POUR RENDU
VECTORIEL
RECHERCHE
SERVER
EDITEUR DE LIEU
AVEC ATTRIBUTS PERSONALISABLES
EDITEUR
DE ZONES DE GÉOFENCING
EDITEUR DE POSITION
D’EQUIPEMENTS
COLLECTE DE DONNEES
SPATIO-TEMPORELLES
SERVICE WEB
SECURISE
Les atouts de la solution GEOLYS
Une plate-forme de Géo-Intelligence,
immédiatement opérationnelle à partir des plans numériques.
o Sa cartographie outdoor + données numériques des bâtiments (AutoCAD, BIM…) pour une couverture
de besoins en Géo-Services à 100%
Un hardware minimaliste pour fonctionner
o Un fonctionnement autonome avec un minimum de balises
Pas d’interaction avec le SI du site
o Une gestion autonome des données qui facilite la mise en œuvre
Les atouts de GEOLYS Guidance
Capteurs
Avec plans
du lieu
Fusion des
capteurs avec
plans du lieu
GPS
MEMS du
téléphone
Bluetooth
LiFi
Position initiale
X
X
√
√
X
√
Précision en 2D
X
√
X
X
√
√
√
√
√
€€
€
€
Dérive
Multi-étages
Coûts
X
Proche de la balise Sous la lampe
X
√
Altimètre requis
Erratique
€€
Maximiser les avantages et minimiser les contraintes
Ils nous font confiance
L’éditeur de Basemap
Gestion de la BaseMap avec choix de la zone géographique concernée (zone qui sera
accessible en offline)
Choix de la zone souhaitée par
coordonnées ou manuellement
sur la carte et du niveau de zoom
par défaut.
L’éditeur de Venue
Pour mettre à jour simplement les plans indoor et les éléments utiles au déplacement.
Le plan en 3D se met à
jour automatiquement
dans l’application après
modification dans
l’éditeur.
L’éditeur des scénarii de Géofencing
Pour définir les scénarii de géolocalisation en fonction des objectifs et des usages souhaités :
Guidages, déclenchement de push, ouverture de pages, déclenchement d’alerte, GéoTracking
des utilisateurs…
Les scénarii de
géolocalisation définissent
les zones d’action dans
l’application
Le Gestionnaire des équipements
Pour permettre le géoréférencement des équipements, la réalisation des plans d’implantation et la
maintenance des équipements (bornes Wifi, balises BLE, émetteurs ultrason, et diffuseurs Lifi)
Le data-visualiseur
Pour permettre une analyse des flux des utilisateurs directement sur la carte (Flux des
déplacements, temps de présence…).
Tracking des utilisateurs / Heatmap
Temps de présence par zone / période donnée
C’est très clair, mais
techniquement ?
Depuis plus de 2 ans,
nous construisons une
architecture solide et
évolutive
L’offre de plate-forme GEOLYS pour enrichir les
applications métier
WEB
SDK
CONTENUS POUR RENDU
VECTORIEL
RECHERCHE
CALCUL D’ITINERAIRE & GUIDAGE
CONTEXTUALISES
NOTIFICATIONS
CONTENUS POUR RENDU
VECTORIEL
RECHERCHE
SERVER
EDITEUR DE LIEU
AVEC ATTRIBUTS PERSONALISABLES
EDITEUR
DE ZONES DE GÉOFENCING
EDITEUR DE POSITION
D’EQUIPEMENTS
COLLECTE DE DONNEES
SPATIO-TEMPORELLES
SERVICE WEB
SECURISE
High level architecture
Basemap Data
OSM
(.XML)
Ingest Outdoor Data
CLOUD
Deliver Vector map tiles
Account directory
BIM
OSM
1 PNG
Ingest Indoor Data
Venue UI modules
(per floor)
Plan Editor module
SHP
Files
IFC
Geofencing module
DXF
Spots module
Geolocation
LOC
DB
Geotracking module
Ingest Geolocation Database
Deliver Venue data
(features, spots, fencing
zones & rules, …)
R
E
S
T
A
P
I
Deliver Geolocation
databases
Send User Position
SDK
WEB
CONTENUS POUR RENDU
VECTORIEL
Formats vectoriels 2D produits par Geolys : MBTiles , GeoJSON,
OSM (Open Street Map)
MBTiles : Stockage offline des tuiles vectorielles au format
mbtiles créé par Mapbox : https://github.com/mapbox/mbtilesspec
• Format embarqué performant pour le stockage et le
rendu de données cartographiques vectorielles
• Poids sur le périmètre de « Paris » : env. 15Mo
GeoJSON : Format standard JSON pour les données
géographiques (http://geojson.org/) exploitable facilement
Moteurs vectoriels compatibles orienté SIG (layers + styling) :
OpenScienceMap, Mapbox GL (JS / Native), Leaflet, …
CONTENUS POUR RENDU
VECTORIEL
Formats 3D produits par Geolys :
• DAE (collada) : Expérimental
Moteurs orienté 3D pour le rendu (scene + models + materials +
lights …) :
Three.js, Scene.js, SceneKit, Unity, Minko, …
CALCUL D’ITINERAIRE & GUIDAGE
CONTEXTUALISES
Problématiques :
• Plusieurs fournisseurs, équipements, SDKs
• Format de localisation retourné non homogène : lon / lat, x/y, …,
• SDK fournisseur implique d’utiliser la solution complète (rendu, cms, ...)
CALCUL D’ITINERAIRE & GUIDAGE
CONTEXTUALISES
Localisation agnostique :
• Stockage des équipements de localisation (Spots) avec un modèle
évolutif (location / technologie / fournisseur / settings)
• Framework d’intégration de location « providers »
• Abstraction de la position fournie via « VenueLocation » retourne un
lon / lat / building / floor / elevation (compatible outdoor/indoor)
• Différents providers implémentés (wrap SDK du fournisseur) :
• BeaconProvider (utilise les spots=beacons pour faire de la proximité)
• LuciomProvider (utilise les spots=lifi pour faire de la proximité)
• GuidanceProvider (provider Geolys qui consomme tous les spots +
map matching + mems )> et fait de la fusion de données)
• Autres fournisseurs ….
CALCUL D’ITINERAIRE & GUIDAGE
CONTEXTUALISES
Calcul d’itinéraire contextualisé :
• Calcul point A vers B (intérieur / extérieur) dans le périmètre de la venue
• Mécanisme de profil d’utilisateur pour pondérer les résultats du calcul en
fonction du :
• Lieu
• Profil utilisateur
• Contexte
• Différents RoutingContextAdapters customizables
• NormalRoutingContextAdapter : Sans contraintes
• HandicapRoutingContextAdapter : Tiens compte de l’handicap de
l’utilisateur (évite les escaliers de plus de X mètres, les portes de
moins de X mètres, …)
• ...
EDITEUR DE LIEU
AVEC ATTRIBUTS PERSONALISABLES
EDITEUR
DE ZONES DE GÉOFENCING
Basé sur le projet OpenSource iD
(http://ideditor.com) :
• Editeur vectoriel OpenSource
• Basé sur les technologies Javascript, SVG,
D3.JS
Enrichi par Géolys et utilisé comme socle pour :
•
•
•
•
Géo référencement des plans
L’édition des données du bâtiment
Editeur de scénarios de geofencing
Gestionnaire d’équipements
EDITEUR DE POSITION
D’EQUIPEMENTS
EDITEUR
DE SCÉNARII DE GÉOFENCING
NOTIFICATIONS
GeoFencing
Notions :




1 scénario = plusieurs zones
1 zone géométrique géoréférencée dans le lieu
Plusieurs conditions : Entrée / Sortie / Stagnation dans la zone
Plusieurs actions évolutives : text, uri (http://, local://, geolys://,
custom, …)
Moteur sur le mobile :
 S’appuie sur la « VenueLocation » homogène retournée par le
framework Géolys

Ex : on peut déclencher une action sous un iBeacon et sous un
LIFI, ou à partir d’une localisation précise
Geolys REST API
CLOUD
REST API
Native applications
SDK
Géolys native SDK
Web / mobiles sites
WEB RWD
Use REST API + Javascript
Desktop applications
Use REST API
(All langages)
Embed in a Browser
Geolys REST API
Secure HTTPS Endpoint
https://geolys.io/api/v1/...
CLOUD
REST API
API KEY based authentication
HTTP Headers : X-API-Key:<myapi key>
OAuth 2
/oauth2/token
Client Credentials
Resource Owner Password Credential
JWT tokens
API KEYs to access
applications
Standard Formats
JSON
GeoJSON
GL Style JSON
Optimized Binary formats
Mbtiles (vector map tiles)
Geolys REST API
GEOLYS REST API v1 :
Wrapped in native SDK
CLOUD
REST API
VENUES
SPOTS
GEOFENCING
GEOTRACKING
LOCATION
DATABASE
FLOORPLANS
GET /api/v1/venues
GET/POST/PUT/DELETE /api/v1/spots
GET/POST/PUT/DELETE /api/v1/geofencingscenarios
GET/POST/PUT/DELETE /api/v1/geofencingzones
GET/POST/PUT/DELETE /api/v1/geofencingrules
GET/PUT /api/v1/locationdatabase
GET/POST /api/v1/geotrackingevents
Map formats & rendering engine
Your native application
CLOUD
DXF
SHP
IFC
Map Editor
Geolys internal
custom tools
Venue
Geographic
Database
Mbtiles
generation service
OSM Data Model
(Node / Way / Relation)
Enriched for Indoor data
R
E
S
T
A
P
I
Offline use tiles &
styles delivering
MBTILES
GEO
JSON
Your native
code, assets,
…
Online tiles & styles
delivering
GL
Your web application
GL
STYLE
OSM
outdoor &
indoor
GL
STYLE
SDK
GEO
JSON
Import
scripts
Your JS code,
assets,
…
GL JS
Modèle de données géographique du lieu
Problématiques
•
•
•
Plusieurs formats de plans fournis
Représentation complexe de plans fournis (trop de détail)
Comment activer du rendu avec LOD ? de qualité ? de la localisation avec map
matching ? du routing ? du geofencing ?
Process :
• CAD files => Simplification manuelle => Image => Edition en vectoriel
• Images => Edition en vectoriel
• BIM => Filtrage/Simplification => Conversion => Edition en vectoriel
Pourquoi le vectoriel, car le bitmap :
• Pas stylisable en temps réel
• Pas de LOD (level of detail, plus ou moins d’information en fonction du zoom)
• Pas d’élévation
• Pas de rotation sans la rotation des libellés
• Pas de sémantique exploitable (cette zone est une pièce, …)
• Pas possibilité de faire tourner des algorithmes dessus (ex : map matching)
Modèle de données géographique du lieu
Basé sur le modèle géographique évolutif d’OpenStreetMap pour
les données extérieures
Tags :
• building=yes
• highway=motorway
• …
http://wiki.openstreetmap.org/wiki/Map_Features
Modèle de données géographique du lieu
Enrichi pour la définition des données du lieu
Tags :
• buildingpart:floor
• buildingpart:area
• buildingpart:room
• buildingpart:wall
• buildingpart:label
• floor=<level>
• highway=steps/elevator
• highway=footway
• highway=corridor
• entrance=yes
• name=<name>
• ref=<reference>
• source_ref=<external_data>
• amenity=toilets
• amenity=parking
• ……
Venue
Database
Modèle de données géographique du lieu
Une venue = Données extérieures + intérieures
Modélisation d’un bâtiment dans une venue
Géo référencement dans Géolys
Propriété
Description
Type
Obligatoire
Exemple
lon
Latitude au format WGS 84
Double
Oui
45.8093
lat
Longitude au format WGS 84
Double
Oui
4.77759
building
Référence du bâtiment
String
Non
BAT001
floor
Numéro d’étage dans le bâtiment
Entier
Non
0
elevation
Elévation (en m)
Double
Non
2m
Si le « floor » est défini : l’élévation est relative au floor
Si le « floor » n’est pas défini : l’élévation est relative au sol extérieur du bâtiment
CLOUD
Hosting sur
• Pour la performance
• La scalabilité
• La sécurité
Utilise les offres IAAS et PAAS de Azure
Architecture distribuée
CLOUD
Architecture Physique
CLOUD
Backend Software stack :
• REST API (Web API .NET) pour les données pour délivrer les
données + OAuth authorization via JWT (JSON web tokens)
• Backoffice pour les interface de gestion du Cloud : ASP.NET MVC
5 + Entity Framework 6
• UI HTML 5 + CSS + Bootstrap
• Editeur iD (JS / D3.JS / SVG / CSS)
• OpenStreetMap API v0.6 (Ruby) sécurisée via Oauth JWT pour
l’édition des données géographiques enrichies
• Workers (Shell scripts + node.js + java + php) pour la génération
de fichiers mbtiles vectoriels, geojson, map matching
CLOUD
Modèle de sécurité :
Authentification : Framework ASP.NET Identity (cookies, forms,
active directory, …)
Interfaces de gestion : RBAC : Role based access control
Droits d’accès par module : Editeur de plan, Equipement,
Geofencing, …
REST API (JSON) :
Implementation Oauth 2.0
• Client Credentials
• Resource Owner Password Credentials
• JWT tokens
(https://en.wikipedia.org/wiki/JSON_Web_Token)
• Scopes : read venue, write venue, read geofencing, …
CLOUD
Storage :
• Azure SQL Database (PAAS) pour les données gestion
• Azure Blob Storage (PAAS) pour le stockage des binaires
• Azure Queue (PAAS) pour le stockage des messages
• Azure Table Storage (PAAS) pour le stockage table/column
• PostGIS (IAAS)
Briques Open Source
Plateforme comme base départ pour des projets de
géoservices
Source Code : http://github.com/geolys
• SDKs Android / IOS + Samples disponible
• Composants serveur (coming soon)
• A déployer sur une instance Azure
• Lab (expérimentations)

Documents pareils