A Three.js-based framework written in Javascript/WebGL for visualizing 3D geospatial data
Clone or download
Permalink
Failed to load latest commit information.
examples feat(core): unify tilelayer in globeViewer, planarViewer and panorama… Aug 27, 2018
src refactor(renderer): remove unused PanoramicMesh Sep 24, 2018
static_jsdoc docs(jsdoc) : adding a home page to the API documentation + adding a … Dec 21, 2017
test refactor(gis): change ellipsoidSizes from function to object Sep 24, 2018
utils/debug feat(core): unify tilelayer in globeViewer, planarViewer and panorama… Aug 27, 2018
.babelrc chore(build): drop babel-plugin-webpack-loader Jul 10, 2018
.editorconfig .editorconfig: trailing whitespace can have special meaning in Markdown Feb 22, 2016
.eslintignore feat(examples): add a loading screen for examples Mar 21, 2018
.eslintrc.js fix(chore): tag eslint config as root May 4, 2018
.gitattributes Style: enable linebreak-style rule Jan 19, 2017
.gitignore chore(test): add unit test coverage report. Jul 13, 2018
.travis.yml chore(test): add unit test coverage report. Jul 13, 2018
BUILDING.md chore(build): verify that we are using npm >= 6 Jul 31, 2018
CODING.md Coding guide draft Feb 4, 2016
CONTRIBUTING.md Update the global documents of the project (#694) Mar 26, 2018
CONTRIBUTORS.md Chore: Add missing contributors Nov 6, 2017
ISSUE_TEMPLATE.md Chore: add a template for gh issues Aug 31, 2017
JSDOC.md docs(jsdoc) : adding a home page to the API documentation + adding a … Dec 21, 2017
LICENSE.md Remove Require.js from LICENSE.md Jul 7, 2016
PULL_REQUEST_TEMPLATE.md Chore: add a PR template for gh Aug 31, 2017
README.md fix(badge): fix typo for coverage badge Jul 13, 2018
TESTING.md Add a draft document for testing Feb 4, 2016
appveyor.yml test: Add continuous integration on Windows through AppVeyor Jul 10, 2018
autodeploy.sh changed dir itowns2 to itowns on public site Jul 27, 2017
deploy_key.enc Chore: allow build script to deploy to itowns.github.io Jul 3, 2017
index.html feat(core): unify tilelayer in globeViewer, planarViewer and panorama… Aug 27, 2018
jsdoc-config.json utils(Orientation): Orientation utils provides a method to create qua… Aug 24, 2018
layout.tmpl docs(jsdoc) : adding a home page to the API documentation + adding a … Dec 21, 2017
package-lock.json feature(core): add camera utils tools Aug 20, 2018
package.json test: retry cubic_planar test if necessary Aug 24, 2018
webpack.config.js chore(build): drop babel-plugin-webpack-loader Jul 10, 2018

README.md

Coverage Status

What is it?

iTowns is a Three.js-based framework written in Javascript/WebGL for visualizing 3D geospatial data.

It can connect to WMS/WMTS/TMS servers including elevation data and load many different data formats (3dTiles, GPX, KML and much much more).

iTowns screenshot

API documentation and examples

API Documentation

Examples

How to use Itowns in your project

You can use it through npm (the preferred way) or download a bundle from our github release page.

With NPM

In your project:

npm install --save itowns

This package contains the ES5-compatible sources of Itowns.

If you're using a module bundler (like wepback), you can directly require('itowns') in your code.

Alternatively, we provide a bundle you can directly include in your html files that exposes itowns in window:

<script src="node_modules/itowns/dist/itowns.js"></script>

/!\ Please note that this bundle also contains the dependencies.

From a release bundle

See our release page.

Supported data types and features

  • Imagery from WMTS/WMS/TMS
  • Elevation (DTM/DSM) from WMTS
  • 3D Tiles
  • ...

See the feature list wiki page for a complet list of features and data formats.

Tests

If you want to run tests you'll need to install puppeteer.

If you install pupperter behind proxy, use HTTP_PROXY, HTTPS_PROXY, NO_PROXY to defines HTTP proxy settings that are used to download and run Chromium.

If puppeteer fails to download Chrome, you can try with the documented environment variables. Or you can download it manually, and then:

  • install puppeteer without downloading Chrome: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm install puppeteer
  • then use the env var CHROME to tell itowns/mocha/puppeteer what Chrome app it should use: CHROME=/opt/google/chrome-beta/chrome npm run test-examples

Then you can run the tests:

npm run test-examples

Supported environment variables:

* SCREENSHOT_FOLDER: take a screenshot at the end of each test and save it in this folder. Example: SCREENSHOT_FOLDER=/tmp/
* CHROME: path to Chrome executable. If unspecified itowns will use the one downloaded during puppeteer install.
* DEBUG: run Chrome in a window with the debug tools open.
* REMOTE_DEBUGGING: run Chrome in headless mode and set up remote debugging. Example: REMOTE_DEBUGGING=9222 will setup remote debugging on port 9222. Then start another Chrome instance, browse to chrome://inspect/#devices and add localhost:9222 in Discover network targets.

Note: Chrome in headless mode doesn't support the WebGL EXT_frag_depth extension. So rendering may differ and some bugs can only be present in headless mode.

Licence

iTowns is dual-licenced under Cecill-B V1.0 and MIT. Incorporated libraries are published under their original licences.

See LICENSE.md for more information.

Contributors

iTowns has received contributions from people listed in CONTRIBUTORS.md. If you are interested in contributing to iTowns, please read CONTRIBUTING.md.

iTowns has been redesigned from this early version.

Support

iTowns is an original work from French IGN, MATIS research laboratory. It has been funded through various research programs involving the French National Research Agency, Cap Digital, UPMC, Mines ParisTec, CNRS, LCPC.

iTowns is currently maintained by IGN ( http://www.ign.fr ), Oslandia ( http://www.oslandia.com ) and AtolCD ( https://www.atolcd.com )