SkillAgentSearch skills...

Giojs

🌏 A Declarative 3D Globe Data Visualization Library built with Three.js

Install / Use

/learn @syt123450/Giojs
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"><a href="https://giojs.org" target="_blank"><img width="700" src="https://raw.githack.com/syt123450/giojs/master/assets/readme/logo2.jpg" alt="Gio logo"></a></p> <h1 align="center">Gio.js</h1> <p align="center"> <strong>English</strong> | <a href="https://github.com/syt123450/giojs/blob/master/README_zh.md"><strong>δΈ­ζ–‡</strong></a> </p> <p align="center">React Version: <a href="https://github.com/syt123450/react-giojs">react-giojs</a></p> <p align="center">Wechat minigame: <a href="https://github.com/syt123450/giojs-wechat-minigame-demo">wechat usage</a></p> <p align="center"> <a href="https://www.npmjs.com/package/giojs"><img src="https://img.shields.io/npm/v/giojs.svg" alt="npm version" height="18"></a> <a href="https://github.com/syt123450/Gio.js/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green.svg" alt="license badge"></a> <a href="https://github.com/mrdoob/three.js/"><img src="https://img.shields.io/badge/dependencies-Three.js-brightgreen.svg" alt="dependencies badge"></a> <a href="https://travis-ci.org/syt123450/giojs"><img src="https://travis-ci.org/syt123450/giojs.svg" alt="build"></a> <a href="https://coveralls.io/github/syt123450/giojs?branch=master"><img src="https://coveralls.io/repos/github/syt123450/giojs/badge.svg" alt="coverage"></a> </p>

Gio.js is an open source library for web 3D globe data visualization built with Three.js. What makes Gio.js different is that it is simple to use Gio.js to customize a 3D data visualization model in a declarative way, add your own data, and integrate it into your own modern web application.

<!-- [START screenshot] --> <p align="center"> <img src="https://raw.githack.com/syt123450/giojs/master/assets/readme/Gio.gif"/> </p> <!-- [END screenshot] -->

Table of Content

<!-- [START motivation] -->

Motivation

Gio.js is an open source library for web 3D globe data visualization built with Three.js. What makes Gio.js different is that it is simple to use Gio.js to customize a 3D data visualization model in a declarative way, add your own data, and integrate it into your own modern web application.

This library is inspired by the <a href="https://github.com/dataarts/armsglobe">Arms Trade Visualization project</a> developed by Michael Chang and presented during Google Ideas INFO 2012. See <a href="http://mflux.tumblr.com/post/28367579774/armstradeviz">original post</a>. With Gio.js, it is easy to reproduce this fantastic data visualization model, and integrate it into web application.

  • Simplicity -- Create a 3D global data visualization model with your own data in just four lines of javascript code
  • Customization -- Design your own globe style with easy to use APIs in Gio.js
  • Modernization -- Build a responsible, fully interactive, rich 3D frontend application using Gio.js
<!-- [END motivation] --> <!-- [START getstarted] -->

Getting Started

Installation

  • Option 1: <script> tag

Include Three.js dependency:

<script src="three.min.js"></script>

Include local Gio.js library

<script src="gio.min.js"></script>

or through CDN

<script src="https://threejs.org/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/giojs@2.2.1/build/gio.min.js"></script>
  • Option 2: npm
npm install giojs --save
  • Option 3: yarn
yarn add giojs

Usage

After including "three.min.js" and "gio.min.js" in your html, create a div to render the 3D Gio globe: (the usage of Gio.js is a little bit different in WeChat mini game, checkout this demo to know more about it)

<!DOCTYPE HTML>
<html>
<head>

  <!-- include three.min.js library-->
  <script src="three.min.js"></script>

  <!-- include gio.min.js library-->
  <script src="gio.min.js"></script>

</head>
<body>

  <!-- container to draw 3D Gio globe-->
  <div id="globalArea"></div>

</body>
</html>

To initialize and render the 3D Gio globe:


<script>

    // get the container to hold the IO globe
    var container = document.getElementById( "globalArea" );

    // create controller for the IO globe, input the container as the parameter
    var controller = new GIO.Controller( container );

    /**
    * use addData() API to add the the data to the controller
    * know more about data format, check out documentation about data: http://giojs.org/html/docs/dataIntro.html
    * we provide sample data for test, get sample data from: https://github.com/syt123450/giojs/blob/master/examples/data/sampleData.json
    */
    controller.addData( data );

    // call the init() API to show the IO globe in the browser
    controller.init();

</script>

If everything goes well, you shall see this. For more fancier usage of Gio.js, check out <a href="http://giojs.org/html/docs/index.html">Gio.js API document</a>

Click the codepen logo to try it in Codepen: Β Β <a target="_blank" href="https://codepen.io/syt123450/pen/VXNdgM"><img width=50 height=50 src="https://raw.githack.com/syt123450/giojs/master/assets/readme/codepen.png"></a>

<!-- [END getstarted] --> <!-- [START documentation] -->

<div id="intro2">Gio.js 2.0 Introduction</div>

After Gio.js 1.0 released, developers propose many cool and constructive advise. Gio.js implements most of these features. Gio.js 2.0 comes with many big features such as:

  • Data group and switchDataSets API to switch between different data sets [<a href="http://giojs.org/html/docs/dataAdd.html#group">introduction</a>]

  • Provide Three.js programming interface [<a href="http://giojs.org/html/docs/interfaceThree.html">introduction</a>]

  • Provide Stats.js programming interface [<a href="http://giojs.org/html/docs/interfaceStats.html">introduction</a>]

  • Support export data to continent [<a href="http://giojs.org/html/docs/dataContinent.html">introduction</a>]

  • Provide input data check [<a href="https://github.com/syt123450/giojs/issues/86">issue</a>]

  • Support WeChat mini program [<a href="https://github.com/syt123450/giojs-wechat-minigame-demo">demo</a>]

  • New clearData [<a href="http://giojs.org/html/docs/dataClear.html">introduction</a>]

  • New closeLiveLoader [<a href="http://giojs.org/html/docs/dataLiveLoad.html">introduction</a>]

  • Transparent Background [<a href="http://giojs.org/html/docs/designTransparent.html">introduction</a>]

  • Auto Rotation [<a href="https://giojs.org/html/docs/designRotation.html">introduction</a>]

Examples

Gio.js has many representative demos to show how to work with Gio.js, there are mainly three example resources:

  • Resource 1: Gio.js Playground

There is a Playground ( <a href="http://giojs.org/html/playground.html">playground link</a> ) for developers to play with Gio.js and export Gio.js parameter.

  • Resource 2: Github "examples" folder

Gio.js has many API demos, and these demos are gathered in examples folder. clone the Gio.js repo, try them in your own environment ~

  • Resource 3: Live demos on Codepen

Gio.js has a Codepen collection which contains many live demos about Gio.js, click the codepen logo and try to edit them! <a target="_blank" href="https://codepen.io/collection/DkBobG/"><img width=50 height=50 src="https://raw.githack.com/syt123450/giojs/master/assets/readme/codepen.png"></a>

API List

➑ configure(json)

Configure the controller.

➑ setInitCountry(ISOCode, default: 'CN')

Set the country initially selected.

➑ lightenMentioned(boolean, default: 'false')

Makes the mentioned country brighter than those not mentioned in the input dataset.

➑ disableUnmentioned(boolean, default: 'false')

Disables an unmentioned country and makes it unselectable.

➑ showInOnly(boolean, default: 'false')

Displays only the line with data flowing into the selected country.

➑ showOutOnly(boolean, default: 'false')

Displays only the line with data flowing out of the selected country.

➑ addHalo(string)

Enables the halo around the earth. When enabling halo, the color of halo also can be specified.

➑ removeHalo()

Disables the halo around the earth.

➑ enableStats()

Displays stats on the upper-left corner of the scene.

➑ disableStats()

Hides stats on the upper-left corner of the scene.

➑ setTransparentBackground()

Make default background transparent.

➑ setAutoRotation()

Make globe rotate automatically.

➑ setStyle(string)

Sets the color scheme of the 3D globe by name.

➑ setSurfaceColor(string, default: '#ffffff')

Sets the color of the surface the 3D globe.

➑ setSelectedColor(string, default: '#ffffff')

Sets color of the country in selected state.

➑ setExportColor(string, default: '#DD380C')

Sets the color of out line.

**[➑ setImportColor(string, default: '#154492')](http://gio

Related Skills

View on GitHub
GitHub Stars1.7k
CategoryDevelopment
Updated2d ago
Forks236

Languages

JavaScript

Security Score

100/100

Audited on Mar 18, 2026

No findings