File: dumpsegments.sql

package info (click to toggle)
postgis 3.5.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 69,528 kB
  • sloc: ansic: 162,229; sql: 93,970; xml: 53,139; cpp: 12,646; perl: 5,658; sh: 5,369; makefile: 3,435; python: 1,205; yacc: 447; lex: 151; pascal: 58
file content (112 lines) | stat: -rw-r--r-- 4,139 bytes parent folder | download | duplicates (3)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
SELECT 'dumpsegments01', path, ST_AsText(geom)
FROM (
         SELECT (ST_DumpSegments(g.geom)).*
         FROM (SELECT 'LINESTRING(0 0, 0 9, 9 9, 9 0, 0 0)'::geometry AS geom) AS g
     ) j;

SELECT 'dumpsegments02', path, ST_AsText(geom)
FROM (
         SELECT (ST_DumpSegments(g.geom)).*
         FROM (SELECT 'GEOMETRYCOLLECTION(
          LINESTRING(1 1, 3 3),
          MULTILINESTRING((4 4, 5 5, 6 6, 7 7), (8 8, 9 9, 10 10))
        )'::geometry AS geom
              ) AS g
     ) j;

SELECT 'dumpsegments03', ST_DumpSegments('POLYGON EMPTY'::geometry);
SELECT 'dumpsegments04', ST_DumpSegments('MULTIPOLYGON EMPTY'::geometry);
SELECT 'dumpsegments05', ST_DumpSegments('MULTILINESTRING EMPTY'::geometry);
SELECT 'dumpsegments06', ST_DumpSegments('LINESTRING EMPTY'::geometry);
SELECT 'dumpsegments07', ST_DumpSegments('GEOMETRYCOLLECTION EMPTY'::geometry);

SELECT 'dumpsegments08', path, ST_AsText(geom)
FROM (
         SELECT (ST_DumpSegments(g.geom)).*
         FROM (SELECT 'POLYGON((4 4, 5 5, 6 6, 4 4), (8 8, 9 9, 10 10, 8 8))'::geometry AS geom) AS g
     ) j;

SELECT 'dumpsegments09', path, ST_AsText(geom)
FROM (
         SELECT (ST_DumpSegments(g.geom)).*
         FROM (SELECT 'MULTIPOLYGON(((4 4, 5 5, 6 6, 4 4)), ((8 8, 9 9, 10 10, 8 8)))'::geometry AS geom) AS g
     ) j;

SELECT 'dumpsegments10', path, ST_AsText(geom)
FROM (
         SELECT (ST_DumpSegments(g.geom)).*
         FROM (SELECT 'GEOMETRYCOLLECTION(
          LINESTRING(1 1, 3 3),
          POLYGON((4 4, 5 5, 6 6, 4 4))
        )'::geometry AS geom
              ) AS g
     ) j;

SELECT 'dumpsegments11', path, ST_AsText(geom)
FROM (
         SELECT (ST_DumpSegments(g.geom)).*
         FROM (SELECT 'TRIANGLE((
                0 0,
                0 9,
                9 0,
                0 0
            ))'::geometry AS geom
              ) AS g
     ) j;

SELECT 'dumpsegments12', path, ST_AsEWKT(geom)
FROM (
         SELECT (ST_DumpSegments(g.geom)).*
         FROM (SELECT 'TIN(((
                0 0 0,
                0 0 1,
                0 1 0,
                0 0 0
            )), ((
                0 0 0,
                0 1 0,
                1 1 0,
                0 0 0
            ))
            )'::geometry AS geom
              ) AS g
     ) j;

SELECT '#5240',  dp.path, ST_AsText(dp.geom)
FROM ST_DumpSegments(ST_GeomFromText('MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)', 4326)) AS dp;

SELECT '#5240',  dp.path, ST_AsText(dp.geom)
FROM ST_DumpSegments(ST_GeomFromText('MULTIPOLYGON (EMPTY, ((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)) )', 4326)) AS dp;

SELECT 'dumpsegments13', path, ST_AsText(geom)
FROM st_dumpsegments(
'MULTICURVE(COMPOUNDCURVE(
  LINESTRING(1 1, 2 2, 3 3, 4 4, 5 5, 6 6, 7 7),
  CIRCULARSTRING(7 7, 6 6, 5 5, 4 4, 3 3, 2 2, 1 1)),
  CIRCULARSTRING EMPTY,
  COMPOUNDCURVE(
  LINESTRING(1 1, 2 2, 3 3, 4 4, 5 5, 6 6, 7 7),
  CIRCULARSTRING(7 7, 6 6, 5 5, 4 4, 3 3, 2 2, 1 1)),
  LINESTRING EMPTY)'
);

SELECT 'dumpsegments14', path, ST_AsText(geom)
FROM st_dumpsegments(
'MULTISURFACE(CURVEPOLYGON(COMPOUNDCURVE(
  LINESTRING(1 1, 2 2, 3 3, 4 4, 5 5, 6 6, 7 7),
  CIRCULARSTRING(7 7, 6 6, 5 5, 4 4, 3 3, 2 2, 1 1))
  ))'
);

-- Check dumping a degenerate (even number of points) circular string
SELECT 'dumpsegments15', path, st_astext(geom)
FROM st_dumpsegments(
'010800000006000000000000000000f03f000000000000f03f0000000000000040000000000000004000000000000008400000000000000840000000000000104000000000000010400000000000001440000000000000144000000000000018400000000000001840'
);

-- Check dumping a compound that contains a degenerate circular
-- string
SELECT 'dumpsegments16', path, st_astext(geom)
FROM st_dumpsegments(
'010900000002000000010200000007000000000000000000f03f000000000000f03f00000000000000400000000000000040000000000000084000000000000008400000000000001040000000000000104000000000000014400000000000001440000000000000184000000000000018400000000000001c400000000000001c400108000000060000000000000000001c400000000000001c400000000000001840000000000000184000000000000014400000000000001440000000000000104000000000000010400000000000000840000000000000084000000000000000400000000000000040'
);