วิธีการบัฟเฟอร์บรรทัดที่มีระยะทางต่างกันสำหรับด้านซ้าย / ขวา


14

ฉันจะบัฟเฟอร์บรรทัดใน QGIS โดยใช้หนึ่งคุณลักษณะสำหรับด้านซ้ายของบรรทัดและหนึ่งคุณลักษณะสำหรับด้านขวาของบรรทัดได้อย่างไร ฉันพยายามที่จะบัฟเฟอร์แม่น้ำที่มีความกว้างฝั่งซึ่งแตกต่างกันในด้านขวาและด้านซ้าย


คุณเคยลองใช้ JTS buffer จาก QGIS หรือไม่? lin-ear-th-inking.blogspot.it/2010/11/…
julien

คำตอบ:


8

การกำหนดด้านข้างของเส้นตรงไปข้างหน้าบนพื้นผิวที่ปรับทิศทางได้ซึ่งระนาบ 2D ใน GIS คือ หากคุณกำหนดจุดเริ่มต้นและจุดสิ้นสุดของบรรทัดคุณสามารถกำหนดด้าน "ซ้าย" และ "ขวา" ได้อย่างชัดเจน นี่คือกรณีแม้ว่าเส้นตัดกันเอง

จากมุมมองที่ใช้งานได้จริงเวิร์กโฟลว์ง่าย ๆ สำหรับการสร้างบัฟเฟอร์ด้านเดียวประกอบด้วยบัฟเฟอร์มาตรฐานการดำเนินการที่แตกต่างจากนั้นก็ใช้การตัด นี่คือตัวอย่าง

เริ่มต้นด้วยการสร้างรูปหลายเหลี่ยมที่รวมหรือทับซ้อนกันอย่างแม่นยำในบรรทัดของคุณ เพื่อให้บัฟเฟอร์อยู่ทางด้านขวาของบรรทัดภายในของรูปหลายเหลี่ยมควรอยู่ทางซ้าย โปรดทราบว่าหากบรรทัดของคุณตัดกันตัวเองก็จะไม่ทำงานตามที่ต้องการและคุณอาจต้องวาดรูปหลายเหลี่ยมเพื่อที่จะไม่ข้ามตัวเองหรือเส้นของคุณ ใช้การดำเนินการบัฟเฟอร์กับรูปหลายเหลี่ยมนี้ การใช้ปลั๊กอิน fTools ไปที่เครื่องมือประมวลผลเชิงพื้นที่> บัฟเฟอร์

รูปหลายเหลี่ยม

ใช้การดำเนินการที่แตกต่างกันเครื่องมือการประมวลผลทางภูมิศาสตร์> ความแตกต่างโดยมีบัฟเฟอร์เป็นชั้นข้อมูลเข้าและรูปหลายเหลี่ยมดั้งเดิมเป็นชั้นความแตกต่างตัดออกด้านใน ตอนนี้คุณมีบัฟเฟอร์ด้านขวา

บัฟเฟอร์รูปหลายเหลี่ยม

สิ่งที่เหลืออยู่คือการคลิปส่วน "พิเศษ" ของรูปหลายเหลี่ยม เครื่องมือการประมวลผลทางภูมิศาสตร์> คลิป

คลิปรูปหลายเหลี่ยม บรรทัดสุดท้าย


1

นี่เป็นคำถามที่น่าสนใจมากซึ่งฉันเชื่อว่าไม่ใช่เรื่องง่ายที่จะแก้ไข ฉันเจอสคริปต์สำหรับ ArcMapซึ่งให้โซลูชันที่เป็นเอกสารอย่างดีซึ่งครอบคลุมโค้ด VB 500 บรรทัด อย่างไรก็ตามฉันไม่ทราบถึงสคริปต์หรือโมดูลที่เทียบเท่าใน QGIS

หนึ่งในข้อควรพิจารณาที่สำคัญในบัฟเฟอร์แบบอสมมาตรคือทิศทางการไหลของเส้นเพื่อให้คุณสามารถกำหนดด้านซ้ายและขวา ในกรณีของแม่น้ำสิ่งนี้ควรตรงไปตรงมาเพื่อคำนวณว่าคุณมี DEM ประกอบหรือไม่

อาจเป็นไปได้ที่จะสร้างสคริปต์ qgis รอบ ๆ ตรรกะของสคริปต์นี้ แต่ต้องใช้จำนวนมาก


1
ใน ArcMap มันง่ายมากที่จะประสบความสำเร็จ ในกล่องโต้ตอบเครื่องมือคุณมีพารามิเตอร์Side Typeซึ่งสามารถเป็นซ้ายหรือขวาก็ได้ และFieldคุณมีพารามิเตอร์ ดังนั้นการเขียนสคริปต์เครื่องมือนี้ช่วยให้คุณสามารถใช้ค่าที่แตกต่างกันสำหรับทั้งสอง ฉันเพิ่งทำสิ่งนี้ (ดูคำถามของฉันที่นี่ )
LarsVegas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.