Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断参考文章:postgresql 空间函数集合 关系判断SQL 这里用两个完全一样的Geometry做测试。 /**1.获取两个几何对象间的距离 ST_Distance(geometry, geome…

Postgresql 两个Geometry的关系判断

关系判断SQL

这里用两个完全一样的Geometry做测试。

/**1.获取两个几何对象间的距离 ST_Distance(geometry, geometry)**/
SELECT  ST_Distance(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**2.如果两个几何对象间距离在给定值范围内,则返回TRUE ST_DWithin(geometry, geometry, float)**/
SELECT  ST_DWithin(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"),10);
/**3.判断两个几何对象是否相等(比如LINESTRING(0 0, 2 2)和LINESTRING(0 0, 1 1, 2 2)是相同的几何对象)ST_Equals(geometry, geometry)**/
SELECT  ST_Equals(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**4.判断两个几何对象是否分离 ST_Disjoint(geometry, geometry)   **/
SELECT  ST_Disjoint(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**5.判断两个几何对象是否相交 ST_Intersects(geometry, geometry)**/
SELECT  ST_Intersects(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**6.判断两个几何对象的边缘是否接触 ST_Touches(geometry, geometry)**/
SELECT  ST_Touches(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**7.判断两个几何对象是否互相穿过 ST_Crosses(geometry, geometry)**/
SELECT  ST_Crosses(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**8.判断A是否被B包含 ST_Within(geometry A, geometry B)**/
SELECT  ST_Within(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**9.判断两个几何对象是否是重叠 ST_Overlaps(geometry, geometry)**/
SELECT  ST_Overlaps(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**10.判断A是否包含B ST_Contains(geometry A, geometry B)**/
SELECT  ST_Contains(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**11.判断A是否覆盖 B ST_Covers(geometry A, geometry B)**/
SELECT  ST_Covers(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**12.判断A是否被B所覆盖 ST_CoveredBy(geometry A, geometry B)**/
SELECT  ST_CoveredBy(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));
/**13.通过DE-9IM 矩阵判断两个几何对象的关系是否成立 ST_Relate(geometry, geometry, intersectionPatternMatrix)**/
SELECT  ST_Relate(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"),"FF*FF****");
/**14.获得两个几何对象的关系(DE-9IM矩阵) ST_Relate(geometry, geometry)**/
SELECT  ST_Relate(ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"), ST_GeomFromText("Polygon((117.357442 30.231278,119.235188 30.231278,119.235188 32.614617,117.357442 32.614617,117.357442 30.231278))"));

代码100分

查询结果展示

1-10:

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

11-14

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

Postgresql 两个Geometry的关系判断

参考文章

ST_Relate(geometry,geometry, intersection_pattern_matrix )

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10008.html

(0)
上一篇 2023-01-27
下一篇 2023-01-27

相关推荐

  • Python基本命令大全

    Python基本命令大全Python是一种广泛使用的高级编程语言,因其简单易学、高效、可扩展性强而备受欢迎。如果你正在学习Python编程,这篇文章详细介绍了Python的基本命令大全,帮助你更好地掌握这个强大的编程语言。

    2024-08-16
    28
  • MySQL优化之慢查询日志「终于解决」

    MySQL优化之慢查询日志「终于解决」慢查询日志概述 所谓慢查询日志,就是用于记录MySQL中响应时间超过设定阈值的SQL语句,通过打开慢查询开关,MySQL会将大于阈值的SQL记录在日志中,以便于分析性能。 慢查询日志选项默认是关闭的,

    2023-02-12
    165
  • 使用Python的defaultdict实现一个功能强大的映射数据结构

    使用Python的defaultdict实现一个功能强大的映射数据结构Python中的字典是一种非常有用的数据结构,它可以将一个键(key)与一个值(value)相关联。但是,在某些情况下,我们需要一个可以将一个键与多个值相关联的数据结构。这时候,defaultdict这个类就非常有用了。在本文中,我们将介绍如何使用Python的defaultdict实现一个功能强大的映射数据结构。

    2024-05-04
    73
  • 讲解Python函数重载的实现方式

    讲解Python函数重载的实现方式Python是一门高级编程语言,由于其简介易学且功能强大,被广泛的应用于各行各业。但在编程中,尤其是在函数定义时,我们经常会遇到一些同名函数的情况。本文将为大家详细介绍Python函数重载的实现方式,帮助读者更好地理解和使用Python。

    2024-07-15
    51
  • kettle简介_kettle发音

    kettle简介_kettle发音描述 Kettle是一款开源的 ETL 工具,采用 JAVA 语言编写。 特性 高效稳定,支持多种类型的数据格式,如:MySQL,Oracle,PostGreSQL,CSV 等。 可视化设计。 概念…

    2023-03-24
    186
  • Postgresql统计信息概述[通俗易懂]

    Postgresql统计信息概述[通俗易懂]对于sql优化,除了索引之外,执行计划和统计信息是无法绕开的一个话题,如果sql优化(所有的RDBMS)脱离了统计信息的话就少了一个为什么的过程,味道就感觉少了一大半。刚接触Postgresql,粗浅

    2023-03-25
    150
  • python微博数据,python微博情感分析[亲测有效]

    python微博数据,python微博情感分析[亲测有效]1.下载SDK

    2023-08-25
    126
  • 如何使用Python保存数据?

    如何使用Python保存数据?在程序开发中,数据的处理和保存是非常重要的一环。而Python作为一种流行的高级编程语言,其提供了很多方法来处理各种类型的数据,并且支持将这些数据保存在各种格式的文件中。本文将介绍如何使用Python保存数据,并且会从多个方面对这个主题进行详细阐述。

    2024-08-08
    27

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注