MYSQL如何插入几何数据

MYSQL如何插入几何数据,mysql,geometry,Mysql,Geometry,我正在尝试使用MYSQL插入几何体数据,下面是一个代码示例: CREATE TABLE CARTESIAN ( ROW_ID INT NOT NULL, G GEOMETRY, PRIMARY KEY(ROW_ID) ) INSERT INTO CARTESIAN VALUES (0,'POINT(1 1)'), (1,'LINESTRING(2 1, 6 6)'), (2,'POLYGON((0 5, 2 5, 2 7, 0 7, 0 5))') 运行插入时

我正在尝试使用MYSQL插入几何体数据,下面是一个代码示例:

CREATE TABLE CARTESIAN
(
ROW_ID INT NOT NULL,
G GEOMETRY,
PRIMARY KEY(ROW_ID)
)

INSERT INTO CARTESIAN
VALUES (0,'POINT(1 1)'), 
       (1,'LINESTRING(2 1, 6 6)'), 
       (2,'POLYGON((0 5, 2 5, 2 7, 0 7, 0 5))')
运行插入时,我收到消息“无法从发送到几何体字段的数据中获取几何体对象”。
你能解释一下我哪里错了吗?

你需要先将文本表示转换成
几何体
,然后才能使用函数插入它们。试试这个:

CREATE TABLE CARTESIAN
(
ROW_ID INT NOT NULL,
G GEOMETRY,
PRIMARY KEY(ROW_ID)
);
INSERT INTO CARTESIAN
VALUES (0,ST_GeomFromText('POINT(1 1)')), 
       (1,ST_GeomFromText('LINESTRING(2 1, 6 6)')), 
       (2,ST_GeomFromText('POLYGON((0 5, 2 5, 2 7, 0 7, 0 5))'));
SELECT * FROM CARTESIAN
输出:

ROW_ID  G
0       [GEOMETRY - 25 B]
1       [GEOMETRY - 45 B]
2       [GEOMETRY - 97 B]

是的,现在开始了。在我的查询结果中,G的值用引号括起来('点(11)”,例如,不是[GEOMETRY-25b]),但是如果我把指针放在这个值上,我可以看到空间结果,所以这里有我想要的一切。再次感谢你!