Libraries and Dependencies
AKA What's keeping this thing afloat?
Framework
WebGeoDa uses Next.js, a server-side rendering JavaScript framework by Vercel.
Geospatial Engine
Our geospatial engine (and namesake) is Dr Xun Li and Dr Luc Anselin's jsGeoDa, a WebAssembly-based geospatial analysis module. By default, it's accessed in a WebWorker, aka a separate thread, meaning your interface is free for interaction while Geospatial analysis is going on.
Mapping
By default, mapping is done using Mapbox with Deck.gl layered on top. In the future, additional map components may be available.
Visualization and Information Expression
In the works 👀
State Management
State management is done with Redux/React-Redux. Redux is a classic, and a good fit here given the frequent state updates, partial state access, and potentially high cost of re-rendering the map. Our built-in actions use just a reducer and inline-actions, rather than an additional actions file:
UI Toolkit
There are numerous UI toolkits available in the React ecosystem, like React Bootstrap, Material-UI, Ant Design, and others.
Our provided UI toolkit focuses on simple, vanilla HTML and CSS focused components and high accessibility. So, we base our interactive components on Reach UI, a highly accessible foundation for React-based design systems and Flexbox Grid, a simple CSS-based column layout tool.
WebWorker Management
We use Comlink to call and manage our WebWorkers. It's lovely.
Last updated