首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PostGIS中的ST_CONTAINS和ST_WITHIN问题

在PostGIS中,ST_CONTAINS和ST_WITHIN是两个常用的空间关系函数,它们用于判断一个几何对象是否包含另一个几何对象

  1. ST_CONTAINS ST_CONTAINS函数用于确定一个几何对象(A)是否完全包含另一个几何对象(B)。如果A完全包含B,那么返回true,否则返回false。需要注意的是,ST_CONTAINS的关系是逆时针方向(Counter Clockwise,CCW)敏感的。这意味着,当满足以下条件时,ST_CONTAINS(A, B)返回true:
  • A是一个多边形,B是A内部的一个点、线或多边形。
  • A是一个线性几何对象,B是A内部的一个点。
  1. ST_WITHIN ST_WITHIN函数与ST_CONTAINS函数的功能类似,但它是CCW无关的。换句话说,ST_WITHIN(A, B)返回true的条件与ST_CONTAINS(A, B)相同,但ST_WITHIN的关系不考虑多边形顶点的顺序。这意味着,只要A完全包含B,不论顶点顺序如何,ST_WITHIN(A, B)都返回true。

总结一下,ST_CONTAINS和ST_WITHIN函数的主要区别在于它们对多边形顶点顺序的处理方式。ST_CONTAINS是CCW敏感的,而ST_WITHIN是CCW无关的。在大多数情况下,这两个函数可以互换使用,但在处理多边形顶点顺序敏感的问题时,选择合适的函数很重要。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

POSTGIS 总结

空间数据库提供了一个“空间索引(spatial index)”,它回答了“哪些对象在这个特定的边界框内?”这个问题。...)的实现 1.3 空间函数 空间函数构建于SQL语言中,用于进行空间属性和空间关系的查询,空间函数中的大部分可以被归纳为以下五类: 转换 —— 在geometry(PostGIS中存储空间信息的格式)和外部数据格式之间进行转换的函数...几何图形输入和输出 在数据库中,几何图形(Geometry)以仅供PostGIS使用的格式存储在磁盘上。...A, geometry B)**将返回TRUE ST_Within和ST_Contains ST_Within()和ST_Contains()测试一个几何图形是否完全位于另一个几何图形内 如果第一个几何图形完全位于第二个几何图形内...,则ST_Within(geometry A, geometry B)返回TRUE,ST_Within()测试的结果与ST_Contains()完全相反 如果第二个几何图形完全包含在第一个几何图形内,则

6.2K10
  • YashanDB在地理信息系统(GIS)领域的关键功能和技术优势

    这包括数据的增删改查、版本控制、元数据管理和数据的备份与恢复。GIS数据库系统通常与通⽤数据库管理系统(如PostGIS、Oracle Spatial等)集成,以⽀持复杂的数据操作和查询。...2.7 适配 GIS 平台崖⼭数据库积极与 GIS 平台进⾏合作,完成了与中地数码 MapGIS 和超图 SuperMapGIS 的适配验证,共同打造出全国产化解决⽅案。...2.8 应用案例崖⼭空间数据库作为核⼼时空数字底座,已被应⽤于深圳⻰华区数字孪⽣城市等项⽬,展⽰了其在实际业务场景中的应⽤价值。...3.2 外包框优化在 R-tree 索引中,每个节点都有⼀个外包框,它包含了该节点下所有⼦节点的边界框。...60万+YashanDB:csharp 代码解读复制代码select count(OGR_FID) from WORLD_COUNTRIES where ST_Within (YAS_GEOMETRY,

    7210

    MySQL空间函数汇总

    :MySQL8中文手册 MySQL函数和运算符:空间函数参考 - 空间分析功能 MySQL中的空间扩展:第19章:MySQL中的空间扩展_MySQL 中文文档 ArcMap ST_Geometry :与...('LINESTRING(0 0, 1 1)')); -- 两点之间的距离 SELECT ST_DISTANCE(POINT(1,1),POINT(0,0)); -- 以坐标点画圆和港口坐标是否包含和距离...38 ST_NumPoints() 返回LineString中的点数 39 ST_X() 返回Point的X坐标 40 ST_Y() 返回Point的Y坐标 41 ST_Longitude() 返回Point...() 返回几何的MBR 51 ST_SRID() 返回几何的空间参考系统ID 52 ST_NumGeometries() 返回几何集合中的几何数量 53 ST_GeometryType() 返回几何类型的名称...() 一个MBR是否涵盖另一个MBR 76 MBRContains() 一个几何的MBR是否包含另一个几何的MBR 77 MBRWithin() 一个几何的MBR是否在另一个几何的MBR内 78 ST_Contains

    2.5K20

    Postgres空间地理类型POINT POLYGON实现附近的定位和电子围栏功能

    通过比较9位到5位前缀,来获取附近5米到3km之内的坐标,为了寻求更快的定位方法,测试一下postgres的空间类型。 安装插件postgis 先安装了pg-10, 并且是通过yum安装的。...点POINT类型和距离 点POINT类型的数据结构为POINT(0 0),正好可以用作存储经纬度。...最后一种坐标转换的计算方法, 参考PostGIS 坐标转换(SRID)的边界问题引发的专业知识 - ST_Transform 建议国内不要使用马萨诸塞州的投影平面,会使得距离计算不够准确。...) 关于坐标体系 参考地理坐标系(球面坐标系)和投影坐标系(平面坐标系) 地理坐标系(Geographic coordinate system) 首先理解地理坐标系(Geographic coordinate...在坐标系统描述中,可以看到有这么一行: Datum: D_Beijing_1954 表示,大地基准面是D_Beijing_1954。

    3.7K20

    一篇文章带你玩转PostGIS空间数据库

    空间函数主要分为五类: 转换 —— 在geometry(PostGIS中存储空间信息的格式)和外部数据格式之间进行转换的函数 管理 —— 管理关于空间表和PostGIS组织的信息的函数 检索 ——...SELECT name FROM nyc_neighborhoods WHERE boroname = 'Brooklyn'; 元数据管理 PostGIS提供了两张表用于追踪和报告数据库中的几何图形(...ST_Touches()测试两个几何图形是否在它们的边界上接触,但在它们的内部不相交 ST_Within()和ST_Contains()测试一个几何图形是否完全包含于另一个几何图形内 ST_Distance...PostGIS中最常用的函数(ST_Contains、ST_Intersects、ST_DWithin等)都包含自动索引过滤器。但有些函数(如ST_Relate)不包括索引过滤器。...3.2 缓冲区 缓冲区操作在GIS工作流中很常见,在PostGIS中也可以进行缓冲区操作。

    7.6K50

    MySQL空间函数实现位置打卡

    总之,MySQL可以满足我们的需求。 MySQL提供单个的存储类型 POINT、LINESTRING、POLYGON 对应几何图形点、线、多边形,GEOMETRY 可以存储三种中的任何一种。...如果几何满足诸如此(非穷举)列表中的条件,则它在语法上是 well-formed: 线串至少有两个点 多边形至少有一个环 多边形环关闭(第一个和最后一个点相同) 多边形环至少有 4 个点(最小多边形是一个三角形...2、图形1是否完全包含图形2 ST_Contains(g1,g2),返回 1 或 0 以指示g1是否完全包含g2。还可以用ST_Within(g2,g1)达到相同的效果。...) 总结 本文通过一个地理位置打卡的需求,使用 MySQL 自带的 Polygon 数据类型实现了空间数据的存储,用ST_Contains(g1,g2) 函数代入了后台预置的地理区域和前端获取到的用户地理位置可以得出用户是否在打卡范围内...感谢您对IT大咖说的热心支持! 相关推荐 推荐文章 致开发人员:沉迷面向对象编程不可自拔?函数式编程了解一下 怎么理解内存中的Buffer和Cache?

    2.5K20

    超融合时序数据库YMatrixDB与PostGIS案例

    YMatrix适用于各种规模设备的数据融合与物联网时序应用场景,本案例以具体的案例来说明YMatrix在PostGIS中的数据加载、处理和分析的能力以及时空数据的具体使用方法,首先我们先了解下PostGIS...什么是PostGISPostGIS是一个空间数据库,空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。...PostGIS 基础知识OGC的WKB和WKT格式OGC定义了两种描述几何对象的格式,分别是WKB(Well-Known Binary)和WKT(Well-Known Text)格式。...ST_Touches(geometry, geometry)判断两个几何对象的边缘是否接触ST_Crosses(geometry, geometry)判断两个几何对象是否互相穿过ST_Within(geometry...postgis扩展,postgis适用于当前session数据库,如果其他的数据库使用,请切换到其他数据库中再次创建即可。

    1.8K30

    超融合时序数据库YMatrixDB与PostGIS案例

    YMatrix适用于各种规模设备的数据融合与物联网时序应用场景,本案例以具体的案例来说明YMatrix在PostGIS中的数据加载、处理和分析的能力以及时空数据的具体使用方法,首先我们先了解下PostGIS...什么是PostGIS PostGIS是一个空间数据库,空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。...ST_Within(geometry A, geometry B) 判断A是否被B包含 ST_Overlaps(geometry, geometry) 判断两个几何对象是否是重叠 ST_Contains...mxadmin用户登录到数据库并创建postgis扩展,postgis适用于当前session数据库,如果其他的数据库使用,请切换到其他数据库中再次创建即可。...的PostGIS使用案例 首先我们先熟悉一下PostGIS的常用的案例,然后再使用真实的北京市内所有的酒店信息和宾馆信息做统计。

    1.5K10

    空间索引 - 各数据库空间索引使用报告

    可是,今天的主题不在这里,我们的首要目标是要解决问题,这些空间索引的实现改日专门写文章来实现。本文来说一说现有的数据库中对空间索引的支持情况,希望能帮助跟我一样的 GIS 小白进行技术选型。...支持 包含、相交、临近的查询,同时它也解决了 Redis 的多条件查询问题。...PostGIS 使得其成为一个真正的大型空间数据库。...虽然它在存在着复杂索引时写入较慢的问题,但对于存储不常变动的地点信息来说,是无关大碍的。...参考: PgSQL · 功能分析 · PostGIS 在 O2O应用中的优势 PostgreSQL 全表 全字段 模糊查询的毫秒级高效实现 MySQL 介绍 Mysql 的重要性和强大不必多言,它的存储引擎

    7.6K81

    地理空间数据库复习笔记:关系数据库标准语言、几何对象模型与查询

    几何的建模是数据库管理系统关心的基础问题 关键是选择一组基本空间数据类型来满足地图常用几何信息的建模要求 几何对象模型利用对象关系型数据库中的扩展数据类型实现....用于动态构造线性要素的各个部分的方法 LocateAlong用于选取几何中M值为mValue的点,并构造成一个新的几何对象 LocateBetween用于选取几何中M值在mStart和mEnd之间的点...基于扩展几何类型的实现 利用对象关系数据库中对抽象数据类型的支持,定义Geometry类型及其相关的方法与函数,并用该扩展几何类型实现空间数据的存储和管理 扩展几何类型的解释和维护由定义者负责...Oracle Spatial中的SDO_GEOMETRY、PostGIS中的Geometry 是扩展的空间数据类型 GEOMETRY_COLUMNS和SPATIAL_REF_SYS是系统表,用于存储元数据信息...: PostGIS中常用数据类型: boolean 布尔类型,其值为T或F box2d 矩形框类型,由矩形左下角和右上角组成 box3d 长方体类型,由左前下角和右后上角组成 bytea 相当于BLOB

    1.2K20

    一个R语言中操纵矢量空间数据的标准化工具—sf

    注: 本文是R语言sf包的核心开发者和维护者——来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位、功能、开发现状及现存问题和今后展望...目前看来具备这种潜质的候选包主要包括s2(Rubak和Ooms, 2017)(Rubak和Ooms, 2017)、liblwgeom (PostGIS的一部分)、CGAL (Fabri和Pion, 2009...所有函数和方法均以st_(对于“spacetime”,遵循PostGIS约定)开头,以保持它们的统一性和可识别性,并可提供tab键来实现函数的模糊提醒。...最常听到的问题是在这本新书中栅格数据在哪里:sp为网格数据提供了简单的类,栅格(Hijmans, 2016b)提供了大量的类和密集的方法来使用它们,并与sp向量类紧密集成。...目前主要通过RPostgreSQL来与PostGIS一起工作,当然,使用RPostgres以及DBI来读写空间数据库的功能仍然进一步开发完善中。

    4.3K51

    谈谈CNN中的位置和尺度问题

    当然除了不变性和相等性的问题,还存在类内差异的问题,比如不同的人对于检测而言都是行人类别,对于识别而言则是不同的人,这对于特征提取也存在挑战。...所以我猜网络就是在训练过程中让padding和这个相对的关系对应上了,如果没有padding,目标距离边缘越远,同样出现0的次数也会越多,但问题在于无法跟padding造成的边缘数值小,中心数值大的特殊分布相比...不过有关padding的问题,在CVPR2019的一片单目标跟踪算法SiamRPN++中也做了探讨。...2.2CNN如何预测目标的深度信息 深度估计也是一个类似的问题,不同的是,图像中并没有包含深度信息,但是网络是如何获取深度信息的呢。...Spatial Location》https://arxiv.org/pdf/2003.07064.pdf,其中也提到了CNN中的平移不变性问题和绝对位置信息编码问题,其切入点是CNN中的边界问题。

    1.8K10

    Golang 中 for-loop 和 goroutine 的问题

    背景 最近在学习MIT的分布式课程6.824的过程中,使用Go实现Raft协议时遇到了一些问题。...3,因此最高下标为2,在非并行编程中代码中的for-loop应该是很直观的,我当时并没有意识到有什么问题。...}(val) } 在这里将 val 作为一个参数传入 goroutine 中,每个 val 都会被独立计算并保存到 goroutine 的栈中,从而得到预期的结果。...另一种方法是在循环内定义新的变量,由于在循环内定义的变量在循环遍历的过程中是不共享的,因此也可以达到同样的效果: for i := range valslice { val := valslice...[i] go func() { fmt.Println(val) }() } 对于文章开头提到的那个问题,最简单的解决方案就是在循环内加一个临时变量,并将后面

    1.7K70

    解决Ceph集群中的故障和性能问题

    解决Ceph集群中的故障问题当Ceph集群遇到OSD故障时,我们可以采取以下步骤快速诊断问题并进行修复:检查Ceph集群状态:使用ceph -s命令检查集群状态,查看是否有OSD出现故障。...如果有OSD出现故障,会显示在集群状态中。查看OSD状态:使用ceph osd tree命令查看OSD的状态,包括OSD的ID、主机名、状态等信息。确定故障的OSD所在的节点。...监控Ceph集群的性能指标要监控Ceph集群的性能指标并进行性能调优和容量规划,可以采取以下步骤:配置和启动监控工具:Ceph提供了多个监控工具,如Ceph-Dashboard、Grafana等。...应对Ceph集群中的网络延迟和带宽瓶颈问题当Ceph集群中出现网络延迟和带宽瓶颈问题时,可以采取以下措施应对:检查网络配置:确保Ceph集群的网络配置正确,包括网络拓扑、网卡参数、链路带宽等。...检查网络延迟:使用ping命令检查各个节点之间的网络延迟。可以检查响应时间和丢包情况,确定是否存在网络延迟问题。

    85521

    存储改造中的逻辑和清理遗留的问题

    现象:用户读信时,根据路径的哈希结果,访问四台服务器中一台请求文件,这四台缓存机器已经下线,访问不到再去后端存储访问浪费了时间 前因:每一封信都是一个文件,存储在公司内部的分布式文件系统s3上.因为读取速度太慢和经常的网络访问失败...访问文件的时候,会根据内部的索引服务返回的location进行判断,结果是4,5,6,分别代表只存s3,只存oss,s3和oss双读.代码中对location进行判断,进行读取访问文件.当存在双读的时候...在需要读取s3时,在这之上要先访问缓存代理.根据指定的哈希规则,对path部分取哈希值,如果在以下四个范围内就访问指定的IP '0~25'=>'http://xxx.xxx.88', '...运维反馈现在访问文件时是使用的公网域名,把公网域名修改成内网域名,速度会有提升,网络问题也会减少. 4. 去掉读信走s3逻辑时候的读取nginx代理cache部分 5....在线上单独拿台机器用于测试,如果没有问题就全量上线

    58120
    领券