PostGIS: สำเนาฐานข้อมูลพร้อมแปลงระบบพิกัด

1 11 2011

 

20111021

วัตถุประสงค์

  • ต้องการทำสำเนาฐานข้อมูลปริภูมิแต่เปลี่ยนระบบพิกัดของข้อมูลปริภูมิ
  • ต้องการแปลงระบบพิกัดจาก Geographic/WGS84 ไปเป็น UTM Zone47/WGS84
  • กำหนดฐานข้อมูล ชื่อ river มีตาราง river4326 และกำหนดให้ฐานข้อมูลใหม่ให้ชื่อ river32647
  • ข้อมูล river4326 ประกอบไปด้วย Column [ID],[name],[length],[basin],[subbasin],[the_geom]

ที่จริงในการเรียกใช้งาน สามารถแปลงระบบพิกัดแบบ on-the-fly ได้เลยและแนะนำให้ทำอย่างนั้นเมื่อใช้งานจริง แต่ในที่นี้ลองว่าถ้าต้องการทำแบบนี้ทำได้อย่างไรบ้าง

วิธีการ

  •  SQL Query: SELECT * FROM river4326 WHERE 1=0
    เพื่อ ให้แสดงเฉพาะชื่อ Column จะได้
    | [ID] | [name] | [length] | [basin] | [subbasin] | [the_geom] |
  • สร้าง ตารางขึ้นใหม่ในฐานข้อมูลนั้น ให้ชื่อ river_32647 โดยใช้คำสั่ง SQL
    CREATE TABLE river_32647 as SELECT ID, name, length, basin, subbasin, ST_Transform(ST_SetSRID(the_geom, 4326), 32647) as the_geomFROM river4326
    เป็นการสร้างตาราง river_32647  ขึ้นมาใหม่โดยให้มี column เหมือน river4326 และเปลี่ยน the_geom จากระบบพิกัด Geographic ไปเป็น UTM
  • เลือกตาราง river_32647 ทำการ backup ไว้ให้ชื่อไฟล์ river_32647.backup
  • สร้างฐานข้อมูลให้ เลือกtemplate PostGIS ให้ชื่อฐานข้อมูลใหม่ว่า river32647
  • restore ไฟล์ river_32647 เข้ามาในฐานข้อมูล river32647

นี่เป็นเพียงวิธีการหนึ่งที่ทำได้นะครับ ผมเชื่อว่ามีวิธีที่ง่ายกว่านี้แน่ แต่ยังหาไม่เจอ ท่านในมีคำแนะนำช่วยชี้แนะเพิ่มเติมด้วยครับ
อย่างที่บอกถ้าใช้งานจริงแนะนำให้แปลงระบบพิกัด on-the-fly ดีกว่าง่ายกว่าเยอะเลยและเก็บฐานข้อมูลแค่ชุดเดียวด้วย


Actions

Information

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




%d bloggers like this: