8. Motivation for the data fusion
• Display heterogeneous data together:
➔ Diferent types of data
➔ Data with diferent timestamp
➔ Data with diferent resolution
www.melown.com
12. Motivation for the data fusion
• Display heterogeneous data together:
➔ To find connections and relations in the data.
➔ To watch for changes in time.
➔ To see both the details and the big picture.
• 3D can makes these relationships and changes more obvious.
www.melown.com
14. The “no fusion” approach
• Render all the together.
• Data can be independently used on the client.
• Fusion is done completely on the client.
• Very resource intensive - redundant rendering, and bandwidth.
• Not always nice result.
www.melown.com
15. The “fuse them all” approach
• Fusing data into one opaque structure on the server.
• Current Google maps 3D basemap.
• Suitable for Web GIS - lowest possible load on the client.
• Usually results in static data.
• Particular resources cannot be retrieved.
www.melown.com
16. Path to VTS
• We started with “fuse them all” approach – focus on the fast and lightweight
client.
• Maintaining large fused dataset became tedious:
➔ Fragile update operation.
➔ Including global terrain would result in unbearably large data.
• We were unable to do some things like switching the textures used on DEM.
www.melown.com
17. VTS action plan
• Include dynamically generated global datasets, terrain in particular.
• Improve manageability of the data on the server.
• Allow the client to work independently with the datasets.
• Maintain good client performance.
www.melown.com
18. What is VTS now
• An integrated platform for 3D geospatial app development.
• Opensource, BSD 2-clause license.
• Scalable, high-performance.
• Lightweight clients.
• Data fusion capabilities.
www.melown.com
19. What is VTS now
• Servers
➔ Mapproxy – dynamic tile generation (terrain, textures, vectors)
➔ VTSD – static content serving
• Client APIs
➔ Web – JavaScript, WebGL
➔ Desktop – C++
➔ Unity - C#
www.melown.com
21. Terrain and orthophotos
• Terrain = “surface”
• Orthophotos/textures = “bound-layers”, as they need to be bound to the
surface.
• Both streamed dynamically from mapproxy based on GDAL rasters, WMS or
WMTS.
• Terrain is added to VTS storage to be fused with other surfaces in the future.
• Map configuration file describes how the bound layers will applied.
www.melown.com
24. 3D models
• 3D model = “surface”
• Converted to VTS format using encoders from VEF, SLPK or LODTree.
• Fused with other surfaces when added to VTS storage:
$ vts --add storage
--tileset path/to/jenstejn-village
--top
• Modify the map configuration so the client knows about the new data.
www.melown.com
27. Vectors
• Vector layer = “free-layer”, as it can be displayed on its own or in combination
with other data like surface.
• Streamed dynamically from mapproxy based on MBTiles, MVT or OGR features.
• Mapproxy enriches 2D vector data with height coordinate obtained from DEM
specified in resource definition.
www.melown.com
30. Conclusion
• Terrain and 3D (surfaces) are fused on the server. The client can still handle
them as independent data.
• Vectors (free layers) enriched with height in VTS mapproxy, displayed
independently of the other layers.
• Otrhophotos (bound layers) draped over surfaces on the client.
• VTS can go from “no fusion” to “fuse them all” as needed while preserving
advantages of both.
www.melown.com
31. Sources of VTS information
vtsdocs.melown.com
github.com/Melown
github.com/Melown/vts-browser-js/wiki/Examples
Getting involved in VTS development
contact: community@melown.com
or fork us on GitHub ;-)
www.melown.com