doc-exports/docs/dws/dev/dws_04_0304.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2024-05-16 07:24:04 +00:00

55 lines
11 KiB
HTML

<a name="EN-US_TOPIC_0000001188482118"></a><a name="EN-US_TOPIC_0000001188482118"></a>
<h1 class="topictitle1">Using PostGIS</h1>
<div id="body1531707297510"><div class="note" id="EN-US_TOPIC_0000001188482118__note118317395300"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="EN-US_TOPIC_0000001188482118__ul137737019384"><li id="EN-US_TOPIC_0000001188482118__li167736016383">The third-party software that the PostGIS Extension depends on needs to be installed separately. If you need to use PostGIS, submit a service ticket or contact technical support to submit an application.</li><li id="EN-US_TOPIC_0000001188482118__li192951831382">If the error message "ERROR: EXTENSION is not yet supported." is displayed, the PostGIS software package is not installed. Contact technical support.</li><li id="EN-US_TOPIC_0000001188482118__li6354058282">The uuid-ossp extension has been preloaded in <span id="EN-US_TOPIC_0000001188482118__text08499121199">GaussDB(DWS)</span>. You can directly use the uuid function supported by <span id="EN-US_TOPIC_0000001188482118__text819347753">GaussDB(DWS)</span> without running the <strong id="EN-US_TOPIC_0000001188482118__b1311401115511">CREATE EXTENSION uuid-ossp</strong> command.</li></ul>
</div></div>
<div class="section" id="EN-US_TOPIC_0000001188482118__section21088306113"><h4 class="sectiontitle">Creating PostGIS Extension</h4><p id="EN-US_TOPIC_0000001188482118__p2324966415">Run the <strong id="EN-US_TOPIC_0000001188482118__b1810153125917">CREATE EXTENSION</strong> command to create PostGIS Extension.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188482118__screen20194316163619"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="n">EXTENSION</span><span class="w"> </span><span class="n">postgis</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001188482118__section107391050141118"><h4 class="sectiontitle">Using PostGIS Extension</h4><p id="EN-US_TOPIC_0000001188482118__p994385545815">Use the following function to invoke a PostGIS Extension:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188482118__screen1596438609"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">GisFunction</span><span class="w"> </span><span class="p">(</span><span class="n">Param1</span><span class="p">,</span><span class="w"> </span><span class="n">Param2</span><span class="p">,......);</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188482118__p19422153613426"><strong id="EN-US_TOPIC_0000001188482118__b128481761425">GisFunction</strong> is the function, and <strong id="EN-US_TOPIC_0000001188482118__b3536111012217">Param1</strong> and <strong id="EN-US_TOPIC_0000001188482118__b4894512124">Param2</strong> are function parameters. The following SQL statements are a simple illustration for PostGIS use. For details about related functions, see <a href="https://download.osgeo.org/postgis/docs/postgis-2.4.2.pdf" target="_blank" rel="noopener noreferrer"><em id="EN-US_TOPIC_0000001188482118__i09751931124210">PostGIS 2.4.2 Manual</em></a>.</p>
<p id="EN-US_TOPIC_0000001188482118__p10350206443">Example 1: Create a geometry table.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188482118__screen193501406443"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">cities</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">integer</span><span class="p">,</span><span class="w"> </span><span class="n">city_name</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span><span class="w"> </span><span class="p">);</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">AddGeometryColumn</span><span class="p">(</span><span class="s1">'cities'</span><span class="p">,</span><span class="w"> </span><span class="s1">'position'</span><span class="p">,</span><span class="w"> </span><span class="mi">4326</span><span class="p">,</span><span class="w"> </span><span class="s1">'POINT'</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188482118__p11875311104414">Example 2: Insert geometry data.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188482118__screen192186104419"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">cities</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">position</span><span class="p">,</span><span class="w"> </span><span class="n">city_name</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">ST_GeomFromText</span><span class="p">(</span><span class="s1">'POINT(-9.5 23)'</span><span class="p">,</span><span class="mi">4326</span><span class="p">),</span><span class="s1">'CityA'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">cities</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">position</span><span class="p">,</span><span class="w"> </span><span class="n">city_name</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">ST_GeomFromText</span><span class="p">(</span><span class="s1">'POINT(-10.6 40.3)'</span><span class="p">,</span><span class="mi">4326</span><span class="p">),</span><span class="s1">'CityB'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">cities</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">position</span><span class="p">,</span><span class="w"> </span><span class="n">city_name</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">ST_GeomFromText</span><span class="p">(</span><span class="s1">'POINT(20.8 30.3)'</span><span class="p">,</span><span class="mi">4326</span><span class="p">),</span><span class="w"> </span><span class="s1">'CityC'</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188482118__p592263812446">Example 3: Calculate the distance between any two cities among three cities.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188482118__screen83614314448"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">p1</span><span class="p">.</span><span class="n">city_name</span><span class="p">,</span><span class="n">p2</span><span class="p">.</span><span class="n">city_name</span><span class="p">,</span><span class="n">ST_Distance</span><span class="p">(</span><span class="n">p1</span><span class="p">.</span><span class="k">position</span><span class="p">,</span><span class="n">p2</span><span class="p">.</span><span class="k">position</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">cities</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">p1</span><span class="p">,</span><span class="w"> </span><span class="n">cities</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">p2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">p1</span><span class="p">.</span><span class="n">id</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">p2</span><span class="p">.</span><span class="n">id</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001188482118__section1587441381220"><h4 class="sectiontitle">Deleting PostGIS Extension</h4><p id="EN-US_TOPIC_0000001188482118__p7652182511451">Run the following command to delete PostGIS Extension from <span id="EN-US_TOPIC_0000001188482118__text492744639">GaussDB(DWS)</span>:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188482118__screen17652152518452"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="n">EXTENSION</span><span class="w"> </span><span class="n">postgis</span><span class="w"> </span><span class="p">[</span><span class="k">CASCADE</span><span class="p">];</span>
</pre></div></td></tr></table></div>
</div>
<div class="note" id="EN-US_TOPIC_0000001188482118__note18993348153911"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001188482118__p14994134811397">If PostGIS Extension is the dependee of other objects (for example, geometry tables), you need to add the <strong id="EN-US_TOPIC_0000001188482118__b676118361552">CASCADE</strong> keyword to delete all these objects.</p>
</div></div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_0301.html">PostGIS Extension</a></div>
</div>
</div>