PostgreSQL将边界geometry转换为坐标

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 【8月更文挑战第5天】PostgreSQL将边界geometry转换为坐标

在 PostgreSQL 中,如果你想要将一个几何对象(例如一个多边形或多边形集合)的边界转换为坐标点序列,你可以使用 PostgreSQL 的空间扩展模块 PostGIS。PostGIS 提供了一系列函数来处理几何对象。

步骤 1: 安装 PostGIS

确保你的 PostgreSQL 数据库已经安装了 PostGIS 扩展。如果还没有安装,可以使用以下命令安装:

CREATE EXTENSION postgis;

步骤 2: 准备数据

假设你有一个包含几何对象的表 geometries,表中有一个名为 geom 的 geometry 类型的列。

CREATE TABLE geometries (
    id SERIAL PRIMARY KEY,
    geom geometry(Polygon, 4326) -- 假设是 WGS 84 投影的多边形
);

INSERT INTO geometries (geom)
VALUES
    (ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326)),
    (ST_GeomFromText('POLYGON((20 20, 30 20, 30 30, 20 30, 20 20))', 4326));

步骤 3: 获取边界坐标

要获取多边形的边界坐标,你可以使用 ST_DumpPoints 函数来提取边界线上的坐标点。下面是一个示例 SQL 查询:

SELECT
    id,
    ST_X(p.geom) AS x,
    ST_Y(p.geom) AS y
FROM
    geometries g
CROSS JOIN
    LATERAL ST_DumpPoints(ST_Boundary(g.geom)) p;

这里的 ST_DumpPoints 函数将多边形的边界线分解为一系列坐标点。ST_Boundary 函数用于提取多边形的边界线。

解释

  • ST_Boundary(g.geom):提取多边形的边界。
  • ST_DumpPoints:将边界线分解为坐标点。
  • LATERAL:允许在 CROSS JOIN 中引用外部表中的行。

输出

执行上述查询后,你将得到一个包含边界点坐标的表格。每一行将包含 idxy 字段,分别对应于几何对象的 ID 和坐标点的 X 和 Y 坐标。

注意事项

  • 确保你的几何对象的投影系统(SRID)与你期望的坐标系统一致。
  • 如果你的几何对象包含多个部分(如多个多边形),你可能需要进一步处理结果以获取每个部分的坐标。

以上步骤应该能帮助你从多边形或多边形集合中提取边界坐标。如果你需要更详细的控制,可以考虑使用其他 PostGIS 函数,如 ST_ExteriorRingST_InteriorRingN 等来处理多边形的内外环。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
定位技术 Windows 关系型数据库
PostgreSQL GUI pgadmin4 v3.3 支持 gis geometry 数据编辑、显示
标签 PostgreSQL , pgadmin , gis , 编辑 背景 pgadmin 4 v3.3 开始支持geometry 类型的展示。 https://www.postgresql.org/ftp/pgadmin/pgadmin4/v3.3/windows/ 如果geometry使用的是SRID 4326 (WGS 84 lon/lat)坐标系,则pgadmin会自动从OpenStreetMap 加载图层,作为背景。
2073 0
|
2月前
|
关系型数据库 PostgreSQL Docker
PostgreSQL - 01 PostgreSQL + PostGIS + Docker 空间计算!判断坐标点是否在某个区域中 POINT MULTIPOLYGON ST_Contains
PostgreSQL - 01 PostgreSQL + PostGIS + Docker 空间计算!判断坐标点是否在某个区域中 POINT MULTIPOLYGON ST_Contains
36 0
|
7月前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在使用 DataWorks 数据集成同步 PostgreSQL 数据库中的 Geometry 类型数据如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
91 0
|
7月前
|
分布式计算 关系型数据库 大数据
MaxCompute产品使用合集之怎么才可以将 PostgreSQL 中的 geometry 空间类型字段同步到 MaxCompute 或另一个 PostgreSQL 数据库
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
366 0
|
存储 缓存 关系型数据库
|
存储 SQL 并行计算
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍(中)
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍
426 0
|
存储 算法 安全
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍(下)
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍
384 0
|
关系型数据库 分布式数据库 开发工具