440 lines
29 KiB
Plaintext
440 lines
29 KiB
Plaintext
# Creating the spatial Geometry object
|
|
USE test;
|
|
CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
|
|
SET @star_elem_vertical= 'POLYGON((5 0,15 25,25 0,15 5,5 0))';
|
|
SET @star_elem_horizontal= 'POLYGON((25 0,0 15,30 15,22 10,25 0))';
|
|
SET @star_center= 'POINT(15 10)';
|
|
SET @star_top= 'POINT(15 25)';
|
|
SET @star_bottom_left= 'POINT(5 0)';
|
|
SET @star_bottom_right= 'POINT(25 0)';
|
|
SET @star_bottom_points= 'MULTIPOINT(5 0,25 0)';
|
|
SET @star_all_points= 'MULTIPOINT(5 0,25 0,15 10,15 25)';
|
|
SET @star_line_horizontal= 'LINESTRING(10 15,20 15)';
|
|
SET @star_line_vertical= 'LINESTRING(15 5,15 25)';
|
|
SET @star_top_to_center= 'LINESTRING(15 25,15 10)';
|
|
SET @star_lines_near_horizontal= 'MULTILINESTRING((25 0,0 15,15 30,0 5))';
|
|
SET @star_lines_near_vertical= 'MULTILINESTRING((0 5,15 25,0 25))';
|
|
SET @star= 'POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))';
|
|
SET @star_elem_vertical_val= '((5 0,15 25,25 0,15 5,5 0))';
|
|
SET @star_elem_horizontal_val= '((25 0,0 15,30 15,22 10,25 0))';
|
|
SET @star_of_elems='MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))';
|
|
SET @star_collection_elems='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))';
|
|
SET @star_collection_multilinestr='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),MULTILINESTRING((25 0,0 15,15 30,0 5)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))';
|
|
# INSERT base star
|
|
INSERT INTO gis_geometrycollection VALUES
|
|
(100,ST_GEOMFROMTEXT(@star)),
|
|
(101,ST_GEOMFROMTEXT(@star_elem_vertical)),
|
|
(102,ST_GEOMFROMTEXT(@star_elem_horizontal)),
|
|
(103,ST_GEOMFROMTEXT(@star_of_elems)),
|
|
(104,ST_GEOMFROMTEXT(@star_top)),
|
|
(105,ST_GEOMFROMTEXT(@star_center)),
|
|
(106,ST_GEOMFROMTEXT(@star_bottom_left)),
|
|
(107,ST_GEOMFROMTEXT(@star_bottom_right)),
|
|
(108,ST_GEOMFROMTEXT(@star_bottom_points)),
|
|
(109,ST_GEOMFROMTEXT(@star_all_points)),
|
|
(110,ST_GEOMFROMTEXT(@star_line_horizontal)),
|
|
(111,ST_GEOMFROMTEXT(@star_line_vertical)),
|
|
(112,ST_GEOMFROMTEXT(@star_top_to_center)),
|
|
(113,ST_GEOMFROMTEXT(@star_lines_near_horizontal)),
|
|
(114,ST_GEOMFROMTEXT(@star_lines_near_vertical)),
|
|
(115,ST_GEOMFROMTEXT(@star_collection_elems)),
|
|
(116,ST_GEOMFROMTEXT(@star_collection_multilinestr));
|
|
# Checking the integrity of the above create/insert statements
|
|
# 17 rows.
|
|
SELECT count(ST_ASTEXT(g) != 'NULL') FROM gis_geometrycollection;
|
|
count(ST_ASTEXT(g) != 'NULL')
|
|
17
|
|
#####################################################################################
|
|
# ST_CENTROID(point)
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_center)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_center)))
|
|
POINT(15 10)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_top)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_top)))
|
|
POINT(15 25)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(2.34 -2.34)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(2.34 -2.34)')))
|
|
POINT(2.34 -2.34)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(1e308 -1e308)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(1e308 -1e308)')))
|
|
POINT(1e308 -1e308)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(-0.0000 0.000001)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(-0.0000 0.000001)')))
|
|
POINT(-0 0.000001)
|
|
SELECT ST_ASTEXT(ST_CENTROID(g)) FROM gis_geometrycollection WHERE fid=105;
|
|
ST_ASTEXT(ST_CENTROID(g))
|
|
POINT(15 10)
|
|
#####################################################################################
|
|
# ST_CENTROID(multipoint)
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_all_points)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_all_points)))
|
|
POINT(15 8.75)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_bottom_points)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_bottom_points)))
|
|
POINT(15 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 0,0 0,0 0)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 0,0 0,0 0)')))
|
|
POINT(0 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 5,5 5,5 0,0 0)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 5,5 5,5 0,0 0)')))
|
|
POINT(2 2)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOINT(1 -1,1e308 -1e308,0.0001 0.000)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOINT(1 -1,1e308 -1e308,0.0001 0.000)')))
|
|
POINT(3.333333333333333e307 -3.333333333333333e307)
|
|
SELECT ST_ASTEXT(ST_CENTROID(g)) FROM gis_geometrycollection WHERE fid=108;
|
|
ST_ASTEXT(ST_CENTROID(g))
|
|
POINT(15 0)
|
|
#####################################################################################
|
|
# ST_CENTROID(linestring)
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_top_to_center)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_top_to_center)))
|
|
POINT(15 17.5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_line_horizontal)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_line_horizontal)))
|
|
POINT(15 15)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(0 0,-0.00 0,0.0 0)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(0 0,-0.00 0,0.0 0)')))
|
|
POINT(0 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)')))
|
|
POINT(2.5 2.5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(1 -1,1e308 -1e308,0.0001 0.000)')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(1 -1,1e308 -1e308,0.0001 0.000)')))
|
|
POINT(1 -1)
|
|
SELECT ST_ASTEXT(ST_CENTROID(g)) FROM gis_geometrycollection WHERE fid=110;
|
|
ST_ASTEXT(ST_CENTROID(g))
|
|
POINT(15 15)
|
|
#####################################################################################
|
|
# ST_CENTROID(multilinestring)
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_lines_near_vertical)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_lines_near_vertical)))
|
|
POINT(7.5 18.75)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_lines_near_horizontal)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_lines_near_horizontal)))
|
|
POINT(9.333108739249747 15.167565043001009)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,-0.00 0),(0.0 0))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,0 5,5 5,5 0,0 0))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,0 5,5 5,5 0,0 0))')))
|
|
POINT(2.5 2.5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTILINESTRING((0 10,10 0),(10 0,0 0),(0 0,10 10))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTILINESTRING((0 10,10 0),(10 0,0 0),(0 0,10 10))')))
|
|
POINT(5 3.6939806251812928)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTILINESTRING((1 -1,1e308 -1e308,0.0001 0.000),(2 2,4 -9.002))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTILINESTRING((1 -1,1e308 -1e308,0.0001 0.000),(2 2,4 -9.002))')))
|
|
POINT(1 -1)
|
|
SELECT ST_ASTEXT(ST_CENTROID(g)) FROM gis_geometrycollection WHERE fid=114;
|
|
ST_ASTEXT(ST_CENTROID(g))
|
|
POINT(7.5 18.75)
|
|
#####################################################################################
|
|
# ST_CENTROID(polygon)
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star)))
|
|
POINT(14.768115942028986 10.797101449275363)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_elem_vertical)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_elem_vertical)))
|
|
POINT(15 10)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 5,5 5, 0 0))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 5,5 5, 0 0))')))
|
|
POINT(1.6666666666666667 3.3333333333333335)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,-10 0,-10 -10,0 -10, 0 0))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,-10 0,-10 -10,0 -10, 0 0))')))
|
|
POINT(0 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0))')))
|
|
POINT(0 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(8 8,8 10,10 10,10 8,8 8))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(8 8,8 10,10 10,10 8,8 8))')))
|
|
POINT(4 4)
|
|
SELECT ST_ASTEXT(ST_CENTROID(g)) FROM gis_geometrycollection WHERE fid=100;
|
|
ST_ASTEXT(ST_CENTROID(g))
|
|
POINT(14.768115942028986 10.797101449275363)
|
|
#####################################################################################
|
|
# ST_CENTROID(multipolygon)
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_of_elems)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_of_elems)))
|
|
POINT(15.64459161147903 10.20971302428256)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5, 0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5, 0 0)))')))
|
|
POINT(1.6666666666666667 3.3333333333333335)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 10,10 0,0 0, 0 10)),((0 0,10 10,10 0, 0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 10,10 0,0 0, 0 10)),((0 0,10 10,10 0, 0 0)))')))
|
|
POINT(5 3.333333333333333)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10, 0 0)),((10 10,10 15,15 15,10 10)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10, 0 0)),((10 10,10 15,15 15,10 10)))')))
|
|
POINT(5 8)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((4 4,4 6,6 6,6 4,4 4)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((4 4,4 6,6 6,6 4,4 4)))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0, 0 0),(4 4,4 6,6 6,6 4,4 4)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0, 0 0),(4 4,4 6,6 6,6 4,4 4)))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)))')))
|
|
POINT(0 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0)))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4),(8 8,8 10,10 10,10 8,8 8)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4),(8 8,8 10,10 10,10 8,8 8)))')))
|
|
POINT(4 4)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((10 10,10 0,5 10,10 10)),((0 10,0 20,5 10,0 10)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((10 10,10 0,5 10,10 10)),((0 10,0 20,5 10,0 10)))')))
|
|
POINT(5 10)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)),'
|
|
'((0 0,0 10,10 10,10 0,0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)),'
|
|
'((0 0,0 10,10 10,10 0,0 0)))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)),'
|
|
'((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6, 4 4)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)),'
|
|
'((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6, 4 4)))')))
|
|
POINT(5.006802721088436 4.993197278911564)
|
|
SELECT ST_ASTEXT(ST_CENTROID(g)) FROM gis_geometrycollection WHERE fid=103;
|
|
ST_ASTEXT(ST_CENTROID(g))
|
|
POINT(15.64459161147903 10.20971302428256)
|
|
#####################################################################################
|
|
# ST_CENTROID(geometrycollection)
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_collection_elems)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_collection_elems)))
|
|
POINT(15.265664160401002 10.463659147869674)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_collection_multilinestr)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_collection_multilinestr)))
|
|
POINT(15.265664160401002 10.463659147869674)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')))
|
|
NULL
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())')))
|
|
NULL
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')))
|
|
NULL
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(10 10),MULTIPOINT(0 0,10 10))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(10 10),MULTIPOINT(0 0,10 10))')))
|
|
POINT(6.666666666666667 6.666666666666667)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),MULTIPOINT(0 0,10 10)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),MULTIPOINT(0 0,10 10)))')))
|
|
POINT(6.666666666666667 6.666666666666667)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
|
|
'MULTILINESTRING((0 0,0 10,10 10,10 0, 0 0),(10 10,10 15,15 15,10 10)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
|
|
'MULTILINESTRING((0 0,0 10,10 10,10 0, 0 0),(10 10,10 15,15 15,10 10)))')))
|
|
POINT(6.787122367693336 7.204488157278977)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(10 10),'
|
|
'MULTIPOINT(0 0,10 10),'
|
|
'LINESTRING(1 1,2 2,3 3),'
|
|
'MULTILINESTRING((0 0,0 10,10 10,10 0, 0 0),(10 10,10 15,15 15,10 10)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(10 10),'
|
|
'MULTIPOINT(0 0,10 10),'
|
|
'LINESTRING(1 1,2 2,3 3),'
|
|
|
|
POINT(6.787122367693336 7.204488157278977)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0, 0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0, 0 0)))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0, 0 0)))))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0, 0 0)))))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,0 10,10 10,10 0),LINESTRING(0 0,10 0,10 -10,0 -10))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,0 10,10 10,10 0),LINESTRING(0 0,10 0,10 -10,0 -10))')))
|
|
POINT(5.833333333333333 0.8333333333333334)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,10 0,10 10,0 10),LINESTRING(0 0,10 0,10 -10,0 -10))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,10 0,10 10,0 10),LINESTRING(0 0,10 0,10 -10,0 -10))')))
|
|
POINT(6.666666666666667 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0)),POLYGON((0 0,10 0,10 -10,0 -10,0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0)),POLYGON((0 0,10 0,10 -10,0 -10,0 0)))')))
|
|
POINT(5 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,-10 10,-10 0,0 0)),POLYGON((0 0,0 10,10 10,10 0,0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,-10 10,-10 0,0 0)),POLYGON((0 0,0 10,10 10,10 0,0 0)))')))
|
|
POINT(0 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,0 10,10 10,10 0,0 0),LINESTRING(0 0,10 0,10 -10,0 -10,0 0))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,0 10,10 10,10 0,0 0),LINESTRING(0 0,10 0,10 -10,0 -10,0 0))')))
|
|
POINT(5 0)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4)),'
|
|
'MULTIPOLYGON(((0 0,0 10,10 10,10 0, 0 0)),((10 10,10 15,15 15,15 10,10 10))))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4)),'
|
|
'MULTIPOLYGON(((0 0,0 10,10 10,10 0, 0 0)),((10 10,10 15,15 15,15 10,10 10
|
|
POINT(5.84841628959276 5.84841628959276)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(),POLYGON((0 0,0 10,10 10,10 0,0 0)))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(),POLYGON((0 0,0 10,10 10,10 0,0 0)))')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0)),GEOMETRYCOLLECTION())')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0)),GEOMETRYCOLLECTION())')))
|
|
POINT(5 5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
|
|
'MULTIPOINT(0 0,10 10)),'
|
|
'GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
|
|
'MULTILINESTRING((0 0,0 10,10 10,10 0, 0 0),(10 10,10 15,15 15,10 10))))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
|
|
'MULTIPOINT(0 0,10 10)),'
|
|
|
|
POINT(6.787122367693336 7.204488157278977)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
|
|
'MULTIPOINT(0 0,10 10)),'
|
|
'GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
|
|
'MULTILINESTRING((0 0,0 10,10 10,10 0, 0 0),(10 10,10 15,15 15,10 10))),'
|
|
'GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4)),'
|
|
'MULTIPOLYGON(((0 0,0 10,10 10,10 0, 0 0)),'
|
|
'((10 10,10 15,15 15,15 10,10 10)))))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
|
|
'MULTIPOINT(0 0,10 10)),'
|
|
|
|
POINT(5.84841628959276 5.84841628959276)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
|
|
'MULTIPOINT(0 0,10 10)),'
|
|
'GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
|
|
'MULTILINESTRING((0 0,0 10,10 10,10 0, 0 0),(10 10,10 15,15 15,10 10))),'
|
|
'GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
|
|
'MULTIPOINT(0 0,10 10)),'
|
|
|
|
POINT(6.787122367693336 7.204488157278977)
|
|
SELECT ST_ASTEXT(ST_CENTROID(g)) FROM gis_geometrycollection WHERE fid=115;
|
|
ST_ASTEXT(ST_CENTROID(g))
|
|
POINT(15.265664160401002 10.463659147869674)
|
|
#####################################################################################
|
|
# ST_CENTROID(geometry) with different SRID values
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_center,-1024)));
|
|
ERROR 22003: SRID value is out of range in 'st_geomfromtext'
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_all_points,-1)));
|
|
ERROR 22003: SRID value is out of range in 'st_geomfromtext'
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_top_to_center,0)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_top_to_center,0)))
|
|
POINT(15 17.5)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_lines_near_vertical,2000)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_lines_near_vertical,2000)))
|
|
POINT(7.5 18.75)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star,0)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star,0)))
|
|
POINT(14.768115942028986 10.797101449275363)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_elem_vertical,0)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_elem_vertical,0)))
|
|
POINT(15 10)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_of_elems,4294967296)));
|
|
ERROR 22003: SRID value is out of range in 'st_geomfromtext'
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT(@star_collection_elems,4294967295000)));
|
|
ERROR 22003: SRID value is out of range in 'st_geomfromtext'
|
|
#####################################################################################
|
|
# Invalid function calls
|
|
#####################################################################################
|
|
SELECT ST_ASTEXT(ST_CENTROID());
|
|
ERROR 42000: Incorrect parameter count in the call to native function 'ST_CENTROID'
|
|
SELECT ST_ASTEXT(ST_CENTROID(NULL));
|
|
ST_ASTEXT(ST_CENTROID(NULL))
|
|
NULL
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT()')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING()')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON(())')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOINT()')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTILINESTRING(())')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON((()))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(a 0)')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(! 0)')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT('!' 0)')));
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!' 0)')))' at line 1
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(12,34 0)')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(a 0,10 10)')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(0 0,! 10)')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING('!' 0,10 10)')));
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!' 0,10 10)')))' at line 1
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('LINESTRING(12,34 0,10 10)')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((a 0,10 10,10 0,0 0))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,! 10,10 0,0 0))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON(('!' 0,10 10,10 0,0 0))')));
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!' 0,10 10,10 0,0 0))')))' at line 1
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,5 5))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,5 5,10 10))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POLYGON((0 0,0 5,10 10),(0 0))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,10 10)),((10 10)))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,10 10)),((10 10))')));
|
|
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
|
SELECT ST_ASTEXT(ST_CENTROID(0x000000000200000000000000000000000000000000));
|
|
ERROR HY000: Geometry byte string must be little endian.
|
|
SELECT ST_ASTEXT(ST_CENTROID(0x010100000001000000010100000000000000000000));
|
|
ERROR HY000: Geometry byte string must be little endian.
|
|
SELECT ST_ASTEXT(ST_CENTROID(0x010100000002000000000000000000000000000000));
|
|
ERROR HY000: Geometry byte string must be little endian.
|
|
SELECT ST_ASTEXT(ST_CENTROID(0x000000000600000001000000000200000002000000));
|
|
ERROR HY000: Geometry byte string must be little endian.
|
|
SELECT ST_ASTEXT(ST_CENTROID(0x000000000200000001000000050000000000000000));
|
|
ERROR HY000: Geometry byte string must be little endian.
|
|
SELECT ST_ASTEXT(ST_CENTROID(0x010300000002000000010300000002000000050000));
|
|
ERROR HY000: Geometry byte string must be little endian.
|
|
SELECT ST_ASTEXT(ST_CENTROID(0x010400000002000000010100000000000000000000));
|
|
ERROR HY000: Geometry byte string must be little endian.
|
|
# Clean up
|
|
DROP TABLE gis_geometrycollection;
|
|
#
|
|
# Bug #20918881 CRASH WITH CENTROID - INVALID FREE
|
|
#
|
|
DO ST_Centroid(
|
|
GeometryCollection(
|
|
Polygon(
|
|
LineString(Point(1, 1), Point(2, 2), Point(14, 7)),
|
|
LineString(Point(1, 1), Point(2, 2), Point(3, 3))
|
|
)
|
|
)
|
|
);
|
|
ERROR 22023: Invalid GIS data provided to function polygon.
|
|
#
|
|
# WL#8579 Spatial Reference Systems
|
|
#
|
|
# SRID 0 (should pass)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(0 0)', 0)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(0 0)', 0)))
|
|
POINT(0 0)
|
|
# Projected SRS (should pass)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(0 0)', 2000)));
|
|
ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(0 0)', 2000)))
|
|
POINT(0 0)
|
|
# Geographic SRS (should fail)
|
|
SELECT ST_ASTEXT(ST_CENTROID(ST_GEOMFROMTEXT('POINT(0 0)', 4326)));
|
|
ERROR 22S00: st_centroid(POINT) has not been implemented for geographic spatial reference systems.
|
|
#
|
|
# WL#11096 Don't do Cartesian computations on geographic geometries
|
|
#
|
|
# Assume SRID 10 is not defined.
|
|
DO ST_CENTROID(x'0A000000010100000000000000000000000000000000000000');
|
|
ERROR SR001: There's no spatial reference system with SRID 10.
|