グリッドモデルは、GeoSOTから開発された個別のマルチスケール位置識別システムです。
概要
グリッドモデルを使用すると、地球空間内のさまざまなオブジェクト (地球のコアから地球の表面まで) にグローバルに一意のコードを割り当てることができます。 オブジェクトのグローバルに一意のグリッドコードを使用して、オブジェクトと同じ場所から収集されたさまざまなデータにオブジェクトを関連付けることができます。
クイックスタート
エクステンションを作成します。
CREATE EXTENSION Ganos_GeomGrid with schema public CASCADE;
グリッドコードでテーブルを作成します。
CREATE TABLE t_grid(id integer, geom geometry, -- A geometry. grid1 geomgrid[], -- A grid code with a precision of 1. grid2 geomgrid[], -- A grid code with a precision of 2. grid3 geomgrid[] -- A grid code with a precision of 3. );
テーブルのグリッドコードを計算します。
--Insert data into the table. INSERT INTO t_grid(id, geom) VALUES (1, ST_GeomFromText('POINT(116.31522216796875 39.910277777777778)', 4490)), (2, ST_GeomFromText('POINT(116.31522217796875 39.910277776777778)', 4490)), (3, ST_GeomFromText('POINT(116.31522217797875 39.910277776787778)', 4490)), (4, ST_GeomFromText('POINT(116.31522227796875 39.910277776775778)', 4490)); --Create grid codes of different precision levels. UPDATE t_grid SET grid1 = ST_AsGrid(geom, 10), grid2 = ST_AsGrid(geom, 15), grid3 = ST_AsGrid(geom, 26);
グリッドコードにインデックスを作成します。
--Create GIN indexes on grid codes of different precision levels. CREATE INDEX idx_grid_gin1 ON t_grid USING GIN(grid1); CREATE INDEX idx_grid_gin2 ON t_grid USING GIN(grid2); CREATE INDEX idx_grid_gin3 ON t_grid USING GIN(grid3);
データの照会
--Query data that resides in a grid. SELECT id FROM t_grid WHERE grid2 = ARRAY[ST_GridFromText('G001310322230230')]; --Query data that intersects with a grid. SELECT id FROM t_grid WHERE grid3 @> ARRAY[ST_GridFromText('G00131032223023031031033223')]; --Query data that intersects with more than one grid. SELECT id FROM t_grid WHERE grid3 && ARRAY[ST_GridFromText('G00131032223023031031211001'), ST_GridFromText('G00131032223023031031211111')]; --Query data that intersects with more than one geometry in a grid. SELECT id FROM t_grid WHERE grid3 && ST_AsGrid( ST_GeomFromText('LINESTRING(116.31522216796875 39.910277777777778, 116.31522217797875 39.910277776787778)', 4490), 26);
作成した拡張子を削除します。
DROP EXTENSION Ganos_GeomGrid CASCADE;