การแปลงจากเรขาคณิต 3 มิติเป็น 2 มิติ


12

ฉันมีตารางจุดที่คอลัมน์รูปทรงเรขาคณิตมีค่าทั้ง 3 มิติและ 2 มิติฉันต้องการแปลงรูปทรงเรขาคณิต 3 มิตินี้เป็น 2 มิติมีฟังก์ชั่นใดบ้างใน PostGIS โปรดช่วยฉันแก้ปัญหานี้ด้วย

ขอแสดงความนับถือ Sreesha.TA


ฉันต้องการใช้ ST_Force2D แต่มีข้อความว่า: function st_force2d (เรขาคณิต) ไม่มีอยู่คุณมีความคิดใด ๆ ขอบคุณ Laszlo
Laszlo

คำตอบ:


15

http://postgis.net/docs/manual-2.0/ST_Force_2D.html

เลือก ST_Force_2D (the_geom) จาก ...

อัปเดตตารางที่มีอยู่ของคุณ

 
ALTER TABLE your_geo_table ADD geom2d geometry;
UPDATE your_geo_table SET geom2d = ST_Force_2D(the_geom);

ดูเพิ่มเติมที่http://postgis.net/docs/


1
ใช้แทนST_Force2D ลายเซ็นถูกคัดค้านใน 2.1.0 ST_Force_2dST_Force_2d
jgrocha

9

หากคุณไม่ต้องการเพิ่มคอลัมน์ใหม่คุณสามารถทำสิ่งต่อไปนี้ได้:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(YOUR_GEOM_TYPE, YOUR_EPSG) 
    USING ST_Force_2D(geom);

ตัวอย่างเช่น:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) 
    USING ST_Force_2D(geom);

ฉันได้ลองคำแนะนำนี้ในฐานข้อมูลที่ฉันมี (ในกรณีของฉันฉันมีปัญหาที่คล้ายกัน แต่ฉันต้องการบังคับให้คะแนนเป็น 3D) แต่ฉันได้รับข้อผิดพลาดนี้: ข้อผิดพลาด: ฟังก์ชัน st_force_3d (ภูมิศาสตร์) ไม่มี LINE 3 : การใช้ ST_Force_3D (geom); ^ คำแนะนำ: ไม่มีฟังก์ชันที่ตรงกับชื่อและประเภทอาร์กิวเมนต์ที่กำหนด คุณอาจต้องเพิ่มประเภทการส่งแบบชัดแจ้ง ********** ข้อผิดพลาด ********** ข้อผิดพลาด: ฟังก์ชัน st_force_3d (ภูมิศาสตร์) ไม่มีสถานะ SQL: 42883 คำแนะนำ: ไม่มีฟังก์ชันที่ตรงกับชื่อและประเภทอาร์กิวเมนต์ที่กำหนด คุณอาจต้องเพิ่มประเภทการส่งแบบชัดแจ้ง ตัวละคร: 89
Andrea Grandi

ฉันเดาว่าเป็นเพราะ ST_Force3D ทำงานกับประเภทเรขาคณิตและไม่ใช้กับประเภทภูมิศาสตร์
โทมัส B
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.