Skip to content

A Space-Time Visual Analysis Tool of Moving Objects with Cesium

License

Notifications You must be signed in to change notification settings

aistairc/mf-cesium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STINUUM (Spatio-Temporal continua on Cesium)

STINUUM is a JavaScript library to visualize and analyze moving objects on Cesium. STINUUM imports OGC Moving Features JSON data and supports animated maps as well as static maps and a space-time cube for navigating the trajectory of moving objects over space and time. The main characteristics of STINUUM are as follows:

  • Diverse geometry types to represent movements
  • Multiscale data analysis in space and time
  • Highly accessibility and lightweight deployment

OGC Moving Features Encoding Extension - JSON

The current version of STINUUM supports only the OGC Moving Features JSON format.

The OGC Moving Features JSON format is described in OGC 19-045r3 Section 7.


Tech/Framework used

Built with Node.js v10.x ~ 16.x (we test using 16.14.2)

Dependency

  • Node.JS
  • NPM
  • Cesium

Local setup

  1. Clone this project.
git clone http://github.com/aistairc/mf-cesium
  1. Checkout the Branch
git fetch origin
git checkout mf-cesium_api
  1. Install Node.js (and npm) and run the following command to install the dependencies at the previous folder :
  • Install nvm
    • Windows
      • Download the nvm setup.zip in nvm-windows
        • Detail information for install nvm-wiki
      • After finish to download:
        • unzip nvm-setup.zip and run nvm-setup.exe
    • MacOS
      brew install nvm
      # open the .bash_profile or .zshrc
      # Add the environment value of nvm
      export NVM_DIR="$HOME/.nvm" [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
      source ~/.zshrc
      # or
      source ~/.bash_profile
    • Ubuntu
      sudo apt install curl
      curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
      source ~/.bashrc
  • Check the installed nvm using terminal
# version check
nvm -v
  • Install node.js
nvm install v20.x
nvm use v20.10.0
node -v
  1. Install STINUUM
cd /path/to/mf-cesium/Stinuum\ Web
# Check if file package.json and package-lock.json exist
npm install
  1. Start STINUUM
node app.js
  1. Enter http://localhost:8080 in your browser. We recommend Chrome.

  2. Load Moving Features data using drag-and-drop. We provide sample files in Stinuum\ Web/data.

  3. This version can be used in conjunction with MF-API & MF-Server

    • You can simply build MF-API on your local PC using Docker
    docker pull ghcr.io/taehoonk/mf-api-server:1.0
    # docker run -p MF-Server-API-Port:MF-Server-API-Port -p Postresql-Port:Postresql-Port -d --name mf-api-server ghcr.io/taehoonk/mf-api-server:1.0
    docker run -p 8085:8085 -p 25432:5432 -d --name mf-api-server ghcr.io/taehoonk/mf-api-server:1.0
    docker exec mf-api-server ./run.sh

    [!IMPORTANT]
    If you change the MF-Server-API-Port, please change the code below
    (Will be controlled later with system.json file)
    system.json: mf_api_server_url = http://localhost:8085http://localhost:YOUR-PORT

    • And then you can connect to the homepage with the below URL:
    • For detailed usage of the API, please go to the link below
      • MF-API-Redoc
  4. We enclose a python program that allows you to upload large amounts of data using the MF-API


API Reference

STINUUM API document is here

Manual

Usage of Stinuum Web is here


Maintainer

License

STINUUM is licensed under the MIT license