如何在postgis中找到几何半径?

Posted

技术标签:

【中文标题】如何在postgis中找到几何半径?【英文标题】:How to find Radius of geometry in postgis? 【发布时间】:2014-03-21 07:29:04 【问题描述】:

我正在尝试开发一个 GIS 应用程序,我想在其中限制创建的缓冲区的地理围栏区域。

是否有 postgis 函数来查找缓冲区的半径或地理围栏的边界?

【问题讨论】:

您最好在gis.stackexchange.com 上发布此类内容。不要只是复制和粘贴此帖子 - 将其标记为迁移,或删除此帖子并然后在 gis.stackexchange.com 上发布。 (真的,您还需要更详细。哪些数据类型定义了您的地理围栏?显示用于创建地理围栏的命令。还应包括您的 PostGIS 和 PostgreSQL 版本。) 【参考方案1】:

您可以使用 ST_Envelope 获取围绕某个特征的边界框的范围,在最小边界矩形 (MBR) 中。

select ST_Astext(ST_Envelope(ST_Buffer(ST_Makepoint(0,0),10)));

返回一个矩形而不是圆形

POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10))

然后您可以使用 min 和 max 函数、ST_Xmax、ST_Xmin 和 Y 等效项来获取 MBR 的宽度、高度。

这是你问的吗?

【讨论】:

非常感谢。但这不是我确切要求的。我想确定围栏是否在特定边界内,并考虑首先限制半径。但是由于可以使用 st_contains 来完成,所以问题就解决了。【参考方案2】:

谢谢约翰,

我问错了,我的实际要求是栅栏不能越界。我首先想到的是限制栅栏的半径,但可以使用 st_contains 来完成,因为它符合我的实际要求。

Select st_contains ((select the_geom from gis.city_border),(select the_geom from geofence))

解决了。

【讨论】:

以上是关于如何在postgis中找到几何半径?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sequelize ORM 中插入 PostGIS GEOMETRY 点?

POSTGIS:错误:对混合 SRID 几何图形的操作。试图用两个不同的 SRIDS/表找到重叠的几何

MYSQL/PHP/Postgis:检查一个坐标是不是在另一个坐标的半径内(小扭曲)

使用 Gorm 插入和选择 PostGIS 几何

Postgis安装:类型“几何”不存在

Postgis几何边界上的两个最近点