Libraries and Dependencies

AKA What's keeping this thing afloat?

Framework

WebGeoDa uses Next.jsarrow-up-right, a server-side rendering JavaScript framework by Vercel.

Geospatial Engine

Our geospatial engine (and namesake) is Dr Xun Li and Dr Luc Anselin's jsGeoDaarrow-up-right, 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 Mapboxarrow-up-right with Deck.glarrow-up-right 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 Reduxarrow-up-right/React-Reduxarrow-up-right. 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:

    // some component
    const dispatch = useDispatch(); // send an action to the reducer
    const myFunction = (someData) => {
        dispatch({
            type: 'Very Import Update',
            payload: someData
        })
    }

UI Toolkit

There are numerous UI toolkits available in the React ecosystem, like React Bootstraparrow-up-right, Material-UIarrow-up-right, Ant Designarrow-up-right, 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 UIarrow-up-right, a highly accessible foundation for React-based design systems and Flexbox Gridarrow-up-right, a simple CSS-based column layout tool.

WebWorker Management

We use Comlinkarrow-up-right to call and manage our WebWorkers. It's lovely.

Last updated