【问题标题】:are contains function in mariadb vs. contains methods in python shapely the same?mariadb 中的 contains 函数与 python 中的 contains 方法是否相同?
【发布时间】:2021-02-22 02:14:54
【问题描述】:

我正在复制我们使用 MariaDB 10.2.21 的服务中使用的逻辑。对于给定的多边形,我需要检查一个点是否包含在多边形内。

在 MariaDB 中,我们在 python 中使用 Contains(polygon, point) 我正在通过使用 polygon.contains(point) 来复制这种行为

来自两个文档 https://mariadb.com/kb/en/contains/, https://shapely.readthedocs.io/en/stable/manual.html

但我不确定 mariaDB 文档指的是哪个版本,我在哪里可以找到 mariaDB 10.2.21 的文档?或者有人可以解释每种方法是如何运作的吗?谢谢!

【问题讨论】:

    标签: python mariadb shapely


    【解决方案1】:

    正如 MariaDB 文档所述:MariaDB 和 MySQL 的 CONTAINS() 函数仅对多边形的边界矩形进行操作。所以 CONTAINS(polygon, point) 甚至会在点实际上在多边形之外但在其边界矩形内时返回 TRUE。

    您正在寻找的是 ST_CONTAINS() 函数,它确实会检查实际的多边形:https://mariadb.com/kb/en/st-contains/

    ST_CONTAINS() 和 shapely contains() 方法的行为应该相同

    【讨论】:

    • 什么是 mariadb contains() 的等价物?另外我也在阅读 mariadb 文档,但不理解 object bounding rectangles 这是什么意思...?
    • @Ambleu - 想象一个围绕圆(“对象”)外接的正方形(“边界矩形”)。正方形很容易使用——两个 x 和两个 y。里面的圆圈(或更复杂的东西)需要更多的工作来确定“包含”。
    • "什么是 mariadb contains() 的等价物? ...我认为在匀称上没有任何直接的等价物。 “边界矩形是什么意思”它是一个包含所有多边形的矩形,是完全放入多边形所需的最小框。除非多边形本身是直立矩形,否则边界矩形会更大比实际的多边形。也许我的一个 GIS 演讲中的这个例子有帮助? image.slidesharecdn.com/…
    • 边界矩形背后的背景是,早期的 MySQL GIS 只会将 xmin、xmax、ymin 和 ymax 存储在空间索引中,而对于“包含”一个点,只需检查 xmin
    猜你喜欢
    • 2014-12-09
    • 2014-08-20
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多