Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
测试 ST_Geometry 值是否在空间上与其它 ST_Geometry 值相等。
geometry-expression.ST_Equals(geo2)
geo2
ST_Geometry
要与 geometry-expression 进行比较的另一个几何值。
BIT 如果两个几何值在空间上相等则返回 1,否则返回 0。
测试某 ST_Geometry 值是否与其它 ST_Geometry 值相等。
执行空间相等性测试时,首先要比较两个几何的外围矩形。如果在容差范围内二者不相等,则这两个几何将被视为不相等,并返回 0。另外,在 [geometry-expression.ST_SymDifference( geo2 )] 为空集时数据库服务器返回 1,否则返回 0。
geometry-expression.ST_SymDifference( geo2 )
请注意,SQL/MM 标准只用 ST_SymDifference 定义 ST_Equals,而不进行其它外围框比较。对于有些几何,尽管它们的外围框并不相等,但 ST_SymDifference 仍生成空结果。SQL/MM 标准将这些几何视为相等,而 SQL Anywhere 将其视为不相等。当其中一个或两个几何包含尖峰或刺孔时会产生上述差别。
即使在两个几何值具有不同的表示形式时,也可以将其视为相等。例如,两个线串的方向可能相反,但在空间中包含同一组点。则 ST_Equals 会将这两个线串视为相等,而 ST_OrderingEquals 会将其视为不相等。请参见使用 ST_Equals 和 ST_OrderingEquals 比较几何。
ST_Equals 可能会受到空间参照系分辨率或数据精度的限制。
如果 geometry-expression 包含圆弧线串,则它们将内插到直线线串中。
SQL/MM (ISO/IEC 13249-3: 2006) 5.1.24
以下示例返回结果 [16]。与 ShapeID 结果 [16] 对应的 Shape 与指定多边形包含相同的点,但以不同的顺序排列。
16
SELECT ShapeID FROM SpatialShapes WHERE Shape.ST_Equals( NEW ST_Polygon( 'Polygon ((2 0, 1 2, 0 0, 2 0))' ) ) = 1
以下示例返回结果 [1],表示尽管两个线串包含以不同顺序指定的数量不等的点,且中间点未准确地定位在线上,但二者仍相等。中间点与仅具有两个点的线之间的距离约为 3.33e-7,但此距离小于 "缺省" 空间参照系的容差 1e-6 (SRID 0)。
1
SELECT NEW ST_LineString( 'LineString( 0 0, 0.333333 1, 1 3 )' ) .ST_Equals( NEW ST_LineString( 'LineString( 1 3, 0 0 )' ) )