TDengine 地理函数 ST_GeomFromText 用户手册

ST_GeomFromText 函数

基本信息

  • 语法:ST_GeomFromText(wkt_expr)
  • 作用:将 Well-Known Text (WKT) 字符串转换为 GEOMETRY 类型并存储为二进制。
  • 返回类型:GEOMETRY
  • 适用类型:VARCHAR(输入 WKT)
  • 适用表:表、超级表
  • 支持的 WKT 类型:POINT / LINESTRING / POLYGON / MULTIPOINT / MULTILINESTRING / MULTIPOLYGON / GEOMETRYCOLLECTION

常用 WKT 示例

sql 复制代码
-- 点
ST_GeomFromText('POINT(116.397 39.908)')

-- 线串
ST_GeomFromText('LINESTRING(116.39 39.90,116.40 39.91,116.41 39.92)')

-- 简单多边形(闭合,首尾一致)
ST_GeomFromText('POLYGON((0 0,4 0,4 3,0 3,0 0))')

-- 带洞多边形(外环 + 内环)
ST_GeomFromText('POLYGON((0 0,6 0,6 6,0 6,0 0),(2 2,4 2,4 4,2 4,2 2))')

-- 多点
ST_GeomFromText('MULTIPOINT((0 0),(1 1),(2 2))')

-- 多线串
ST_GeomFromText('MULTILINESTRING((0 0,1 1),(2 2,3 3,4 4))')

-- 多多边形
ST_GeomFromText('MULTIPOLYGON(((0 0,2 0,2 2,0 2,0 0)),((3 3,5 3,5 5,3 5,3 3)))')

-- 几何集合(混合类型)
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,2 2))')

基础用法示例

sql 复制代码
-- 建表:包含 GEOMETRY 列
CREATE TABLE geo_points (
  ts TIMESTAMP,
  name VARCHAR(64),
  geom GEOMETRY(256)
);

-- 插入点数据
INSERT INTO geo_points VALUES
  (NOW, 'tiananmen', 'POINT(116.397 39.908)'),
  (NOW, 'airport',   'POINT(116.407 40.080)');

-- 查看 WKT 输出
SELECT name, ST_AsText(geom) AS wkt FROM geo_points;

业务场景示例

  1. 设备定位(点)
sql 复制代码
-- 设备位置入库
INSERT INTO geo_points VALUES
  (NOW, 'meter-001', 'POINT(121.48 31.23)');

-- 可视化取出
SELECT name, ST_AsText(geom) FROM geo_points WHERE name='meter-001';
  1. 巡检/线路(线串)
sql 复制代码
CREATE TABLE patrol_paths (
  ts TIMESTAMP,
  path_name VARCHAR(64),
  geom GEOMETRY(128)
);

INSERT INTO patrol_paths VALUES
  (NOW, 'line-1', 'LINESTRING(121.48 31.23,121.50 31.25,121.52 31.27)');

SELECT path_name, ST_AsText(geom) FROM patrol_paths;
  1. 服务/供电覆盖区(多边形)
sql 复制代码
CREATE TABLE service_zones (
  ts TIMESTAMP,
  zone_name VARCHAR(64),
  geom GEOMETRY(128)
);

INSERT INTO service_zones VALUES
  (NOW, 'zone-a', 'POLYGON((0 0,4 0,4 3,0 3,0 0))');

-- 取出 WKT 复核
SELECT zone_name, ST_AsText(geom) FROM service_zones;

注意事项

  • 输入必须是合法 WKT;坐标用空格分隔,同一点的首尾需闭合(多边形)。
  • 建议插入后用 ST_AsText 复核。
  • GEOMETRY 以二进制存储,WKT 仅作输入/输出格式。
  • 不区分 SRID,默认按原始数值存储;若需坐标系管理,请在应用侧约定。

关于 TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

相关推荐
Elastic 中国社区官方博客4 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索
红海云5 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能
wjkjpcba5 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭5 小时前
达梦事物特性及MVCC
linux·运维·数据库
计算机毕业编程指导师6 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
华允物联-HUAIOT6 小时前
LoRa通信距离一般多远?影响因素与实际测试方法
物联网
计算机毕业编程指导师6 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
小马同学-6 小时前
MySQL主从复制和读写分离
数据库·mysql
谢亮_vipxieliang6 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
geovindu7 小时前
sql: JSON and XML Data Handling in SQL using sql server 2025
大数据·数据库·sqlserver·数据库开发·数据库架构