GithubHelp home page GithubHelp logo

hhy5277 / g3d Goto Github PK

View Code? Open in Web Editor NEW

This project forked from magiccube/g3d

0.0 2.0 0.0 4.1 MB

Realtime WebGL rendering maps and big data visualizations based on MXFramework and Three.js.

Home Page: http://magiccube.github.io/g3d/

CSS 1.14% HTML 0.92% JavaScript 97.94%

g3d's Introduction

VIDEO DEMOS

https://www.youtube.com/watch?v=fFMc5P8F7SY

https://www.youtube.com/watch?v=9rUGYhHJJ6E

https://www.youtube.com/watch?v=PQuNo-mrLKU

https://www.youtube.com/watch?v=DNW6VwIxl4w

MagicCube g3d Framework

MagicCube g3D Framework is a web GIS library for 3D visualization using WebGL technology. In this early version, it supports

  • Designed for geo-based big data visualization
  • Powered by MagicCube MXFramework
  • High-performance real-time 3D rendering and animations based on Three.js and WebGL
  • Open Street Map / MapBox / Google Map / Nokia HERE Map / Baidu Map / AutoNavi supported
  • Multi-layer supported
  • Basic 2D/3D geometries and features supported
  • GeoJSON supported
  • Cache tile images using HTML5 LocalStorage
  • Build-in ToolBar and Compass
  • Anaglyph Effect (Red/Blue 3D Glasses are needed)

Live Demo

Open the live demo page with Chrome, Safari or any other Webkit-based modern browser.

How to Use

  • Drag with left button to pan.
  • Drag with right button to rotate.
  • Scroll to zoom in and out.

If you have a multi-finger touchable device, you can

  • Touch with one finger to pan.
  • Touch with two fingers to rotate.
  • Pinch with two fingers to zoom in and out.

If you have a Red/Blue 3D Glasses

  • Click the glasses button of the toolbar on the left side to switch between 2D and 3D mode.

Screenshots

Dependencies

The g3d Framework is built on top of MagicCube MXFramework, Three.js, Tween.js, jQuery and jquery.transit.

Usage

Create a new 3D map view with an OSM-based layer.

$import("g3d.view.MapScene3DView");

var mapView = null;
mx.whenReady(function()
{
    // Create a new MapProvider using MapBox tiles.
    var mapProvider = new g3d.map.MapProvider({
        urlFormat: "http://{s}.tiles.mapbox.com/v3/nicki.uxdh1tt9/{z}/{x}/{y}.png32",
        tileSize: 256,    // Normally the tile size is always 256 in OSM and Google
    });
    
    
    // Create an instance of MapScene3DView
    mapView = new g3d.view.MapScene3DView({
        $element: $("#map"),
        mapProvider: mapProvider,
        centerLocation: [118.778845, 32.04386],
        zoom: 12,                // The same 'zoom level' rules as Google Map.
        statsVisible: true,      // Whether display the WebGL status bar.
        displayCompass: true,    // Whether the compass should be displayed.
        displayToolBar: true,    // Whether the tool bar should be displayed.
        onzooming: function(e)
        {
            console.log("Zooming from %d to %d.", e.zoomFrom, e.zoomTo);
        },
        onzoomed: function(e)
        {
            console.log("Zoom level is now set to %d.", e.zoomTo);
        }
    });

    // Add a OSM-based tile layer.
    var tileLayer = new g3d.layer.TileLayer3D({
        useLocalStorage: true     // Use HTML5 Local Storage to cache the tiles.
    });
    mapView.addLayer(tileLayer);
    
    // Start animation, so the user can interactive with the map.
    mapView.startAnimation();
});

Now let's add a polygon mesh to display 'Zifeng Tower'. Please refer to http://www.openstreetmap.org/way/140809508

// Add a feature layer to diaplay buildings.
var buildingLayer = new g3d.layer.FeatureLayer3D();
mapView.addLayer(buildingLayer);

buildingLayer.addPolygon(
    [
        [ 118.7781014, 32.062422 ],
        [ 118.7777385, 32.0627166 ],
        [ 118.7777183, 32.0627721 ],
        [ 118.7779384, 32.0628862 ],
        [ 118.7782096, 32.0629544 ],
        [ 118.7782587, 32.0629002 ],
        [ 118.7782337, 32.0624534 ],
        [ 118.7781786, 32.0624179 ]
    ],
    200,   // Height of the polygon mesh in pixels.
    {
        color : 0xff0000,
        opacity : 0.8
    }     // Alternatively you can use any THREE.Material instead
);

g3d's People

Contributors

magiccube avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.