VL.Mapsui & VL.NetTopologySuite

Hi everyone!

After being away for quite a long time, I’ve recently started finding my way back into the vvvv community — and back into making things with VL. :slight_smile:

Over the past few years, much of my work has moved into the GIS / geospatial world. Coming back to vvvv, I started wondering how some of the tools, standards and ways of thinking from the GIS ecosystem could become more accessible in VL.

So I’ve been slowly working on a collection of libraries and experiments around this.

There are quite a few pieces I’m playing with — geometry, maps, GeoJSON and other spatial data formats, and probably more to come. Rather than trying to build one big GIS package, I’d like to keep these as smaller pieces that can be combined naturally in VL.

Two of the libraries that are already taking shape are:

VL.Mapsui

Mapsui is a .NET mapping library that seems to fit surprisingly well with VL. I’m wrapping it so maps, layers, styles, navigation, picking and other mapping components can be used and composed directly in patches.

VL.NetTopologySuite

NetTopologySuite provides much of the geometry foundation commonly used in the .NET GIS ecosystem — Point, LineString, Polygon, spatial relationships, intersections, buffers, spatial indexes, and many other operations.

nettop

I’m gradually bringing these concepts into VL as nodes as well.

There are other pieces in progress too, including GeoJSON-related tools, and I’ll share them here as they become more usable.

More than the individual libraries, though, I’m interested in a broader question:

What happens when the tools and concepts of GIS meet the visual, interactive and compositional way we normally work in vvvv?

Everything is still very much WIP, and I’m also using this as an opportunity to relearn vvvv and learn more about GIS along the way.

I’ll use this thread to share progress, experiments, questions and probably some unfinished ideas.

Feedback, ideas, GIS wishes, and weird spatial experiments are very welcome. :slight_smile:

Sounds great, need to check it out!
Our usual way currently is working texture based once in vvvv - and preparing the textures beforehand with qgis (thats sometimes really annoying when you are used to work with pixels).

Yes, exactly! I think once the data actually enters a 3D scene, textures are probably still the best way to go, just as you’re doing now.

What Mapsui could potentially help with is more the GIS part before that — dynamically loading raster tiles as needed, handling coordinate systems / projections, etc., instead of preparing everything beforehand.

At the moment it’s still very much a 2D GIS/map engine though. It doesn’t really deal with a spherical/globe representation yet, so there’s still quite a gap between this and a proper 3D GIS workflow.