mysql创建空间数据

Posted on 2024-05-30 10:50  zhuyu123  阅读(65)  评论(0编辑  收藏  举报

在MySQL中,有两种常用的空间数据类型:GEOMETRYPOLYGON,它们用于存储不同类型的几何对象。

GEOMETRY类型

  1. GEOMETRY是一种通用的几何类型,可以用来存储点、线、多边形等各种几何对象。
  2. 使用GEOMETRY类型时,需要在创建表时指定具体的几何对象类型,例如POINTLINESTRINGPOLYGON等。

  3. 优点是可以存储不同类型的几何对象,但缺点是在查询时需要额外的处理来区分不同类型的几何对象。

CREATE TABLE spatial_data (
id INT PRIMARY KEY,
geom GEOMETRY
);

INSERT INTO spatial_data (id, geom) VALUES
(1, POINT(1, 1)),
(2, LINESTRING(0, 0, 1, 1, 2, 2)),
(3, POLYGON((0 0, 0 10, 10 10, 10 0, 0 0)));

批量插入经纬度坐标

 

INSERT INTO points (id,geom)
SELECT id,ST_GeomFromText(CONCAT('POINT(', X, ' ', Y, ')'))
FROM your_existing_points_table;

POLYGON类型

  • POLYGON是一种特定的几何类型,用于存储封闭的多边形。
  • 使用POLYGON类型时,存储的几何对象必须是多边形,不能存储其他类型的几何对象。
  • 优点是更具体地表示了存储的几何对象类型,且在查询时不需要额外的处理来区分几何对象类型。

CREATE TABLE polygons (
id INT PRIMARY KEY,
polygon_geom POLYGON
);

INSERT INTO polygons (id, polygon_geom) VALUES
(1, POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))),
(2, POLYGON((0 0, 0 5, 5 5, 5 0, 0 0)));

1、转 换为多边形对象

SELECT ST_AsText(ST_PolygonFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'));

2、点转换为wtk

SELECT ST_AsText(ST_PointFromText('POINT(10 20)'));

3、空间孤岛报错

边界坐标首尾相连MultiPolygon多图形

Copyright © 2024 zhuyu123
Powered by .NET 9.0 on Kubernetes