terriajs
Version:
Geospatial data visualization platform.
1,420 lines (722 loc) • 35.1 kB
HTML
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="lang:clipboard.copy" content="Copy to clipboard">
<meta name="lang:clipboard.copied" content="Copied to clipboard">
<meta name="lang:search.language" content="en">
<meta name="lang:search.result.none" content="No matching documents">
<meta name="lang:search.result.one" content="1 matching document">
<meta name="lang:search.result.other" content="# matching documents">
<meta name="lang:search.tokenizer" content="[\s\-]+">
<link rel="shortcut icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-0.17.2, mkdocs-material-2.2.3">
<title>Getting Started - TerriaJS</title>
<link rel="stylesheet" href="../assets/stylesheets/application.bcabdff3.css">
<script src="../assets/javascripts/modernizr.1aa3b519.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
<style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
</head>
<body>
<svg class="md-svg">
<defs>
</defs>
</svg>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="drawer">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="search">
<label class="md-overlay" data-md-component="overlay" for="drawer"></label>
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href=".." title="TerriaJS" class="md-header-nav__button md-logo">
<img src="../terria.png" width="24" height="24">
</a>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--menu md-header-nav__button" for="drawer"></label>
</div>
<div class="md-flex__cell md-flex__cell--stretch">
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
TerriaJS
</span>
<span class="md-header-nav__topic">
Getting Started
</span>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--search md-header-nav__button" for="search"></label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="search"></label>
<div class="md-search__inner">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" required placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query">
<label class="md-icon md-search__icon" for="search"></label>
<button type="reset" class="md-icon md-search__icon" data-md-component="reset"></button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="result">
<div class="md-search-result__meta">
Type to start searching
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container">
<main class="md-main">
<div class="md-main__inner md-grid" data-md-component="container">
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="drawer">
<span class="md-nav__button md-logo">
<img src="../terria.png" width="24" height="24">
</span>
TerriaJS
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." title="Home" class="md-nav__link">
Home
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="toc">
<label class="md-nav__link md-nav__link--active" for="toc">
Getting Started
</label>
<a href="./" title="Getting Started" class="md-nav__link md-nav__link--active">
Getting Started
</a>
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="toc">Table of contents</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#quick-start" title="Quick Start" class="md-nav__link">
Quick Start
</a>
</li>
<li class="md-nav__item">
<a href="#prerequisites" title="Prerequisites" class="md-nav__link">
Prerequisites
</a>
</li>
<li class="md-nav__item">
<a href="#cloning-terriamap" title="Cloning TerriaMap" class="md-nav__link">
Cloning TerriaMap
</a>
</li>
<li class="md-nav__item">
<a href="#installing-dependencies" title="Installing Dependencies" class="md-nav__link">
Installing Dependencies
</a>
</li>
<li class="md-nav__item">
<a href="#building-terriamap" title="Building TerriaMap" class="md-nav__link">
Building TerriaMap
</a>
</li>
<li class="md-nav__item">
<a href="#running-terriamap" title="Running TerriaMap" class="md-nav__link">
Running TerriaMap
</a>
</li>
<li class="md-nav__item">
<a href="#keeping-up-with-updates" title="Keeping up with Updates" class="md-nav__link">
Keeping up with Updates
</a>
</li>
<li class="md-nav__item">
<a href="#next-steps" title="Next Steps" class="md-nav__link">
Next Steps
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
<label class="md-nav__link" for="nav-3">
Customizing
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-3">
Customizing
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../customizing/" title="Overview" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../customizing/client-side-config/" title="Client-side Config" class="md-nav__link">
Client-side Config
</a>
</li>
<li class="md-nav__item">
<a href="../customizing/initialization-files/" title="Initialization Files" class="md-nav__link">
Initialization Files
</a>
</li>
<li class="md-nav__item">
<a href="../customizing/server-side-config/" title="Server-side Config" class="md-nav__link">
Server-side Config
</a>
</li>
<li class="md-nav__item">
<a href="../customizing/skinning/" title="Skinning" class="md-nav__link">
Skinning
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
<label class="md-nav__link" for="nav-4">
Connecting to Data
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-4">
Connecting to Data
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../connecting-to-data/" title="Overview" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/cross-origin-resource-sharing/" title="Cross-Origin Resource Sharing" class="md-nav__link">
Cross-Origin Resource Sharing
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-groups/" title="Catalog Groups" class="md-nav__link">
Catalog Groups
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-items/" title="Catalog Items" class="md-nav__link">
Catalog Items
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4-5" type="checkbox" id="nav-4-5">
<label class="md-nav__link" for="nav-4-5">
Customizing Data Appearance
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-4-5">
Customizing Data Appearance
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../connecting-to-data/customizing-data-appearance/overview/" title="Overview" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/customizing-data-appearance/imagery-data/" title="Imagery Data" class="md-nav__link">
Imagery Data
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/customizing-data-appearance/tabular-data/" title="Tabular Data" class="md-nav__link">
Tabular Data
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/customizing-data-appearance/feature-info-template/" title="Feature Information Template" class="md-nav__link">
Feature Information Template
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-functions/" title="Catalog Functions" class="md-nav__link">
Catalog Functions
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4-7" type="checkbox" id="nav-4-7">
<label class="md-nav__link" for="nav-4-7">
Catalog Type Details
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-4-7">
Catalog Type Details
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/abs-itt-dataset-list/" title="ABS ITT (group)" class="md-nav__link">
ABS ITT (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/abs-itt/" title="ABS ITT (item)" class="md-nav__link">
ABS ITT (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/esri-featureServer-group/" title="ArcGIS FeatureServer (group)" class="md-nav__link">
ArcGIS FeatureServer (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/esri-featureServer/" title="ArcGIS FeatureServer (item)" class="md-nav__link">
ArcGIS FeatureServer (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/esri-mapServer-group/" title="ArcGIS MapServer (group)" class="md-nav__link">
ArcGIS MapServer (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/esri-mapServer/" title="ArcGIS MapServer (item)" class="md-nav__link">
ArcGIS MapServer (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/esri-group/" title="ArcGIS Server (group)" class="md-nav__link">
ArcGIS Server (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/bing-maps/" title="Bing Maps (item)" class="md-nav__link">
Bing Maps (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/csw/" title="Catalog Service for the Web (CSW) (group)" class="md-nav__link">
Catalog Service for the Web (CSW) (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/czml/" title="Cesium Language (CZML) (item)" class="md-nav__link">
Cesium Language (CZML) (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/cesium-terrain/" title="Cesium Terrain (item)" class="md-nav__link">
Cesium Terrain (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/ckan/" title="CKAN (group)" class="md-nav__link">
CKAN (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/ckan-resource/" title="CKAN Resource (item)" class="md-nav__link">
CKAN Resource (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/csv/" title="Comma-Separated Values (CSV) (item)" class="md-nav__link">
Comma-Separated Values (CSV) (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/composite/" title="Composite (item)" class="md-nav__link">
Composite (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/ogr/" title="Format Conversion Service (based on OGR) (item)" class="md-nav__link">
Format Conversion Service (based on OGR) (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/geojson/" title="GeoJSON (item)" class="md-nav__link">
GeoJSON (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/gpx/" title="GPX (item)" class="md-nav__link">
GPX (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/group/" title="Group (Manual) (group)" class="md-nav__link">
Group (Manual) (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/kml/" title="Keyhole Markup Language (KML) (item)" class="md-nav__link">
Keyhole Markup Language (KML) (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/open-street-map/" title="OpenStreetMap (item)" class="md-nav__link">
OpenStreetMap (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/places-like-me-function/" title="Places Like Me (function)" class="md-nav__link">
Places Like Me (function)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/sdmx-json/" title="SDMX-JSON (item)" class="md-nav__link">
SDMX-JSON (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/sos/" title="Sensor Observation Service (SOS) (item)" class="md-nav__link">
Sensor Observation Service (SOS) (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/socrata/" title="Socrata (group)" class="md-nav__link">
Socrata (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/spatial-detailing-function/" title="Spatial Detailing (function)" class="md-nav__link">
Spatial Detailing (function)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/terria-json/" title="TerriaJS JSON (function)" class="md-nav__link">
TerriaJS JSON (function)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/url-template/" title="URL Template (item)" class="md-nav__link">
URL Template (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/wfs-getCapabilities/" title="Web Feature Service (WFS) (group)" class="md-nav__link">
Web Feature Service (WFS) (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/wfs/" title="Web Feature Service (WFS) (item)" class="md-nav__link">
Web Feature Service (WFS) (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/wms-getCapabilities/" title="Web Map Service (WMS) (group)" class="md-nav__link">
Web Map Service (WMS) (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/wms/" title="Web Map Service (WMS) (item)" class="md-nav__link">
Web Map Service (WMS) (item)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/wps/" title="Web Processing Service (WPS) (function)" class="md-nav__link">
Web Processing Service (WPS) (function)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/wps-getCapabilities/" title="Web Processing Service (WPS) (group)" class="md-nav__link">
Web Processing Service (WPS) (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/wfs-features-group/" title="WFS Features (group)" class="md-nav__link">
WFS Features (group)
</a>
</li>
<li class="md-nav__item">
<a href="../connecting-to-data/catalog-type-details/why-am-i-special-function/" title="Why Am I Special (function)" class="md-nav__link">
Why Am I Special (function)
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
<label class="md-nav__link" for="nav-5">
Deploying
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-5">
Deploying
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../deploying/" title="Overview" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../deploying/deploying-terriamap/" title="Deploying TerriaMap" class="md-nav__link">
Deploying TerriaMap
</a>
</li>
<li class="md-nav__item">
<a href="../deploying/deploying-to-aws/" title="Deploying to AWS" class="md-nav__link">
Deploying to AWS
</a>
</li>
<li class="md-nav__item">
<a href="../deploying/deploying-with-kubernetes/" title="Deploying with Kubernetes" class="md-nav__link">
Deploying with Kubernetes
</a>
</li>
<li class="md-nav__item">
<a href="../deploying/setting-up-a-region-mapping-server/" title="Setting Up a Region Mapping Server" class="md-nav__link">
Setting Up a Region Mapping Server
</a>
</li>
<li class="md-nav__item">
<a href="../deploying/setting-up-geoserver/" title="Setting Up Geoserver" class="md-nav__link">
Setting Up Geoserver
</a>
</li>
<li class="md-nav__item">
<a href="../deploying/using-as-a-ckan-previewer/" title="Using as a CKAN Previewer" class="md-nav__link">
Using as a CKAN Previewer
</a>
</li>
<li class="md-nav__item">
<a href="../deploying/controlling-with-url-parameters/" title="Controlling with URL Parameters" class="md-nav__link">
Controlling with URL Parameters
</a>
</li>
<li class="md-nav__item">
<a href="../deploying/controlling-in-an-iframe-or-popup/" title="Controlling in an <iframe> or Popup" class="md-nav__link">
Controlling in an <iframe> or Popup
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
<label class="md-nav__link" for="nav-6">
Contributing
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-6">
Contributing
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../contributing/" title="Overview" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../contributing/development-environment/" title="Development Environment" class="md-nav__link">
Development Environment
</a>
</li>
<li class="md-nav__item">
<a href="../contributing/architecture/" title="Architecture" class="md-nav__link">
Architecture
</a>
</li>
<li class="md-nav__item">
<a href="../contributing/using-a-custom-version-of-cesium/" title="Using a Custom Version of Cesium" class="md-nav__link">
Using a Custom Version of Cesium
</a>
</li>
<li class="md-nav__item">
<a href="../contributing/setting-up-saucelabs/" title="Setting up Saucelabs" class="md-nav__link">
Setting up Saucelabs
</a>
</li>
<li class="md-nav__item">
<a href="../contributing/problems-and-solutions/" title="Problems and Solutions" class="md-nav__link">
Problems and Solutions
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="toc">Table of contents</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#quick-start" title="Quick Start" class="md-nav__link">
Quick Start
</a>
</li>
<li class="md-nav__item">
<a href="#prerequisites" title="Prerequisites" class="md-nav__link">
Prerequisites
</a>
</li>
<li class="md-nav__item">
<a href="#cloning-terriamap" title="Cloning TerriaMap" class="md-nav__link">
Cloning TerriaMap
</a>
</li>
<li class="md-nav__item">
<a href="#installing-dependencies" title="Installing Dependencies" class="md-nav__link">
Installing Dependencies
</a>
</li>
<li class="md-nav__item">
<a href="#building-terriamap" title="Building TerriaMap" class="md-nav__link">
Building TerriaMap
</a>
</li>
<li class="md-nav__item">
<a href="#running-terriamap" title="Running TerriaMap" class="md-nav__link">
Running TerriaMap
</a>
</li>
<li class="md-nav__item">
<a href="#keeping-up-with-updates" title="Keeping up with Updates" class="md-nav__link">
Keeping up with Updates
</a>
</li>
<li class="md-nav__item">
<a href="#next-steps" title="Next Steps" class="md-nav__link">
Next Steps
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content">
<article class="md-content__inner md-typeset">
<h1>Getting Started</h1>
<p>The easiest way to get started with TerriaJS is to use <a href="https://github.com/TerriaJS/TerriaMap">TerriaMap</a>. TerriaMap is a full-featured application built on TerriaJS, ready to be customized with your own branding and catalog. It is also a great starting point for more in-depth customization.</p>
<p>This guide explains how to build and run TerriaMap locally. See <a href="../deploying">Deploying</a> to learn how to deploy it for use by others.</p>
<p>You may also be interested in how to <a href="http://stevebennett.me/2015/07/02/your-own-personal-national-map-with-terriajs-no-coding-and-nothing-to-deploy/">make your own map without writing any code</a>.</p>
<h3 id="quick-start">Quick Start</h3>
<p>If you've done this sort of thing before, you'll find it easy to clone and build TerriaMap with these quick instructions:</p>
<pre><code class="bash">git clone https://github.com/TerriaJS/TerriaMap.git
cd TerriaMap
npm install && npm run gulp && npm start
# Open at http://localhost:3001
</code></pre>
<p>If you run into trouble or want more explanation, read on.</p>
<h3 id="prerequisites">Prerequisites</h3>
<p>TerriaJS can be built and run on almost any macOS, Linux, or Windows system. The following are required to build TerriaJS:</p>
<ul>
<li>The Bash command shell. On macOS or Linux you almost certainly already have this. On Windows, you can easily get it by installing <a href="https://gitforwindows.org/">Git for Windows</a>. In the instructions below, we assume you're using a Bash command prompt.</li>
<li><a href="https://nodejs.org">Node.js</a> v6.0 or later. v7.x and v8.x are also known to work. You can check your node version by running <code>node --version</code> on the command-line.</li>
<li><a href="https://www.npmjs.com/">npm</a> v3.0 or later. v4.x and v5.x are also known to work. npm is usually installed automatically alongside the above. You can check your npm version by running <code>npm --version</code>.</li>
</ul>
<p>The following components are optional:</p>
<ul>
<li><a href="http://www.gdal.org/">GDAL</a> - Used for the conversion service that transforms Esri Shapefiles and other more obscure formats into GeoJSON for display in TerriaJS. This is <em>not</em> required for formats that TerriaJS supports directly, including KML, GeoJSON, etc.</li>
</ul>
<h3 id="cloning-terriamap">Cloning TerriaMap</h3>
<p>The latest version of TerriaMap is on <a href="https://github.com">GitHub</a>, and the preferred way to get it is by using <code>git</code>:</p>
<pre><code class="bash">git clone https://github.com/TerriaJS/TerriaMap.git
cd TerriaMap
</code></pre>
<p>If you're unable to use git, you can also <a href="https://github.com/TerriaJS/TerriaMap/archive/master.zip">download a ZIP file</a> and extract it somewhere on your system. We recommend using git, though, because it makes it much easier to update to later versions in the future.</p>
<h3 id="installing-dependencies">Installing Dependencies</h3>
<p>All of the dependencies required to build and run TerriaMap, other than the prerequisites listed above, are installed using <code>npm</code>:</p>
<pre><code class="bash">npm install
</code></pre>
<p>The dependencies are installed in the <code>node_modules</code> subdirectory. No global changes are made to your system.</p>
<h3 id="building-terriamap">Building TerriaMap</h3>
<p>Do a standard build of TerriaMap with:</p>
<pre><code class="bash">npm run gulp
</code></pre>
<p>Or, you can create a minified release build with:</p>
<pre><code class="bash">npm run gulp release
</code></pre>
<p>To watch for changes and automatically do an incremental build when any are detected, use:</p>
<pre><code class="bash">npm run gulp watch
</code></pre>
<p><code>npm run gulp</code> simply runs <code>gulp</code>, so you can use that directly if you prefer (run <code>npm install -g gulp</code> to install it globally).</p>
<p>The full set of <code>gulp</code> tasks can be found on the <a href="../contributing/development-environment/#terriamap-gulp-tasks">Development Environment</a> page.</p>
<h3 id="running-terriamap">Running TerriaMap</h3>
<p>TerriaMap includes a simple Node.js-based web server, called <a href="https://github.com/TerriaJS/terriajs-server">terriajs-server</a>. To start it, run:</p>
<pre><code class="bash">npm start
</code></pre>
<p>Then, open a web browser on <code>http://localhost:3001</code> to use TerriaMap.</p>
<h3 id="keeping-up-with-updates">Keeping up with Updates</h3>
<p>If you're building an application by using TerriaMap as a starting point, you will want to keep in sync as TerriaMap is improved and updated to use new versions of TerriaJS. Forking the TerriaMap repo and using git to keep it in sync is outside the scope of this document, but GitHub has a <a href="https://help.github.com/articles/fork-a-repo/">nice explanation</a>.</p>
<p>After pulling new changes, you will need to run <code>npm install</code> again to pick up any changed dependencies and then build TerriaMap. If you have problems building or running, it is sometimes helpful to remove and reinstall the dependencies from npm:</p>
<pre><code class="bash">rm -rf node_modules
npm install
</code></pre>
<h3 id="next-steps">Next Steps</h3>
<p>Now that you have a working local build of TerriaMap, you may want to <a href="../customizing">customize it</a> or <a href="../deploying">deploy it</a> for others to use.</p>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid">
<a href=".." title="Home" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
</div>
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Previous
</span>
Home
</span>
</div>
</a>
<a href="../customizing/" title="Overview" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Next
</span>
Overview
</span>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
</div>
</a>
</nav>
</div>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
powered by
<a href="http://www.mkdocs.org">MkDocs</a>
and
<a href="https://squidfunk.github.io/mkdocs-material/">
Material for MkDocs</a>
</div>
</div>
</div>
</footer>
</div>
<script src="../assets/javascripts/application.6cdc17f0.js"></script>
<script>app.initialize({version:"0.17.2",url:{base:".."}})</script>
</body>
</html>