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)