名称

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

概要

geometry PostGIS_DropBBox(geometry geomA);

描述

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

[Note]

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

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

示例

--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);


 

另请参阅

PostGIS_AddBBoxPostGIS_HasBBoxBox2D