serving and rendering huge point cloud on mobile devices and web pages
TRANSCRIPT
Glob3 Mobile: Serving and rendering huge point clouds on mobile devices and web
pages
(aka: Feature Streaming server & Client)
Manuel de la CalleFOSS4G 2015
@mdelacalle [email protected]
Glob3 Mobile (G3M) is:an open source* API to build native maps applications thatruns on any device
(*) github.com/glob3mobile/g3m
Multiplatformnative performance everywhere
2D/3D Maps
Any kind
of data
Offline / OnlineCamera and Models
animations
Utilities
Streaming
Rendering and interaction with huge datasets
Smooth experience
Looking for the best Performance● Optimize network usage, download only the data
relevant to the current visible area of the map
● Minimize the waiting time to view/interact
○ download the “most significative” features first
○ show the incoming data as soon as it’s available
○ when more detailed data arrives, update the view
with more data
Why streaming geo features?
Architecture bird view
Data importation
LOD Preprocessing
Rendering
Data importation
- Import huge unsorted data into a Quadtree on disk
- No size limit (ok, not really, the disk space is the limit)
- Key/Value storage: Started with BerkeleyDB, switched to MapDB
- The resulting Quadtree gives the first categorization of the data into “Tiles”
- Produces useful metadata like Bounding Box, Features Count, Density, etc
LOD (Level of Detail) Preprocessing
- produces the intermediate LOD levels
- sort the data in a “stream” friendly format
- most-significative features go first, least-significative go last
- LOD Strategies
- Shape preserving → for LiDAR point-clouds
- Sorting → for point-vector datasets with a clear sorting criteria
- Clustering → for point-vector datasets with all the features are “equals”
LOD Strategies
Shape preserving
- Selection of points where the most-significative are the ones that describe
the general shape of the point-cloud. The shape of the cloud is always
preserved (inclusive in the less-resolution levels).
Sorting
- The sorting criteria defines which features are the most and least
significative.
Clustering
- The intermediate levels are filled with Clustering information that describes
the structure of the full-detailed-levels
LOD 0
LOD 1
LOD 2
Rendering
- download of metadata
- size, covered sector, min/max height, etc
- description of Quadtree nodes
- bounding box
- average point
- LOD Levels
- based on the projected size of the BB, estimate how many LOD levels are
needed
- download the next to the current loaded level
- cancel current download in case it's not more needed
Streaming 7
Demo time!
http://www.mapboo.comhttp://point-cloud.glob3mobile.com
Google play
Apple Store
Glob3 Mobile: Serving and rendering huge point clouds on mobile devices and web
pages
(aka: Feature Streaming server & Client)
Manuel de la CalleFOSS4G 2015
@mdelacalle [email protected]