This repository hosts a prototype of the rendering aspect of a Web GIS engine. It’s part of Takram’s client projects, commissioned by a company selected by the Cabinet Office of Japan under the SBIR (Small/Startup Business Innovation Research) program.
Since the Web GIS engine is planned to be developed as an open-source project, this prototype is also being developed openly. While it’s uncertain whether we can provide long-term maintenance, we hope this work proves to be valuable.
Our contribution to the project is scheduled to conclude by March 2025.
Name | Description | Status | NPM |
---|---|---|---|
atmosphere | An implementation of Precomputed Atmospheric Scattering | Beta | @takram/three-atmosphere |
core | Provides fundamental functions for rendering GIS data | Alpha | @takram/three-geospatial |
effects | A collection of post-processing effects | Alpha | @takram/three-geospatial-effects |
This repository uses a monorepo setup with Nx. Please refer to its documentation for details of the concept.
The packages
directory contains the publishable NPM packages listed above.
The storybook
directory contains Storybook stories across the libraries. The stories are separated from the libraries to avoid circular dependencies. Story files and components are also separated to enable fast-refresh, which only supports files containing components only.
The apps
directory contains standalone applications.
data
: A command-line app for generating data.git clone git@github.com:takram-design-engineering/three-geospatial.git
cd three-geospatial
pnpm install
Project level commands are defined in project.json
. Although library and app-specific commands are defined in the respective project.json
, most of them are inferred targets, and you may need to run nx show project {name}
to see them.
nx storybook
: Run Storybook locally.nx build
: Build all libraries and apps.nx build-libs
: Build all libraries.nx build {name}
: Build a specific library or app.nx lint
: Run linter.nx format
: Run prettier.Create a .env
file in the root directory with the following variables:
Name | Description |
---|---|
STORYBOOK_GOOGLE_MAP_API_KEY |
Google Maps API key |
STORYBOOK_ION_API_TOKEN |
Cesium Ion API access token |
To generate a React library:
nx generate @nx/react:library --name={name} --bundler=vite --directory=packages/{name} --compiler=swc --importPath={package_name} --style=none --unitTestRunner=jest --no-interactive
To add a Storybook configuration:
nx generate @nx/storybook:configuration --project={name} --uiFramework=@storybook/react-vite --no-interactive