PostGIS 筆記(二):查詢 PostGIS

之前成功安裝之後,我們便可進行查詢,卻得出一堆數字:
select * from mytable;

0101000020E61000000000000000805C400000000000003640

postgis5

以下查詢也是如此:
SELECT ST_Rotate(geom, -pi()/3, ST_Centroid(geom)) 
FROM (SELECT 'LINESTRING (50 160, 50 50, 100 50)'::geometry AS geom) AS foo;

0102000000030000003CCCC890091B5D40D73137A0815560406AA973C4DF283540AE636E4003EB5240B7D439E26F14474077CB577B762F4040

就算我們用了 ST_AsText 或 ST_AsEWKT 之類,也不易分析它的形狀:
SELECT ST_AsEWKT(ST_Rotate(geom, -pi()/3, ST_Centroid(geom)))
FROM (SELECT 'LINESTRING (50 160, 50 50, 100 50)'::geometry AS geom) AS foo;

LINESTRING(116.422458835689 130.672073467066,21.1596644194009 75.6720734670659,46.1596644194009 32.370803277844)

為了可視化以上結果,我們可以下載 JTS Topology Suite下載點)的 Java 軟件。下載後打開 /bin/testbuilder.bat (視窗系統上)使用。

我們將上面的結果數字或文字貼到下面的框框,再按右方的掣,便可看到結果:
postgis6

利用這套軟件,我們更可繪出及測試不同圖形之間的關係:
postgis7
postgis8

更可使用函數進行測試:
postgis9

另外,GIS 或其他軟件也可協助我們查看數據,例如 TileMill,它可以直接連到 PostgreSQL Server 進行查詢:
postgis10

兩粒紅點是我們先前創建的 mytable 上的資料:
postgis11

內部連結:
【目錄】地理/地理資訊系統/空間資料庫/大地測量內部連結

本文連結