SPIKE: 3D visualisation for solvis/geojson fault surfaces
Closed this issue · 2 comments
chrisbc commented
We want web-browser visualiation of fault surfaces that will improve the user experience relative to our current 2D leaflet based rupture map explorer:
Features sought:
- environments: standalone HTML, Jupyter notebooks, React (for Weka/Kororaa)
- can do everything that Rupture Explorer does:
- set initial user viewport, zoom etc
- full-screen option
- stepping through ruptures in sequence
- user zoom, pan etc
- map layer/tiles for flexible surface details
- multiple geojson layers (fault surface + rupture)
- click in feature for more info
- add widget (plots etc)
- plus 3D
Try:
- cesium
- mapbox (https://www.mapbox.com/mapbox-gljs)
things to consider:
- is licensing compatible with GNS NSHM needs
- independence from proprietary backend server/services
- ease of use
- compatability with existing stack
- customisation
voj commented
Investigated:
- MapLibre/Mapbox
- CesiumJs
- ArcGIS
All libraries fulfill most requirements.
MapLibre
is an open source fork ofMapBox
. I did not investigate this in-depth because there's no built-in GeoJSON layer, and this needs to be implemented inthree.js
.CesiumJS
has support for underground rendering, ticks all the boxes. Active community support, Cesium team are actively answering questions in forum. Once I implemented a workaround for navigation, it worked well. Can handle large GeoJSON datasets. There is support for displaying property data in a pop-up. All custom pop-ups will need to be hand-written. It is no problem to overlay HTML.ArcGIS
ticks all the boxes. Beautiful underground navigation. We were informed that we can use this for all use-cases considered. Has trouble rendering larger GeoJSON datasets, and is quite inflexible in displaying them (colour, properties popup, etc). While the API is generally very well though out and the documentation is great, this library could not handle the RSQSim patch geometry well enough.
There are demos for CesiumJS and ArcGIS: daily-science/solvis-jupyterlab#1
voj commented
We decided to go with CesiumJS
. We will create a new repo for a Juptyer Notebook widget to consolidate the work from the spike.