<funcsynopsis>
<funcprototype>
<funcdef>text <function>ST_AsKML</function></funcdef>
- <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>text <function>ST_AsKML</function></funcdef>
- <paramdef><type>geography </type> <parameter>g1</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>text <function>ST_AsKML</function></funcdef>
- <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>
- <paramdef><type>integer </type> <parameter>precision</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>text <function>ST_AsKML</function></funcdef>
- <paramdef><type>geography </type> <parameter>g1</parameter></paramdef>
- <paramdef><type>integer </type> <parameter>precision</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>text <function>ST_AsKML</function></funcdef>
- <paramdef><type>integer </type> <parameter>version</parameter></paramdef>
- <paramdef><type>geometry </type> <parameter>geom1</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>text <function>ST_AsKML</function></funcdef>
- <paramdef><type>integer </type> <parameter>version</parameter></paramdef>
- <paramdef><type>geography </type> <parameter>geom1</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>text <function>ST_AsKML</function></funcdef>
- <paramdef><type>integer </type> <parameter>version</parameter></paramdef>
- <paramdef><type>geometry </type> <parameter>geom1</parameter></paramdef>
- <paramdef><type>integer </type> <parameter>precision</parameter></paramdef>
+ <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>
+ <paramdef choice='opt'><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>text <function>ST_AsKML</function></funcdef>
- <paramdef><type>integer </type> <parameter>version</parameter></paramdef>
- <paramdef><type>geography </type> <parameter>geom1</parameter></paramdef>
- <paramdef><type>integer </type> <parameter>precision</parameter></paramdef>
+ <paramdef><type>geography </type> <parameter>geog</parameter></paramdef>
+ <paramdef choice='opt'><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef>
</funcprototype>
+
<funcprototype>
<funcdef>text <function>ST_AsKML</function></funcdef>
<paramdef><type>integer </type> <parameter>version</parameter></paramdef>
- <paramdef><type>geometry </type> <parameter>geom1</parameter></paramdef>
- <paramdef><type>integer </type> <parameter>precision</parameter></paramdef>
- <paramdef><type>text </type> <parameter>namespace prefix</parameter></paramdef>
+ <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>
+ <paramdef choice='opt'><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef>
+ <paramdef choice='opt'><type>text </type> <parameter>nprefix=NULL</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>text <function>ST_AsKML</function></funcdef>
<paramdef><type>integer </type> <parameter>version</parameter></paramdef>
- <paramdef><type>geography </type> <parameter>geog1</parameter></paramdef>
- <paramdef><type>integer </type> <parameter>precision</parameter></paramdef>
- <paramdef><type>text </type> <parameter>namespace prefix</parameter></paramdef>
+ <paramdef><type>geography </type> <parameter>geog</parameter></paramdef>
+ <paramdef choice='opt'><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef>
+ <paramdef choice='opt'><type>text </type> <parameter>nprefix=NULL</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
maximum number of decimal places used in
output (defaults to 15), version default to 2 and default namespace is no prefix.</para>
- <para>Version 1: ST_AsKML(geom) / version=2 precision=15</para>
- <para>Version 2: ST_AsKML(geom, max_sig_digits) / version=2 </para>
- <para>Version 3: ST_AsKML(version, geom) / precision=15 </para>
- <para>Version 4: ST_AsKML(version, geom, precision) </para>
- <para>Version 5: ST_AsKML(version, geom, precision, namespace_prefix) </para>
+ <para>Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / maxdecimaldigits=15 </para>
+ <para>Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) maxdecimaldigits=15 / nprefix=NULL </para>
<note>
<para>Requires PostGIS be compiled with Proj support. Use <xref linkend="PostGIS_Full_Version" /> to confirm you have proj support compiled in.</para>
<note>
<para>Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix</para>
</note>
+ <note>
+ <para>Changed: 2.0.0 - uses default args and supports named args</para>
+ </note>
<note>
<para>AsKML output will not work with geometries that do not have an SRID</para>
<funcprototype>
<funcdef>text <function>ST_AsX3D</function></funcdef>
<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>
- <paramdef choice='opt'><type>integer </type> <parameter>prec=15</parameter></paramdef>
+ <paramdef choice='opt'><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef>
<paramdef choice='opt'><type>integer </type> <parameter>options=0</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<refsection>
<title>Description</title>
- <para>Returns a geometry as an X3D xml formatted node element <ulink url="http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/EncodingOfNodes.html">http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/EncodingOfNodes.html</ulink>. If <varname>prec</varname> (precision) is not specified then defaults to 15. </para>
+ <para>Returns a geometry as an X3D xml formatted node element <ulink url="http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/EncodingOfNodes.html">http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/EncodingOfNodes.html</ulink>. If <varname>maxdecimaldigits</varname> (precision) is not specified then defaults to 15. </para>
<note>
<para>There are various options for translating PostGIS geometries to X3D since X3D geometry types don't map directly to PostGIS geometry types and some newer X3D types that might be better mappings we ahve avoided since most rendering tools don't currently support them.
These are the mappings we have settled on. Feel free to post a bug ticket if you have thoughts on the idea or ways we can allow people to denote their preferred mappings.</para>
LANGUAGE 'C' IMMUTABLE;
-- AsKML(geography,precision) / version=2
-CREATE OR REPLACE FUNCTION ST_AsKML(geography, int4)
+-- Changed: 2.0.0 to use default args and named args
+CREATE OR REPLACE FUNCTION ST_AsKML(geog geography, maxdecimaldigits int4 DEFAULT 15)
RETURNS text
AS 'SELECT _ST_AsKML(2, $1, $2, null)'
LANGUAGE 'SQL' IMMUTABLE STRICT;
--- AsKML(geography) / precision=15 version=2
-CREATE OR REPLACE FUNCTION ST_AsKML(geography)
- RETURNS text
- AS 'SELECT _ST_AsKML(2, $1, 15, null)'
- LANGUAGE 'SQL' IMMUTABLE STRICT;
-
-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
--- TODO Remove in 2.0
+-- Deprecated 2.0.0
CREATE OR REPLACE FUNCTION ST_AsKML(text)
RETURNS text AS
- $$ SELECT ST_AsKML($1::geometry); $$
- LANGUAGE 'SQL' IMMUTABLE STRICT;
-
--- ST_AsKML(version, geography) / precision=15
-CREATE OR REPLACE FUNCTION ST_AsKML(int4, geography)
- RETURNS text
- AS 'SELECT _ST_AsKML($1, $2, 15, null)'
- LANGUAGE 'SQL' IMMUTABLE STRICT;
-
--- ST_AsKML(version, geography, precision)
-CREATE OR REPLACE FUNCTION ST_AsKML(int4, geography, int4)
- RETURNS text
- AS 'SELECT _ST_AsKML($1, $2, $3, null)'
+ $$ SELECT _ST_AsKML(2, $1::geometry, 15, null); $$
LANGUAGE 'SQL' IMMUTABLE STRICT;
-- ST_AsKML(version, geography, precision, prefix)
--- Availability: 2.0.0
-CREATE OR REPLACE FUNCTION ST_AsKML(int4, geography, int4, text)
+-- Availability: 2.0.0 nprefix added
+-- Changed: 2.0.0 to use default args and named args
+CREATE OR REPLACE FUNCTION ST_AsKML(version int4, geog geography, maxdecimaldigits int4 DEFAULT 15, nprefix text DEFAULT null)
RETURNS text
AS 'SELECT _ST_AsKML($1, $2, $3, $4)'
- LANGUAGE 'SQL' IMMUTABLE STRICT;
-
-
+ LANGUAGE 'SQL' IMMUTABLE;
--
-- GeoJson Output
-----------------------------------------------------------------------\r
-- KML OUTPUT\r
-----------------------------------------------------------------------\r
--- _ST_AsKML(version, geom, precision)\r
-CREATE OR REPLACE FUNCTION _ST_AsKML(int4, geometry, int4, text)\r
+-- _ST_AsKML(version, geom, precision, nprefix)\r
+CREATE OR REPLACE FUNCTION _ST_AsKML(int4,geometry, int4, text)\r
RETURNS TEXT\r
AS 'MODULE_PATHNAME','LWGEOM_asKML'\r
LANGUAGE 'C' IMMUTABLE;\r
\r
-- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_AsKML(geometry, int4)\r
+-- Changed: 2.0.0 to use default args and allow named args\r
+CREATE OR REPLACE FUNCTION ST_AsKML(geom geometry, maxdecimaldigits int4 DEFAULT 15)\r
RETURNS TEXT\r
- AS 'SELECT _ST_AsKML(2, ST_Transform($1,4326), $2, null)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_AsKML(geometry)\r
- RETURNS TEXT\r
- AS 'SELECT _ST_AsKML(2, ST_Transform($1,4326), 15, null)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- ST_AsKML(version, geom) / precision=15 version=2\r
--- Availability: 1.3.2\r
-CREATE OR REPLACE FUNCTION ST_AsKML(int4, geometry)\r
- RETURNS TEXT\r
- AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), 15, null)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- ST_AsKML(version, geom, precision)\r
--- Availability: 1.3.2\r
-CREATE OR REPLACE FUNCTION ST_AsKML(int4, geometry, int4)\r
- RETURNS TEXT\r
- AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), $3, null)'\r
+ AS $$ SELECT _ST_AsKML(2, ST_Transform($1,4326), $2, null); $$\r
LANGUAGE 'SQL' IMMUTABLE STRICT;\r
\r
-- ST_AsKML(version, geom, precision, text)\r
-- Availability: 2.0.0\r
-CREATE OR REPLACE FUNCTION ST_AsKML(int4, geometry, int4, text)\r
+-- Changed: 2.0.0 allows default args and got rid of other permutations\r
+CREATE OR REPLACE FUNCTION ST_AsKML(version int4, geom geometry, maxdecimaldigits int4 DEFAULT 15, nprefix text DEFAULT null)\r
RETURNS TEXT\r
- AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), $3, $4)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+ AS $$ SELECT _ST_AsKML($1, ST_Transform($2,4326), $3, $4); $$\r
+ LANGUAGE 'SQL' IMMUTABLE;\r
\r
\r
-----------------------------------------------------------------------\r
LANGUAGE 'C' IMMUTABLE;\r
\r
-- ST_AsX3D(geom, precision, options)\r
-CREATE OR REPLACE FUNCTION ST_AsX3D(geom geometry, prec integer DEFAULT 15, options integer DEFAULT 0)\r
+CREATE OR REPLACE FUNCTION ST_AsX3D(geom geometry, maxdecimaldigits integer DEFAULT 15, options integer DEFAULT 0)\r
RETURNS TEXT\r
AS $$SELECT _ST_AsX3D(3,$1,$2,$3,'');$$\r
LANGUAGE 'sql' IMMUTABLE;\r
DROP FUNCTION IF EXISTS st_asgml(int4, geography); -- changed to use default args
DROP FUNCTION IF EXISTS st_asgml(int4, geography, int4); -- changed to use default args
DROP FUNCTION IF EXISTS st_asgml(int4, geography, int4,int4); -- changed to use default args
+DROP FUNCTION IF EXISTS ST_AsKML(geometry); -- changed to use default args
+DROP FUNCTION IF EXISTS ST_AsKML(geography); -- changed to use default args
+DROP FUNCTION IF EXISTS ST_AsKML(geometry, int4); -- changed to use default args
+DROP FUNCTION IF EXISTS ST_AsKML(geography, int4); -- changed to use default args
+DROP FUNCTION IF EXISTS ST_AsKML(int4, geometry, int4); -- changed to use default args
+DROP FUNCTION IF EXISTS ST_AsKML(int4, geography, int4); -- changed to use default args
DROP FUNCTION IF EXISTS st_asx3d(geometry); -- this one changed to use default parameters so full function deals with it
DROP FUNCTION IF EXISTS st_asx3d(geometry, int4); -- introduce variant with opts so get rid of other without ops
DROP FUNCTION IF EXISTS st_assvg(geometry); -- changed to use default args
-- so have to be dropped before upgrade can happen --
DROP FUNCTION IF EXISTS AddGeometryColumn(varchar,varchar,varchar,varchar,integer,varchar,integer,boolean);
DROP FUNCTION IF EXISTS ST_MakeEnvelope(float8, float8, float8, float8);
+--changed name of prec arg to be consistent with ST_AsGML/KML
+DROP FUNCTION IF EXISTS ST_AsX3D(geometry, integer, integer);