Model grid adalah sistem identifikasi lokasi multi-skala diskrit yang dikembangkan dari GeoSOT.
Ikhtisar
Model grid memungkinkan pemberian kode unik global untuk berbagai objek dalam ruang bumi, mulai dari inti hingga permukaan. Kode grid unik global suatu objek dapat digunakan untuk mengaitkan objek tersebut dengan berbagai data yang dikumpulkan dari lokasi yang sama.
Pengenalan cepat
Buat ekstensi.
CREATE EXTENSION Ganos_GeomGrid with schema public CASCADE;Buat tabel dengan kode grid.
CREATE TABLE t_grid(id integer, geom geometry, -- Sebuah geometri. grid1 geomgrid[], -- Kode grid dengan presisi 1. grid2 geomgrid[], -- Kode grid dengan presisi 2. grid3 geomgrid[] -- Kode grid dengan presisi 3. );Hitung kode grid tabel.
--Masukkan data ke dalam tabel. 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)); --Buat kode grid dengan tingkat presisi yang berbeda. UPDATE t_grid SET grid1 = ST_AsGrid(geom, 10), grid2 = ST_AsGrid(geom, 15), grid3 = ST_AsGrid(geom, 26);Buat indeks pada kode grid.
--Buat indeks GIN pada kode grid dengan tingkat presisi yang berbeda. 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);Kueri data.
--Kueri data yang berada di dalam grid. SELECT id FROM t_grid WHERE grid2 = ARRAY[ST_GridFromText('G001310322230230')]; --Kueri data yang berpotongan dengan grid. SELECT id FROM t_grid WHERE grid3 @> ARRAY[ST_GridFromText('G00131032223023031031033223')]; --Kueri data yang berpotongan dengan lebih dari satu grid. SELECT id FROM t_grid WHERE grid3 && ARRAY[ST_GridFromText('G00131032223023031031211001'), ST_GridFromText('G00131032223023031031211111')]; --Kueri data yang berpotongan dengan lebih dari satu geometri dalam grid. SELECT id FROM t_grid WHERE grid3 && ST_AsGrid( ST_GeomFromText('LINESTRING(116.31522216796875 39.910277777777778, 116.31522217797875 39.910277776787778)', 4490), 26);Hapus ekstensi yang telah dibuat.
DROP EXTENSION Ganos_GeomGrid CASCADE;