GDAL几何图形内部()函数与包含()函数之间有什么区别?

时间:2019-06-19 06:55:57

标签: gdal

org.gdal.ogr.Geometry中可用的以下功能有什么区别。

string.Format("Select * from LicenseSerialNumbers where Id IN ({0})", convertedListOfLong);

2 个答案:

答案 0 :(得分:2)

withincontains函数是倒数函数。 a contains b ,并且仅当 b within a 时。 C ++ source code表示相同的意思:

bool
Geometry::within(const Geometry* g) const
{
    return g->contains(this);
}

crosss()和intersects()函数的实现不同。

根据此documentation page,如果disjoint返回false,则相交将返回true,并且disjoint谓词意味着这两个几何没有共同点。我们可以得出结论,相交意味着两个几何至少有一个共同点。

另一方面,十字谓词意味着这些几何图形具有一些但不是全部相同的内部点。比相交谓词更具限制性。

答案 1 :(得分:1)

Ortomala Lokni对于crossesintersects是正确的,这是关于工作内部和包含内容的直观说明。

假设您有两个几何形状:点A和多边形B如图所示 Polygon

然后A在 B内,而B 包含A。

反之不正确。 A不包含B,并且B不在A之内。

以下两个陈述是正确的:

A.within(B) -> B.contains(A)

A.contains(B) -> B.within(A)