MySQL Geometry的使用 —— 地理空间类型Geometry

本文详细介绍了MySQL中Geometry数据类型的基础知识,包括各种几何类型及其应用示例。讲解了如何利用构造函数、存取器函数、关系函数和几何函数来处理空间数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:在投影坐标系中不同的投影标准有不同的单位,如常用到的投影标准:3857以米为单位,4326以度为单位

一、Geometry数据类型有哪些?

1.Geometry介绍
  • MySQL中支持的几何数据类型包括Geometry(几何)、Point(点)、LineString(线)、Polygon(面)
    以及集合类型的MultiPoint(多点)、MultiLineString(多线)、MultiPolygon(多面)、GeometryCollection(混合数据类型)
  • 其中,Geometry可以表示其他任意类型的值,剩下的只能表示单个类型的值
2.Geometry类型

注意:数据中间不能有多余的空格

名称 类型 例如
Point 点坐标 POINT(103 35)
LineString 线坐标 LINESTRING(103 35,103 36,104 36,105 37)
Polygon 面坐标 POLYGON(103 35,104 35,104 36,103 36,103 35)
MultiPoint 多点 MULTIPOINT(103 35, 104 34,105 35)
MultiLineString 多线 MULTILINESTRING((103 35, 104 35), (105 36, 105 37))
MultiPolygon 多面 MULTIPOLYGON(((103 35,104 35,104 36,103 36,103 35)),((103 36,104 36,104 37,103 36)))
GeometryCollection 混合类型 GEOMETRYCOLLECTION(POINT(103 35), LINESTRING(103 35, 103 37))

二、Geometry数据格式

  • WKT(文本格式:在代码中的格式)
  • WKB(二进制格式:存储在Geometry类型的表字段中)

三、Geometry的常用函数

1.构造函数

构造函数会获取一种几何类型或几何的文本说明,然后创建一个几何

  • ST_Point:文本格式转Point格式(例如存表的时候)
  • ST_PointFromText
### 导入空间数据文件至MySQL 为了将空间数据文件导入到 MySQL 数据库中,可以采用多种方法来实现这一目标。通常情况下,这涉及到准备空间数据、创建相应的表结构以及执行批量插入操作。 #### 准备工作 确保安装了支持地理空间扩展的 MySQL 版本[^1]。对于大多数现代版本而言,默认已经包含了这些功能。如果使用的是较旧版本,则可能需要手动启用此特性。 #### 创建表格并定义几何列 在开始之前,先要在数据库内建立好用于存储空间对象的新表: ```sql CREATE TABLE geom_table ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), geom GEOMETRY NOT NULL, -- 定义一个GEOMETRY类型的字段用来保存空间数据 PRIMARY KEY (id) ); ``` #### 使用 `LOAD DATA INFILE` 命令加载 CSV 文件中的 WKT 字符串 当拥有包含 Well-Known Text(WKT)格式的空间字符串的数据集时,可以通过如下 SQL 语句将其转换成二进制形式存入上述新建好的表里: 假设有一个名为 `spatial_data.csv` 的CSV文件,其中每行代表一条记录,并且最后一列为WKT表示法下的坐标信息: ```bash mysql> LOAD DATA LOCAL INFILE '/path/to/spatial_data.csv' INTO TABLE geom_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (name,@dummy,WKBGeomFromText(@geom)); ``` 这里需要注意两点:一是路径应指向实际存放该CSV的位置;二是最后一个参数指定了如何处理来自源文件的最后一列——即通过内置函数 `ST_GeomFromText()` 或者更早版本使用的 `GeomFromText()`, 将文本描述转化为内部可识别的形式后再赋给对应的geometry类型变量[@dummy]. #### 利用 ogr2ogr 工具直接迁移 Shapefile 至 MySQL 另一种更为简便的方式是借助 GDAL/OGR 提供的强大命令行工具 `ogr2ogr`. 这种方式特别适合于那些以 ESRI shapefiles 形式存在的矢量图层。只需简单指定输入输出格式加上必要的连接选项即可完成整个过程: ```bash $ ogr2ogr -f "MySQL" MYSQL:"dbname,user=root,password=secret" /path/to/input.shp ``` 这条指令会自动读取指定目录下所有的 .shp 及其关联文件(.dbf,.shx), 并按照它们所携带的信息构建合适的SQL表达式向目标数据库提交请求.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值