SlideShare une entreprise Scribd logo
OPENLAYERS 3
UNE BIBLIOTHÈQUE UNIQUE !
Ou
« Pourquoi OL3 est fantastique ? »
www.camptocamp.com / 2/24
Plan
■ Objectifs/Vision OL3 – rappel
■ Exemples de techniques/outils utilisées dans OL3
www.camptocamp.com / 3/24
Objectifs/Vision OL3
www.camptocamp.com / 4/24
Convergence 2D 3D
www.camptocamp.com / 5/24
Vecteur riche/complexe
www.camptocamp.com / 6/24
Les cartes sont des graphiques
www.camptocamp.com / 7/24
Résumé des objectifs
■ Richesse fonctionnelle
■ Gestion de données 3D
■ Gestion de vecteurs complexes
■ Qualité des rendus (retina)
■ Performance et robustesse
« Les cartes sont des graphiques »
www.camptocamp.com / 8/24
Techniques/outils utilisées dans OL3
www.camptocamp.com / 9/24
Du vrai vecteur !
Les vecteurs sont dessinés très souvent.
■ pendant les animations
■ pendant les interactions (pendant le "pinch-zoom" !)
Avantages :
■ qualité du rendu – pas de "blur" suite à une rotation
■ les labels et icônes ne tournent pas avec la carte
La démo…
www.camptocamp.com / 10/24
Performance
Comment dessiner souvent et obtenir de bonnes performances ?
⇨ Utilisation de techniques et algorithmes adaptés.
On pousse l'implémentation à ses limites !
www.camptocamp.com / 11/24
Simplification des géométries
On dessine des géométries simplifiées, pour ne pas dessiner des
"vertex" qui sont sur le même pixel.
■ Douglas Peucker
■ "Quantization" – maintien de la topologie
La simplification permet aussi un rendu de meilleure qualité aux
petites échelles.
La démo…
www.camptocamp.com / 12/24
Batching
On minimise les traitements et manipulations de données.
■ calcul des styles
■ simplification des géométries
■ lecture des features dans le R-tree
■ et toutes les implications sur le garbage collector
⇨ Système de "batch/replay" dans le renderer. On réutilise le batch
pendant les animations et les interactions.
Important pour WebGL !
La démo…
www.camptocamp.com / 13/24
Sur-simplification et clipping
Sur-simplification + clipping pour les parties en dehors du viewport.
La démo…
www.camptocamp.com / 14/24
Hit Detection
Pas de "hit detection" natif avec Canvas (et WebGL).
⇨ On redessine toute la "scène" dans un canvas de 1x1 px, et on
teste si on a une couleur. Réutilisation du batch.
Avantages :
■ détection parfaite au pixel
■ tolérance pour la détection de lignes sur device touch
■ simple et efficace
La démo…
www.camptocamp.com / 15/24
Compilateur Closure
Outil unique dans le monde JavaScript !
■ Renommage des propriétés
■ Élimination du code non utilisé
■ Applatissage des namespaces
■ Dévirtualisation des méthodes
■ "Inlining"
www.camptocamp.com / 16/24
Exemple Compilateur Closure
goog.provide('ANamespace.ASubNamespace.AClass');
// une classe
ANamespace.ASubNamespace.AClass = function() {
this.aProperty = 'prop1';
};
// une méthode
ANamespace.ASubNamespace.AClass.prototype.aMethod = function() {
this.aProperty = 'change';
};
// une instance
var anInstance = new ANamespace.ASubNamespace.AClass();
// appel d'une méthode
anInstance.aMethod();
compilé en :
window.b=new function(){this.a="prop1"};window.b.a="change";
www.camptocamp.com / 17/24
Avantages du compilateur
Gérer un gros volume de code.
■ faire des petits "builds" d'OL3
■ faire des "builds" combinant OL3 + application
■ "type-checking"
Mais : bien utiliser le compilateur demande de l'expérience.
www.camptocamp.com / 18/24
Conclusion
www.camptocamp.com / 19/24
Conclusion
■ Bibliothèque ambitieuse
■ Techniques innovantes
■ Canvas et WebGL
www.camptocamp.com / 20/24
État actuel
■ v3.0.0-beta.5
■ Doc des API grandement améliorée
■ Outil de build "custom" amélioré
www.camptocamp.com / 21/24
Perspectives
■ Implémentation WebGL du vecteur
■ Intégration avec Cesium + 3D en général
■ Outils de build en ligne
■ Tutoriel : créer des appli OL3 avec Closure
■ « Amélioration continue »
www.camptocamp.com / 22/24
Merci !
www.camptocamp.com / 23/24
As Soon As Possible!
www.camptocamp.com / 24/24

Contenu connexe

PDF
Open layers - utilisation simple et avancée
PDF
Une IDS scalable et résiliente avec geOrchestra & Docker
PDF
cm1_bare bbb bbjhruuurt rtfthhjjMetal.pdf
PDF
FOSS4G-FR 2014 : votre IDS à la carte avec geOrchestra
PDF
2014-05-21 Votre IDS à la carte avec geOrchestra
PPTX
Kaggle Tradeshift Challenge
PDF
Scala.io 2013 - M’enfin Scalac, où glandes-tu encore ?
PDF
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Open layers - utilisation simple et avancée
Une IDS scalable et résiliente avec geOrchestra & Docker
cm1_bare bbb bbjhruuurt rtfthhjjMetal.pdf
FOSS4G-FR 2014 : votre IDS à la carte avec geOrchestra
2014-05-21 Votre IDS à la carte avec geOrchestra
Kaggle Tradeshift Challenge
Scala.io 2013 - M’enfin Scalac, où glandes-tu encore ?
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...

Similaire à FOSS4G-FR 2014 : OpenLayers 3 (17)

PDF
"WP Super Cache Rocket Reloaded…" – WordCamp Bordeaux 2019
PDF
Responsive web design new14
PPTX
The future of JavaScript
PPTX
The Future of Javascript
PDF
Présentation GeoMapFish
PDF
Programmation des pic_en_c_part1
PDF
Conférence Shinken à SophiaConf2012 (Jean Gabès)
PDF
Release note de 4D_Additive 1.4
PDF
Le Kit du Parfait Petit Intégrateur (PW2009)
PPTX
Rouabhi algiers meetup
PPTX
Hackerspace jan-2013
PDF
Les Outils de l'Agile
PPTX
3 d slash - catapulte - comment animer un atelier sur l'impression 3d pour le...
PDF
Opencl In Action How To Accelerate Graphics And Computations Matthew Scarpino
PDF
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
PPTX
Optimisation des applications Windows 8/HTML5/WinJS
PPTX
Javascript - Fonctions : que fait ce code ?
"WP Super Cache Rocket Reloaded…" – WordCamp Bordeaux 2019
Responsive web design new14
The future of JavaScript
The Future of Javascript
Présentation GeoMapFish
Programmation des pic_en_c_part1
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Release note de 4D_Additive 1.4
Le Kit du Parfait Petit Intégrateur (PW2009)
Rouabhi algiers meetup
Hackerspace jan-2013
Les Outils de l'Agile
3 d slash - catapulte - comment animer un atelier sur l'impression 3d pour le...
Opencl In Action How To Accelerate Graphics And Computations Matthew Scarpino
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Optimisation des applications Windows 8/HTML5/WinJS
Javascript - Fonctions : que fait ce code ?
Publicité

Plus de Camptocamp (20)

PDF
ERP et customisation : comment éviter l’usine à gaz ?
PDF
10 points-clés incontournables pour réussir votre projet ERP
PDF
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...
PDF
Geo mapfish 2_foss4g-eu_2017
PDF
Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017
PDF
Data processing qgis3_foss4g-eu_2017
PDF
AGIT 2017: GeoMapFish_2.2, the open source WebGIS
PDF
AGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map Engine
PDF
AGIT 2017: geOrchestra 16.12, the open source INSPIRE SDI
PDF
[Geocom2017] geOrchestra and ngeo
PDF
[Geocom2017] Georchestra & monitoring
PDF
GeoMapFish, the Open Source WebGIS
PDF
NGEO – OpenLayers meets Angular
PDF
OpenLayers 3 & Google Closure Compiler
PDF
MapFish Print 3
PDF
georchestra SDI: Project Status Report
PDF
GeoMapFish, the Open Source WebGIS
PDF
OpenLayers 3
PDF
geOrchestra, a free, modular and secure SDI
PDF
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
ERP et customisation : comment éviter l’usine à gaz ?
10 points-clés incontournables pour réussir votre projet ERP
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...
Geo mapfish 2_foss4g-eu_2017
Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017
Data processing qgis3_foss4g-eu_2017
AGIT 2017: GeoMapFish_2.2, the open source WebGIS
AGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map Engine
AGIT 2017: geOrchestra 16.12, the open source INSPIRE SDI
[Geocom2017] geOrchestra and ngeo
[Geocom2017] Georchestra & monitoring
GeoMapFish, the Open Source WebGIS
NGEO – OpenLayers meets Angular
OpenLayers 3 & Google Closure Compiler
MapFish Print 3
georchestra SDI: Project Status Report
GeoMapFish, the Open Source WebGIS
OpenLayers 3
geOrchestra, a free, modular and secure SDI
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
Publicité

Dernier (7)

PDF
COURS GCDs Chap 9.pdf tous les éléments.
PDF
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
PDF
Architecture logicielle et Modeles de Conception
PPTX
test pour la présentation foire de Chalôns V1
PPTX
Cours Electrotechnique L2 - Séance 6.pptx
PDF
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
COURS GCDs Chap 9.pdf tous les éléments.
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
Architecture logicielle et Modeles de Conception
test pour la présentation foire de Chalôns V1
Cours Electrotechnique L2 - Séance 6.pptx
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...

FOSS4G-FR 2014 : OpenLayers 3

  • 2. Ou « Pourquoi OL3 est fantastique ? » www.camptocamp.com / 2/24
  • 3. Plan ■ Objectifs/Vision OL3 – rappel ■ Exemples de techniques/outils utilisées dans OL3 www.camptocamp.com / 3/24
  • 7. Les cartes sont des graphiques www.camptocamp.com / 7/24
  • 8. Résumé des objectifs ■ Richesse fonctionnelle ■ Gestion de données 3D ■ Gestion de vecteurs complexes ■ Qualité des rendus (retina) ■ Performance et robustesse « Les cartes sont des graphiques » www.camptocamp.com / 8/24
  • 9. Techniques/outils utilisées dans OL3 www.camptocamp.com / 9/24
  • 10. Du vrai vecteur ! Les vecteurs sont dessinés très souvent. ■ pendant les animations ■ pendant les interactions (pendant le "pinch-zoom" !) Avantages : ■ qualité du rendu – pas de "blur" suite à une rotation ■ les labels et icônes ne tournent pas avec la carte La démo… www.camptocamp.com / 10/24
  • 11. Performance Comment dessiner souvent et obtenir de bonnes performances ? ⇨ Utilisation de techniques et algorithmes adaptés. On pousse l'implémentation à ses limites ! www.camptocamp.com / 11/24
  • 12. Simplification des géométries On dessine des géométries simplifiées, pour ne pas dessiner des "vertex" qui sont sur le même pixel. ■ Douglas Peucker ■ "Quantization" – maintien de la topologie La simplification permet aussi un rendu de meilleure qualité aux petites échelles. La démo… www.camptocamp.com / 12/24
  • 13. Batching On minimise les traitements et manipulations de données. ■ calcul des styles ■ simplification des géométries ■ lecture des features dans le R-tree ■ et toutes les implications sur le garbage collector ⇨ Système de "batch/replay" dans le renderer. On réutilise le batch pendant les animations et les interactions. Important pour WebGL ! La démo… www.camptocamp.com / 13/24
  • 14. Sur-simplification et clipping Sur-simplification + clipping pour les parties en dehors du viewport. La démo… www.camptocamp.com / 14/24
  • 15. Hit Detection Pas de "hit detection" natif avec Canvas (et WebGL). ⇨ On redessine toute la "scène" dans un canvas de 1x1 px, et on teste si on a une couleur. Réutilisation du batch. Avantages : ■ détection parfaite au pixel ■ tolérance pour la détection de lignes sur device touch ■ simple et efficace La démo… www.camptocamp.com / 15/24
  • 16. Compilateur Closure Outil unique dans le monde JavaScript ! ■ Renommage des propriétés ■ Élimination du code non utilisé ■ Applatissage des namespaces ■ Dévirtualisation des méthodes ■ "Inlining" www.camptocamp.com / 16/24
  • 17. Exemple Compilateur Closure goog.provide('ANamespace.ASubNamespace.AClass'); // une classe ANamespace.ASubNamespace.AClass = function() { this.aProperty = 'prop1'; }; // une méthode ANamespace.ASubNamespace.AClass.prototype.aMethod = function() { this.aProperty = 'change'; }; // une instance var anInstance = new ANamespace.ASubNamespace.AClass(); // appel d'une méthode anInstance.aMethod(); compilé en : window.b=new function(){this.a="prop1"};window.b.a="change"; www.camptocamp.com / 17/24
  • 18. Avantages du compilateur Gérer un gros volume de code. ■ faire des petits "builds" d'OL3 ■ faire des "builds" combinant OL3 + application ■ "type-checking" Mais : bien utiliser le compilateur demande de l'expérience. www.camptocamp.com / 18/24
  • 20. Conclusion ■ Bibliothèque ambitieuse ■ Techniques innovantes ■ Canvas et WebGL www.camptocamp.com / 20/24
  • 21. État actuel ■ v3.0.0-beta.5 ■ Doc des API grandement améliorée ■ Outil de build "custom" amélioré www.camptocamp.com / 21/24
  • 22. Perspectives ■ Implémentation WebGL du vecteur ■ Intégration avec Cesium + 3D en général ■ Outils de build en ligne ■ Tutoriel : créer des appli OL3 avec Closure ■ « Amélioration continue » www.camptocamp.com / 22/24
  • 24. As Soon As Possible! www.camptocamp.com / 24/24