การหาจุดกึ่งกลาง (Centroid) ของข้อมูล Polygon ด้วย PostGIS

ถ้าเราต้องหาจุดกึ่งกลางจากชั้นข้อมูล polygon ในโปรแกรม QGIS นั้นสามารถหาได้ไม่ยาก โดยไปที่เมนู Vector > Geometry Tools > Polygon Centroids  ก็จะได้ข้อมูลจุดออกมา แต่ถ้าเราจะต้องทำใน PostgreSQL/PostGIS จะต้องใช้คำสั่งอะไร? ซึ่งคำสั่งที่ใช้ในการหาจุดกึ่งกลางใน PostGIS นั้นไม่ยากเลยครับ ให้เราใช้ ST_Centroid ส่วนจะหาพิกัดของจุดกึ่งกลางนั้นให้ใช้ ST_X  และ ST_Y เพื่อ return X, Y coordinate ของข้อมูลจุดกึ่งออกมา เราลองไปดูตัวอย่างด้านล่างนี้กันเลยครับ

SELECT gid, ST_Y(ST_Centroid(geom)) as n,
ST_X(ST_Centroid(geom)) as e
FROM table;

centroid1

แต่ถ้าอยากจะสร้างเป็นตารางหรือชั้นข้อมูลจุดออกมาให้เพิ่มคำสั่ง ST_Union เข้าไปด้วยนะครับ

DROP TABLE centroid;
CREATE TABLE centroid AS
SELECT gid, ST_Y(ST_Centroid(geom)) as n,
ST_X(ST_Centroid(geom)) as e,
st_centroid(ST_Union(geom))
FROM table
GROUP BY gid, geom ;

centroid2

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s