/ * อาจช่วยได้:
Azimuth - pi / 2 เป็นทิศทางออกไปทางด้านนอกของรูปหลายเหลี่ยม RHR:
นี่คือตัวอย่างของ PostGIS คุณสามารถสร้างตาราง bldg117862 โดยใช้คำสั่งที่ท้าย SRID คือ EPSG 2271 (PA StatePlane North Feet) และรูปทรงเรขาคณิตเป็น Multipolygon หากต้องการเห็นภาพใน ArcGIS 10 ให้วางคิวรี / แบบสอบถามย่อยลงในการเชื่อมต่อ Query Layer ไปยัง postgis หลังจากสร้างตาราง bldg117862 * /
- === เริ่มต้นของแบบสอบถาม ===
/ * ข้อความค้นหาด้านนอกให้การวางแนวของ orthogonals ภายนอกและสร้างเส้น orthogonal ภายนอกที่มีความยาวเท่ากันเท่ากับด้านข้างจากจุดกึ่งกลางของด้านข้าง
ทิศทางการหันหน้าที่โดดเด่นจะเป็นผลรวมของความยาวโดยจัดกลุ่มตามทิศทางตามลำดับจากมากไปน้อย * /
เลือก line_id เป็น side_id, ความยาว, องศา (orthoaz) เป็นการวางแนว, st_makeline (st_setsrid (st_line_interpolate_point (geom, .5), 2271), st_setsrid (st_makepoint (st_x (st_line_interpolate_point (geom, .5) orthoaz))), st_y (st_line_interpolate_point (geom, .5)) + (ยาว * (cos (orthoaz)))), 2271)) เป็น geom จาก
- ถัดไปแบบสอบถามย่อยด้านนอกทำให้เส้นจากคู่ชี้ด้านข้างคำนวณ azimuth (orthoaz) ของ orthogonal ภายนอกสำหรับแต่ละเซ็กเมนต์
(SELECT bldg2009gid, line_id, st_length (st_makeline (จุดเริ่มต้น, จุดสิ้นสุด)) :: ตัวเลข (10,2) เป็นความยาว, azimuth (จุดเริ่มต้น, จุดสิ้นสุด), azimuth (จุดเริ่มต้น, จุดสิ้นสุด) - pi () / 2 เป็น orthoaz, st_makeline จุดเริ่มต้นจุดสิ้นสุด) เป็น geom จาก
/ * แบบสอบถามย่อยด้านในสุด - ใช้ generate_series () เพื่อแยกรูปหลายเหลี่ยมของอาคารออกเป็นคู่ 'จุดเริ่มต้น / จุดสิ้นสุดของจุดด้านข้าง - note1 - บังคับกฎทางด้านขวามือเพื่อให้แน่ใจว่าทิศทางทั่วไปของรูปหลายเหลี่ยมด้าน note2 - ตัวอย่างใช้รูปหลายเหลี่ยม สามารถลบได้ * /
(SELECT generate_series (1, npoints (exteriorring (เรขาคณิต (st_forceRHR (geom), 1))) - 1) เป็น line_id, gid เป็น bldg2009gid, pointn (exteriorring (geometryn (st_forceRHR (geom), 1)) npoints (exteriorring (geometryn (st_forceRHR (geom), 1)) - 1)) เป็นจุดเริ่มต้น, pointn (exteriorring (geometryn (st_forceRHR (geom), 1)), generate_series (2, npoints (exteriorring (เรขาคณิต _ (st_forceRHR) ), 1))))) เป็นจุดสิ้นสุดจาก bldg117862) เป็น t1) เป็น t2
- === สิ้นสุดของแบบสอบถาม ===
- คำสั่งสร้าง / แทรกตาราง bldg117862
SET STANDARD_CONFORMING_STRINGS เป็น ON; เลือก DropGeometryColumn ('', 'bldg117862', 'geom'); DROP Table "bldg117862"; เริ่ม; สร้างตาราง "bldg117862" (คีย์หลักอนุกรม gid, "motherpin" varchar (14), "taxpin" varchar (14), "สถานะ" varchar (15), "พื้นที่" ตัวเลข, "prev_area" ตัวเลข, "pct_change" ตัวเลข "picture" varchar (133), "mappage" varchar (6), "sref_gid" int4, "e_address" varchar (19), "a_address" varchar (19), "perim" ตัวเลข, "card" int4, "a_addnum" int4, "e_street" varchar (50), "a_street" varchar (50), "e_hsnum" varchar (10)); เลือก AddGeometryColumn ('', 'bldg117862', 'geom', '2271', 'MULTIPOLYGON', 2); 0106000020DF080000010000000103000020DF080000010000000B0000008C721D6C98AC34415E2C5BB9D3E32541AE56DE17BEAC34410613E5A0A0E325411AB6C794AEAC3441BA392FE372E32541C89C38429DAC3441643857628AE325418C299A9095AC3441F66C29B573E32541983F02087EAC34413080AA9F93E325419BAC3C0A86AC3441AC1F3B3DABE32541803A40B974AC3441E8CF3DB9C2E325413E3758C186AC3441D0AAB0E7F7E325410AAAA5429BAC3441BA971217DCE325418C721D6C98AC34415E2C5BB9D3E32541' ); สร้างดัชนี "bldg117862_geom_gist" ON "bldg117862" โดยใช้ส่วนสำคัญ ("geom" gist_geometry_ops); END;