日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ST_BuildPyramidUseGeomSideLen

如果原始矢量數據表有記錄矢量數據外包框邊長的列,且基于此列具備索引時(例如B樹),可以調用本函數來構建金字塔。與ST_BuildPyramid相比,本函數可以顯著提升構建和更新金字塔的效率。

語法

boolean ST_BuildPyramidUseGeomSideLen(cstring table, cstring geom_field, cstring geom_side_len_field, cstring fid, cstring config);

參數

參數名稱

描述

table

空間幾何表名。

geom_field

幾何字段名。

geom_side_len_field

記錄geom_field的外包框的最大邊長的屬性列的字段名。

fid

要素標識字段名。

config

創建金字塔的參數。

config參數的定義與ST_BuildPyramid中相同。

示例

ALTER TABLE roads
ADD COLUMN geom_side_len DOUBLE PRECISION;
CREATE OR REPLACE FUNCTION add_max_len_values() RETURNS VOID AS $$
DECLARE
  t_curs CURSOR FOR
    SELECT * FROM roads;
  t_row test_polygon_geom_side_len%ROWTYPE;
  gm GEOMETRY;
  x_min DOUBLE PRECISION;
  x_max DOUBLE PRECISION;
  y_min DOUBLE PRECISION;
  y_max DOUBLE PRECISION;
BEGIN
  FOR t_row IN t_curs LOOP
    SELECT t_row.geom INTO gm;
    SELECT ST_XMin(gm) INTO x_min;
    SELECT ST_XMax(gm) INTO x_max;
    SELECT ST_YMin(gm) INTO y_min;
    SELECT ST_YMax(gm) INTO y_max;
    UPDATE roads
      SET geom_side_len = GREATEST(x_max - x_min, y_max - y_min)
    WHERE CURRENT OF t_curs;
  END LOOP;
END;
$$ LANGUAGE plpgsql;
SELECT add_max_len_values();
CREATE INDEX ON roads USING btree(geom_side_len);

SELECT ST_BuildPyramidUseGeomSideLen('roads', 'geom', 'geom_side_len', 'id',
  '{"parallel":4}');