1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
-- PostGIS - Spatial Types for PostgreSQL
-- http://postgis.net
--
-- Copyright (C) 2011 Sandro Santilli <strk@kbt.io>
--
-- This is free software; you can redistribute and/or modify it under
-- the terms of the GNU General Public Licence. See the COPYING file.
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-- {
-- Override geometrytype() for topogeometry objects
--
-- Note: For performance reasons, this function always assumes
-- TopoGeometry are of the MULTI type. This may not always
-- be the case if you convert the TopoGeometry to an actual
-- Geometry.
--
-- }{
CREATE OR REPLACE FUNCTION topology.GeometryType(tg topology.TopoGeometry)
RETURNS text
AS
$$
SELECT CASE
WHEN type($1) = 1 THEN 'MULTIPOINT'
WHEN type($1) = 2 THEN 'MULTILINESTRING'
WHEN type($1) = 3 THEN 'MULTIPOLYGON'
WHEN type($1) = 4 THEN 'GEOMETRYCOLLECTION'
ELSE 'UNEXPECTED'
END;
$$
LANGUAGE 'sql' STABLE STRICT;
-- }
-- {
-- Override st_geometrytype() for topogeometry objects
--
-- Note: For performance reasons, this function always assumes
-- TopoGeometry are of the MULTI type. This may not always
-- be the case if you convert the TopoGeometry to an actual
-- Geometry.
--
-- }{
CREATE OR REPLACE FUNCTION topology.ST_GeometryType(tg topology.TopoGeometry)
RETURNS text
AS
$$
SELECT CASE
WHEN type($1) = 1 THEN 'ST_MultiPoint'
WHEN type($1) = 2 THEN 'ST_MultiLinestring'
WHEN type($1) = 3 THEN 'ST_MultiPolygon'
WHEN type($1) = 4 THEN 'ST_GeometryCollection'
ELSE 'ST_Unexpected'
END;
$$
LANGUAGE 'sql' STABLE STRICT;
-- }
|