terraformer
Version:
A Geo-toolkit built in Javascript.
147 lines (132 loc) • 10.9 kB
HTML
<html>
<head>
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<title>Terraformer</title>
<link href="/assets/css/terraformer-02847305.css" media="screen" rel="stylesheet" type="text/css" />
</head>
<body class="wkt-parser wkt-parser_index" id="wrap">
<nav>
<ul>
<li>
<a href="/" class="">Terraformer</a>
</li>
<li>
<a href="https://github.com/search?q=%40Esri+terraformer" class="">GitHub</a>
</li>
<li>
<a href="/install" class="">Install</a>
</li>
<li>
<a href="/" data-direction="active-top" class="toggle" id="close-drawer">Docs</a>
</li>
</ul>
</nav>
<div class="drawer" id="drawer">
<div class="doctoc drawer-nav drawer-top">
<div class="container">
<ul>
<h3>Terraformer Documentation</h3>
<li><a href="/getting-started/">Getting Started</a></li>
<li><a href="/core/">Terraformer Core</a></li>
<li class="indent"><a href="/core/#terraformerprimitive">Primitives</a></li>
<li class="indent"><a href="/core/#terraformertools">Tools</a></li>
<li><a href="/geostore/">GeoStores</a></li>
<li class="indent"><a href="/geostore/data-stores/">DataStores</a></li>
<li class="indent"><a href="/geostore/spatial-indexes/">Spatial Indexes</a></li>
<li><a href="/arcgis-parser/">ArcGIS Parser</a></li>
<li><a href="/wkt-parser/">WKT Parser</a></li>
<li><a href="/glossary/">Glossary</a></li>
</ul>
</div>
</div>
</div>
<main class="docs main-content" id="main-content">
<h1>WKT Parser</h1>
<div class='semantic-toc'><ol><li><a href='#using-the-wkt-parser'>Using the WKT Parser</a><ol><li><a href='#using-in-the-browser'>Using in the Browser</a></li><li><a href='#using-in-nodejs'>Using in Node.js</a></li><li><a href='#methods'>Methods</a><ol><li><a href='#wktparse'>WKT.parse(string)</a></li><li><a href='#wktconvert'>WKT.convert(geojson)</a></div>
<p><a href="http://en.wikipedia.org/wiki/Well-known_text">Well Known Text</a> is a format used by databases like PostGIS. With Terraformer’s WKT parser you can convert between this format and GeoJSON.</p>
<h2>
<a id='using-the-wkt-parser' class='section-link'></a>
<a href='#using-the-wkt-parser' class='header-link'>Link</a>
Using the WKT Parser
<a href='#' class='back-to-top-link'>Back to Top</a>
</h2>
<p>The WKT parser can be used client-side in a browser and server-side via Node.js.</p>
<pre class="highlight javascript"><code><span class="c1">// parse a WKT string, converting it into a Terraformer.Primitive</span>
<span class="kd">var</span> <span class="nx">geojson</span> <span class="o">=</span> <span class="nx">Terraformer</span><span class="p">.</span><span class="nx">WKT</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'LINESTRING (30 10, 10 30, 40 40)'</span><span class="p">);</span>
<span class="c1">// take a primitive and convert it into a WKT representation</span>
<span class="kd">var</span> <span class="nx">polygon</span> <span class="o">=</span> <span class="nx">Terraformer</span><span class="p">.</span><span class="nx">WKT</span><span class="p">.</span><span class="nx">convert</span><span class="p">({</span>
<span class="s2">"type"</span><span class="p">:</span> <span class="s2">"Polygon"</span><span class="p">,</span>
<span class="s2">"coordinates"</span><span class="p">:</span> <span class="p">[</span>
<span class="p">[</span> <span class="p">[</span><span class="mf">100.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">101.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">101.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">]</span> <span class="p">],</span>
<span class="p">[</span> <span class="p">[</span><span class="mf">100.2</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.8</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.8</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.2</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.2</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">]</span> <span class="p">]</span>
<span class="p">]</span>
<span class="p">});</span>
</code></pre>
<h3>
<a id='using-in-the-browser' class='section-link'></a>
<a href='#using-in-the-browser' class='header-link'>Link</a>
Using in the Browser
<a href='#' class='back-to-top-link'>Back to Top</a>
</h3>
<p>In the browser, the core <a href="http://github.com/esri/terraformer">Terraformer</a> library is required.</p>
<pre class="highlight html"><code><span class="nt"><script </span><span class="na">src=</span><span class="s">"terraformer.min.js"</span><span class="nt">></script></span>
<span class="nt"><script </span><span class="na">src=</span><span class="s">"terraformer-wkt-parser.min.js"</span><span class="nt">></script></span>
<span class="nt"><script></span>
<span class="c1">//Terraformer and Terraformer.WKT will be defined.</span>
<span class="nt"></script></span>
</code></pre>
<p>You can also use <a href="http://bower.io/">Bower</a> to install the components if you like, or download them and host them yourself.</p>
<pre class="highlight plaintext"><code>$ bower install terraformer-wkt-parser
</code></pre>
<h3>
<a id='using-in-nodejs' class='section-link'></a>
<a href='#using-in-nodejs' class='header-link'>Link</a>
Using in Node.js
<a href='#' class='back-to-top-link'>Back to Top</a>
</h3>
<p>Just install the package from NPM with <code>$ npm install terraformer-wkt-parser</code>. Then include it in your application.</p>
<pre class="highlight javascript"><code><span class="kd">var</span> <span class="nx">WKT</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'terraformer-wkt-parser'</span><span class="p">);</span>
<span class="c1">// Start using the parse and convert methods!</span>
</code></pre>
<h3>
<a id='methods' class='section-link'></a>
<a href='#methods' class='header-link'>Link</a>
Methods
<a href='#' class='back-to-top-link'>Back to Top</a>
</h3><h4>
<a id='wktparse' class='section-link'></a>
<a href='#wktparse' class='header-link'>Link</a>
WKT.parse(string)
<a href='#' class='back-to-top-link'>Back to Top</a>
</h4>
<p><code>Terraformer.WKT.parse(string)</code> - Used to convert a <code>POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON</code> or <code>MULTIPOLYGON</code> WKT string into a <a href="/core/#terraformerprimitive">Terraformer.Primitive</a>.</p>
<pre class="highlight javascript"><code><span class="kd">var</span> <span class="nx">geojson</span> <span class="o">=</span> <span class="nx">Terraformer</span><span class="p">.</span><span class="nx">WKT</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'LINESTRING (30 10, 10 30, 40 40)'</span><span class="p">);</span>
</code></pre>
<h4>
<a id='wktconvert' class='section-link'></a>
<a href='#wktconvert' class='header-link'>Link</a>
WKT.convert(geojson)
<a href='#' class='back-to-top-link'>Back to Top</a>
</h4>
<p><code>Terraformer.WKT.convert(geoJSON)</code> will turn a GeoJSON <a href="http://geojson.org/geojson-spec.html#geometry-objects"><code>Point, MultiPoint, LineString, MultiLineString, Polygon</code> or <code>MultiPolygon</code></a> geometry object or a Terraformer Primitive into WKT.</p>
<h5>Example</h5><pre class="highlight javascript"><code><span class="kd">var</span> <span class="nx">polygon</span> <span class="o">=</span> <span class="nx">Terraformer</span><span class="p">.</span><span class="nx">WKT</span><span class="p">.</span><span class="nx">convert</span><span class="p">({</span>
<span class="s2">"type"</span><span class="p">:</span> <span class="s2">"Polygon"</span><span class="p">,</span>
<span class="s2">"coordinates"</span><span class="p">:</span> <span class="p">[</span>
<span class="p">[</span> <span class="p">[</span><span class="mf">100.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">101.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">101.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">]</span> <span class="p">],</span>
<span class="p">[</span> <span class="p">[</span><span class="mf">100.2</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.8</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.8</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.2</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">],</span> <span class="p">[</span><span class="mf">100.2</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">]</span> <span class="p">]</span>
<span class="p">]</span>
<span class="p">});</span>
</code></pre>
</main>
<footer>
<p>
Terraformer is an open source project from the <a href="http://pdx.esri.com/">Esri Portland R&D Center</a>
</p>
</footer>
<script src="/assets/javascripts/modernizr.custom-cadc78a2.js" type="text/javascript"></script>
<script src="/assets/javascripts/classie-b6db1f70.js" type="text/javascript"></script>
<script src="/assets/javascripts/drawer-3a1490eb.js" type="text/javascript"></script>
</body>
</html>