1 | -- just one set of titles
|
---|
2 | set pagesize 10000;
|
---|
3 |
|
---|
4 | -- drop table
|
---|
5 | DROP TABLE SDO_TEST;
|
---|
6 |
|
---|
7 | -- check srid - should return Irish Transverse Mercator
|
---|
8 | select * from MDSYS.CS_SRS where srid = 82086;
|
---|
9 |
|
---|
10 | -- create test table
|
---|
11 | CREATE TABLE SDO_TEST (ID NUMBER PRIMARY KEY, NAME VARCHAR2(100), GEOM SDO_GEOMETRY);
|
---|
12 |
|
---|
13 | -- create an index in the metadata table
|
---|
14 | INSERT INTO USER_SDO_GEOM_METADATA
|
---|
15 | (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)
|
---|
16 | VALUES ('SDO_TEST','GEOM',
|
---|
17 | SDO_DIM_ARRAY(
|
---|
18 | SDO_DIM_ELEMENT('X', -8048350, 8448349.95, .005),
|
---|
19 | SDO_DIM_ELEMENT('Y', -15680949, 4321303.19, .005)
|
---|
20 | ),
|
---|
21 | 82086);
|
---|
22 |
|
---|
23 | -- create index for table
|
---|
24 | CREATE INDEX SDO_TEST_IDX ON SDO_TEST(GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
|
---|
25 |
|
---|
26 | -- CREATE TYPE sdo_geometry AS OBJECT (
|
---|
27 | -- SDO_GTYPE NUMBER,
|
---|
28 | -- SDO_SRID NUMBER,
|
---|
29 | -- SDO_POINT SDO_POINT_TYPE,
|
---|
30 | -- SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,
|
---|
31 | -- SDO_ORDINATES SDO_ORDINATE_ARRAY);
|
---|
32 |
|
---|
33 | -- CREATE TYPE sdo_point_type AS OBJECT (
|
---|
34 | -- X NUMBER,
|
---|
35 | -- Y NUMBER,
|
---|
36 | -- Z NUMBER);
|
---|
37 | -- CREATE TYPE sdo_elem_info_array AS VARRAY (1048576) of NUMBER;
|
---|
38 | -- CREATE TYPE sdo_ordinate_array AS VARRAY (1048576) of NUMBER;
|
---|
39 |
|
---|
40 |
|
---|
41 |
|
---|
42 |
|
---|
43 | -- add data
|
---|
44 | -- tried SDO_GEOMETRY(wkb BLOB, srid NUMBER DEFAULT NULL); - didn't work
|
---|
45 | -- point
|
---|
46 | INSERT INTO SDO_TEST VALUES (
|
---|
47 | 1, 'point', SDO_GEOMETRY(
|
---|
48 | -- WKT
|
---|
49 | -- 'POINT(200000 200000)', 82086
|
---|
50 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATES
|
---|
51 | 2001, 82086, SDO_POINT_TYPE(200000, 200000, NULL), NULL, NULL
|
---|
52 | )
|
---|
53 | );
|
---|
54 |
|
---|
55 | -- line segment
|
---|
56 | INSERT INTO SDO_TEST VALUES (
|
---|
57 | 2, 'linestring', SDO_GEOMETRY(
|
---|
58 | -- WKT
|
---|
59 | -- 'LINESTRING(200000 200000, 220000 200000, 220000 220000)', 82086
|
---|
60 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
61 | 2002, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
62 | SDO_ELEM_INFO_ARRAY(1,2,1),
|
---|
63 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000, 220000, 220000)
|
---|
64 | )
|
---|
65 | );
|
---|
66 |
|
---|
67 | -- polygon
|
---|
68 | INSERT INTO SDO_TEST VALUES (
|
---|
69 | 3, 'polygon', SDO_GEOMETRY(
|
---|
70 | -- WKT
|
---|
71 | -- 'POLYGON((200000 200000, 220000 200000, 220000 220000, 200000 220000, 200000 200000))', 82086
|
---|
72 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
73 | 2003, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
74 | SDO_ELEM_INFO_ARRAY(1,1003,1),
|
---|
75 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000, 220000, 220000, 200000, 220000, 200000, 200000)
|
---|
76 | )
|
---|
77 | );
|
---|
78 |
|
---|
79 | -- polygon with inner ring
|
---|
80 | INSERT INTO SDO_TEST VALUES (
|
---|
81 | 4, 'polygon with inner ring', SDO_GEOMETRY(
|
---|
82 | -- WKT
|
---|
83 | -- 'POLYGON((200000 200000, 220000 200000, 220000 220000, 200000 220000, 200000 200000)
|
---|
84 | -- (202000 202000, 208000 208000, 208000 202000, 202000 202000))', 82086
|
---|
85 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
86 | 2003, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
87 | SDO_ELEM_INFO_ARRAY(1,1003,1, 11,2003,1),
|
---|
88 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000, 220000, 220000, 200000, 220000, 200000, 200000, 202000, 202000, 208000, 208000, 208000, 202000, 202000, 202000)
|
---|
89 | )
|
---|
90 | );
|
---|
91 |
|
---|
92 |
|
---|
93 | -- multi-point
|
---|
94 | INSERT INTO SDO_TEST VALUES (
|
---|
95 | 5, 'multi point', SDO_GEOMETRY(
|
---|
96 | -- WKT
|
---|
97 | -- 'MULTIPOINT(200000 200000, 220000 200000, 220000 220000, 200000 220000, 200000 200000)', 82086
|
---|
98 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
99 | 2005, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
100 | SDO_ELEM_INFO_ARRAY(1,1,1, 3,1,1, 5,1,1, 7,1,1),
|
---|
101 | -- SDO_ELEM_INFO_ARRAY(1,1,4),
|
---|
102 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000, 220000, 220000, 200000, 220000)
|
---|
103 | )
|
---|
104 | );
|
---|
105 |
|
---|
106 | -- multi-line
|
---|
107 | INSERT INTO SDO_TEST VALUES (
|
---|
108 | 6, 'multi line', SDO_GEOMETRY(
|
---|
109 | -- WKT
|
---|
110 | -- 'MULTILINESTRING((200000 200000, 220000 200000, 220000 220000, 200000 220000)
|
---|
111 | -- (202000 202000, 208000 208000, 208000 202000))', 82086
|
---|
112 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
113 | 2006, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
114 | SDO_ELEM_INFO_ARRAY(1,2,1, 9,2,1),
|
---|
115 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000, 220000, 220000, 200000, 220000, 202000, 202000, 208000, 208000, 208000, 202000)
|
---|
116 | )
|
---|
117 | );
|
---|
118 |
|
---|
119 | -- multi-polygon
|
---|
120 | INSERT INTO SDO_TEST VALUES (
|
---|
121 | 7, 'multi polygon with 1 ring', SDO_GEOMETRY(
|
---|
122 | -- WKT
|
---|
123 | -- 'MULTIPOLYGON(((200000 200000, 220000 200000, 220000 220000, 200000 220000, 200000 200000)))', 82086
|
---|
124 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
125 | 2007, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
126 | SDO_ELEM_INFO_ARRAY(1,1003,1),
|
---|
127 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000, 220000, 220000, 200000, 220000, 200000, 200000)
|
---|
128 | )
|
---|
129 | );
|
---|
130 |
|
---|
131 | -- geometry collection
|
---|
132 | INSERT INTO SDO_TEST VALUES (
|
---|
133 | 8, 'geometry collection - polygon and point', SDO_GEOMETRY(
|
---|
134 | -- WKT
|
---|
135 | -- 'GEOMETRYCOLLECTION(POLYGON(((200000 200000, 220000 200000, 220000 220000, 200000 220000, 200000 200000)),
|
---|
136 | --- LINESTRING(200000 200000, 220000 200000, 220000 220000),POINT(210000 210000))', 82086
|
---|
137 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
138 | 2004, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
139 | SDO_ELEM_INFO_ARRAY(1,1003,1, 11,2,1, 17,1,1),
|
---|
140 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000, 220000, 220000, 200000, 220000, 200000, 200000, 200000, 200000, 220000, 200000, 220000, 220000, 210000, 210000)
|
---|
141 | )
|
---|
142 | );
|
---|
143 |
|
---|
144 | -- rectangle
|
---|
145 | INSERT INTO SDO_TEST VALUES (
|
---|
146 | 9, 'rectangle - 2 points', SDO_GEOMETRY(
|
---|
147 | -- WKT
|
---|
148 | -- 'POLYGON((200000 200000, 220000 200000))', 82086
|
---|
149 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
150 | 2003, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
151 | SDO_ELEM_INFO_ARRAY(1,1003,3),
|
---|
152 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000)
|
---|
153 | )
|
---|
154 | );
|
---|
155 |
|
---|
156 | -- circle
|
---|
157 | INSERT INTO SDO_TEST VALUES (
|
---|
158 | 10, 'circle - 3 points', SDO_GEOMETRY(
|
---|
159 | -- WKT
|
---|
160 | -- 'POLYGON((200000 200000, 220000 200000, 220000 220000))', 82086
|
---|
161 | -- BLOB: SDO_GTYPE, SDO_SRID, SDO_POINT_TYPE, SDO_ELEM_INFO, SDO_ORDINATE
|
---|
162 | 2003, 82086, SDO_POINT_TYPE(NULL,NULL,NULL),
|
---|
163 | SDO_ELEM_INFO_ARRAY(1,1003,4),
|
---|
164 | SDO_ORDINATE_ARRAY(200000, 200000, 220000, 200000, 220000, 220000)
|
---|
165 | )
|
---|
166 | );
|
---|