GeomFromText
是一个将 WKT (Well-Known Text) 格式的字符串转换为空间几何对象的函数
- 创建一个包含空间数据的表:
CREATE TABLE spatial_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), geom GEOMETRY NOT NULL );
- 插入一些数据,使用
GeomFromText
函数将 WKT 字符串转换为几何对象:
INSERT INTO spatial_table (name, geom) VALUES ('Point A', GeomFromText('POINT(1 1)')); INSERT INTO spatial_table (name, geom) VALUES ('LineString B', GeomFromText('LINESTRING(0 0, 1 1, 2 2)')); INSERT INTO spatial_table (name, geom) VALUES ('Polygon C', GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))'));
- 使用其他空间函数结合
GeomFromText
。例如,我们可以计算两个点之间的距离。这里我们使用ST_Distance
函数:
SELECT ST_Distance(GeomFromText('POINT(1 1)'), GeomFromText('POINT(2 2)')) AS distance;
- 还可以使用空间关系函数,例如
ST_Intersects
。以下查询返回与给定多边形相交的所有几何对象:
SELECT * FROM spatial_table WHERE ST_Intersects(geom, GeomFromText('POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))'));
- 对于更复杂的查询,可以组合多个空间函数。例如,以下查询返回与给定线段在指定距离内的所有点:
SELECT * FROM spatial_table WHERE ST_DWithin(geom, GeomFromText('LINESTRING(0 0, 2 2)'), 1) AND ST_GeometryType(geom) = 'ST_Point';
总之,GeomFromText
可以与其他空间函数结合使用,以实现各种空间分析和查询。在使用这些函数时,请确保正确地设置了空间引用系统(SRS),以便在进行空间操作时保持一致性。