- Nested catalog of layers which can be independently enabled to create mashups of many layers.
- Supports GeoJSON, KML, CSV (point and region-mapped), GPX and CZML file types natively, and others including zipped shapefiles with an optional server-side conversion service.
- Supports WMS, WFS, Esri MapServer, ABS ITT, Bing Maps, OpenStreetMap-style raster tiles, Mapbox, Urthecast, and WMTS item types.
- Supports querying WMS, WFS, Esri MapServer, CSW, CKAN and Socrata services for groups of items.
- 3D globe (Cesium) or 2D mode (Leaflet). 3D objects supported in CZML format.
- Time dimensions supported for CSV, CZML, WMS. Automatically animate layers, or slide the time control forward and backward.
- Drag-and-drop files from your desktop the browser, for instant visualisation (no file upload to server required).
- Wider range of file types supported through server-side OGR2OGR service (requires upload).
- All ASGS (Australian Statistical Geographic Standard) region types (LGA, SA2, commonwealth electoral district etc) supported for CSV region mapping, plus several others: Primary Health Networks, Statistical Local Areas, ISO 3 letter country codes, etc.
- Users can generate a reusable URL link of their current map view, to quickly share mashups of web-hosted data. Google's URL shortener is optionally used.
Who's using TerriaJS?
Sites developed by Data61
Prototypes and sites in development
Sites we're aware of that are using TerriaJS. These are not endorsements or testimonials.
- Built in Ecmascript 2015, compiled with Babel to ES5 using Gulp.
- Supports IE9 and later.
- TerriaJS Server component runs in NodeJS and provides proxying for web services that don't support CORS or require authentication.
- Dependencies are managed in NPM and assembled using WebPack.
The easiest way to build your own Terria-based map is using the TerriaMap starting point. This gives you the HTML structure, server and build processes you need to get a site up and running immediately.
Pre-requisites: Git, NodeJS, NPM, GDAL (optional).
sudo npm install -g gulp # Install gulp, the build tool
git clone https://github.com/TerriaJS/TerriaMap # Get the code
npm install # Install dependencies
npm start # Start the server in the background
gulp watch # Build the site, and watch for changes.
Now visit the site in your browser at
More information: Deploying your own Terria Map
Documentation about working with Terria and developing it is at http://terria.io/Documentation
Components and naming
- Terria™ is the overall name for the spatial data platform, including closed-source spatial analytics developed by Data61.
- Cesium is the 3D WebGL rendering library used by TerriaJS, which provides many low-level functions for loading and displaying imagery and spatial formats such as GeoJSON and KML.
- TerriaMap is a complete website starting point, using TerriaJS.
- TerriaJS-Server is a NodeJS-based server that provides proxying and support services for TerriaJS.
- NationalMap is the flagship Terria deployment, and the origin of the TerriaJS library.
- Catalog Editor, an automatically generated web interface for creating and editing catalog (init) files.
- Generate-TerriaJS-Schema, a tool which automatically generates a schema for validating catalog files, and also the editor, by processing TerriaJS source code.
- TerriaMapStatic, a pre-built version of TerriaMap, which can be deployed as a static HTML website, such as on Github Pages.
Using TerriaJS in an existing application
npm install terriajs
TerriaJS is composed of a number of CommonJS modules, making it easy to incorporate only the parts you need into your application. Building a TerriaJS application consists of three steps:
- Build the code with webpack (or a similar tool).
- Build the CSS with less.
- Copy the runtime resources to a directory accessible from your application's web server.
The entire process can be easily automated using gulp. See TerriaMap's gulpfile.js for an example.
index.js requires-in various TerriaJS components and initializes the user interface.
index.less customizes various aspects of the appearance and
@imports the less files for the TerriaJS components that the application uses.
All assets in
node_modules/terriajs/wwwroot should be copied to
[your app's web root directory]/build/TerriaJS.
We'd like to thank these awesome online services that provide us with free accounts for our open source work! BrowserStack, Sauce Labs, Travis CI
Join the community
Get in touch!