From a0843888953a8cb1b83bec58a37663bbbc74ce6c Mon Sep 17 00:00:00 2001 From: Regina Obe Date: Sun, 1 Jan 2012 14:10:18 +0000 Subject: [PATCH] changed name of prec to maxdecimaldigits for ST_AsX3D to be consistent with other ST_As* functions, change ST_AsKML to use default args git-svn-id: http://svn.osgeo.org/postgis/trunk@8638 b70326c6-7e19-0410-871a-916f4a2858ee --- doc/reference_output.xml | 65 ++++++++-------------------- postgis/geography.sql.in.c | 34 ++++----------- postgis/postgis.sql.in.c | 38 +++++----------- postgis/postgis_drop.sql.in.c | 6 +++ postgis/postgis_drop_before.sql.in.c | 2 + 5 files changed, 44 insertions(+), 101 deletions(-) diff --git a/doc/reference_output.xml b/doc/reference_output.xml index e9a1061df..50be0baa6 100644 --- a/doc/reference_output.xml +++ b/doc/reference_output.xml @@ -640,57 +640,28 @@ SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 text ST_AsKML - geometry g1 - - - text ST_AsKML - geography g1 - - - text ST_AsKML - geometry g1 - integer precision - - - text ST_AsKML - geography g1 - integer precision - - - text ST_AsKML - integer version - geometry geom1 - - - text ST_AsKML - integer version - geography geom1 - - - text ST_AsKML - integer version - geometry geom1 - integer precision + geometry geom + integer maxdecimaldigits=15 text ST_AsKML - integer version - geography geom1 - integer precision + geography geog + integer maxdecimaldigits=15 + text ST_AsKML integer version - geometry geom1 - integer precision - text namespace prefix + geometry geom + integer maxdecimaldigits=15 + text nprefix=NULL text ST_AsKML integer version - geography geog1 - integer precision - text namespace prefix + geography geog + integer maxdecimaldigits=15 + text nprefix=NULL @@ -702,11 +673,8 @@ SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 maximum number of decimal places used in output (defaults to 15), version default to 2 and default namespace is no prefix. - Version 1: ST_AsKML(geom) / version=2 precision=15 - Version 2: ST_AsKML(geom, max_sig_digits) / version=2 - Version 3: ST_AsKML(version, geom) / precision=15 - Version 4: ST_AsKML(version, geom, precision) - Version 5: ST_AsKML(version, geom, precision, namespace_prefix) + Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / maxdecimaldigits=15 + Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) maxdecimaldigits=15 / nprefix=NULL Requires PostGIS be compiled with Proj support. Use to confirm you have proj support compiled in. @@ -718,6 +686,9 @@ SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix + + Changed: 2.0.0 - uses default args and supports named args + AsKML output will not work with geometries that do not have an SRID @@ -811,7 +782,7 @@ SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 text ST_AsX3D geometry g1 - integer prec=15 + integer maxdecimaldigits=15 integer options=0 @@ -820,7 +791,7 @@ SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 Description - Returns a geometry as an X3D xml formatted node element http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/EncodingOfNodes.html. If prec (precision) is not specified then defaults to 15. + Returns a geometry as an X3D xml formatted node element http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/EncodingOfNodes.html. If maxdecimaldigits (precision) is not specified then defaults to 15. 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. diff --git a/postgis/geography.sql.in.c b/postgis/geography.sql.in.c index 4d60e67af..3a88bb436 100644 --- a/postgis/geography.sql.in.c +++ b/postgis/geography.sql.in.c @@ -444,44 +444,26 @@ CREATE OR REPLACE FUNCTION _ST_AsKML(int4, geography, int4, text) 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 diff --git a/postgis/postgis.sql.in.c b/postgis/postgis.sql.in.c index 968c462a6..2b6c3cdc3 100644 --- a/postgis/postgis.sql.in.c +++ b/postgis/postgis.sql.in.c @@ -3186,44 +3186,26 @@ CREATE OR REPLACE FUNCTION ST_AsGML(version int4, geom geometry, maxdecimaldigit ----------------------------------------------------------------------- -- KML OUTPUT ----------------------------------------------------------------------- --- _ST_AsKML(version, geom, precision) -CREATE OR REPLACE FUNCTION _ST_AsKML(int4, geometry, int4, text) +-- _ST_AsKML(version, geom, precision, nprefix) +CREATE OR REPLACE FUNCTION _ST_AsKML(int4,geometry, int4, text) RETURNS TEXT AS 'MODULE_PATHNAME','LWGEOM_asKML' LANGUAGE 'C' IMMUTABLE; -- Availability: 1.2.2 -CREATE OR REPLACE FUNCTION ST_AsKML(geometry, int4) +-- Changed: 2.0.0 to use default args and allow named args +CREATE OR REPLACE FUNCTION ST_AsKML(geom geometry, maxdecimaldigits int4 DEFAULT 15) RETURNS TEXT - AS 'SELECT _ST_AsKML(2, ST_Transform($1,4326), $2, null)' - LANGUAGE 'SQL' IMMUTABLE STRICT; - --- Availability: 1.2.2 -CREATE OR REPLACE FUNCTION ST_AsKML(geometry) - RETURNS TEXT - AS 'SELECT _ST_AsKML(2, ST_Transform($1,4326), 15, null)' - LANGUAGE 'SQL' IMMUTABLE STRICT; - --- ST_AsKML(version, geom) / precision=15 version=2 --- Availability: 1.3.2 -CREATE OR REPLACE FUNCTION ST_AsKML(int4, geometry) - RETURNS TEXT - AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), 15, null)' - LANGUAGE 'SQL' IMMUTABLE STRICT; - --- ST_AsKML(version, geom, precision) --- Availability: 1.3.2 -CREATE OR REPLACE FUNCTION ST_AsKML(int4, geometry, int4) - RETURNS TEXT - AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), $3, null)' + AS $$ SELECT _ST_AsKML(2, ST_Transform($1,4326), $2, null); $$ LANGUAGE 'SQL' IMMUTABLE STRICT; -- ST_AsKML(version, geom, precision, text) -- Availability: 2.0.0 -CREATE OR REPLACE FUNCTION ST_AsKML(int4, geometry, int4, text) +-- Changed: 2.0.0 allows default args and got rid of other permutations +CREATE OR REPLACE FUNCTION ST_AsKML(version int4, geom geometry, maxdecimaldigits int4 DEFAULT 15, nprefix text DEFAULT null) RETURNS TEXT - AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), $3, $4)' - LANGUAGE 'SQL' IMMUTABLE STRICT; + AS $$ SELECT _ST_AsKML($1, ST_Transform($2,4326), $3, $4); $$ + LANGUAGE 'SQL' IMMUTABLE; ----------------------------------------------------------------------- @@ -4737,7 +4719,7 @@ CREATE OR REPLACE FUNCTION _ST_AsX3D(int4, geometry, int4, int4, text) LANGUAGE 'C' IMMUTABLE; -- ST_AsX3D(geom, precision, options) -CREATE OR REPLACE FUNCTION ST_AsX3D(geom geometry, prec integer DEFAULT 15, options integer DEFAULT 0) +CREATE OR REPLACE FUNCTION ST_AsX3D(geom geometry, maxdecimaldigits integer DEFAULT 15, options integer DEFAULT 0) RETURNS TEXT AS $$SELECT _ST_AsX3D(3,$1,$2,$3,'');$$ LANGUAGE 'sql' IMMUTABLE; diff --git a/postgis/postgis_drop.sql.in.c b/postgis/postgis_drop.sql.in.c index 6c5332002..114535607 100644 --- a/postgis/postgis_drop.sql.in.c +++ b/postgis/postgis_drop.sql.in.c @@ -37,6 +37,12 @@ DROP FUNCTION IF EXISTS st_asgml(geography, int4); -- changed to use default ar 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 diff --git a/postgis/postgis_drop_before.sql.in.c b/postgis/postgis_drop_before.sql.in.c index ff3d870e8..3115e1df4 100644 --- a/postgis/postgis_drop_before.sql.in.c +++ b/postgis/postgis_drop_before.sql.in.c @@ -3,3 +3,5 @@ -- 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); -- 2.50.1