名称

PostGIS_DropBBox — 从几何图形中删除边界框缓存。

概要

geometry PostGIS_DropBBox(geometry geomA);

描述

从几何图形中删除边界框缓存。这会减小几何图形的大小,但会使基于边界框的查询速度变慢。它还用于删除损坏的边界框。一个损坏的缓存边界框的明显迹象是,当您的 ST_Intersects 和其他关系查询遗漏了理应返回 true 的几何图形时。

[Note]

边界框会自动添加到几何图形中,并提高查询速度,因此通常不需要这样做,除非生成的边界框以某种方式损坏,或者您安装的是缺少边界框的旧版本。然后您需要删除旧的并重新添加。这种类型的损坏在 8.3-8.3.6 系列中观察到,其中当几何图形发生更改时,缓存的 bbox 并不总是重新计算,并且升级到较新版本而不进行转储重新加载将不会纠正已损坏的框。因此,可以使用下面的方法手动纠正并重新添加 bbox,或者进行转储重新加载。

此方法支持圆形字符串和曲线。

示例

--This example drops bounding boxes where the cached box is not correct
			--The force to ST_AsBinary before applying Box2D forces a recalculation of the box, and Box2D applied to the table geometry always
			-- returns the cached bounding box.
			UPDATE sometable
 SET geom =  PostGIS_DropBBox(geom)
 WHERE Not (Box2D(ST_AsBinary(geom)) = Box2D(geom));

	UPDATE sometable
 SET geom =  PostGIS_AddBBox(geom)
 WHERE Not PostGIS_HasBBOX(geom);