ทำให้เส้นโค้งโดยใช้ QGIS?


10

ฉันมีประสบการณ์ไม่มากนักกับ QGIS และกำลังทำงานบนแผนที่ที่มีสถานที่เชื่อมต่อสายที่สร้างด้วยปลั๊กอิน mmqgis มีวิธีง่าย ๆ ในการทำให้เส้นตรงเหล่านั้นค่อนข้างโค้งเพื่อความสวยงามหรือไม่?

ฉันพยายามที่จะบรรลุสิ่งที่ต้องการแผนที่ด้านล่าง แต่มีฮับหลายแห่ง ฉันได้อ่านคำแนะนำเกี่ยวกับวิธีการทำเช่นนี้กับ PostGIS และเครื่องมือขั้นสูงอื่น ๆ ดังนั้นฉันจึงทำการวิจัยของฉัน (รวมถึงโพสต์อื่น ๆ ที่นี่) และลองใช้ปลั๊กอินหลายอันและฉันขอวิธีแก้ปัญหาง่ายๆเพราะฉันไม่ มีประสบการณ์มาก

ตัวอย่าง


มีวิธีการเลิกทำโค้งขณะแก้ไขหรือเลิกทำจุดที่คุณวางไว้โดยไม่ได้ตั้งใจหรือไม่?
3mm

ยินดีต้อนรับสู่ GIS SE! ในฐานะผู้ใช้ใหม่โปรดอย่าลืมทัวร์สั้น ๆเพื่อเรียนรู้เกี่ยวกับรูปแบบถามตอบที่เน้นไปที่ไซต์นี้ หากคุณมีคำถามโปรดใช้ลิงก์ถามคำถามแทนที่จะโพสต์คำตอบ
Andy

หากคุณมีคำถามใหม่โปรดขอได้โดยคลิกที่ถามคำถามปุ่ม รวมลิงค์ไปยังคำถามนี้หากช่วยระบุบริบท - จากการรีวิว
csk

คำตอบ:


6

หากคุณใช้ QGIS 2.12 หรือใหม่กว่าคุณจะมีเครื่องมือ " เพิ่มสตริงแบบวงกลม " ใน " แถบเครื่องมือดิจิทัล " หรือคุณอาจต้องการลอง " ปลั๊กอิน Spline "

(LHS) เพิ่มเครื่องมือสตริงกลมในระหว่างทำดิจิทัล (RHS) เครื่องมือSplineในระหว่างทำดิจิทัล

digitizing

คุณสามารถดูเพิ่มเครื่องมือสตริงวงกลม (LHS) วาดเส้นวงกลมหรือครึ่งวงกลมในขณะที่เครื่องมือSpline Tool (RHS) สอดแทรกจุดเพื่อให้พอดีกับเส้นของคุณกับเส้นโค้งอิสระ ไม่ว่าคุณจะเลือกแบบไหนคุณก็แค่คลิก 3 คะแนน: จุดเริ่มต้นจุดโค้งและจุดสิ้นสุด

และคุณจะได้รับ:

ผล

มีเครื่องมืออื่น ๆ เช่นCadToolsแต่มันจะน่าตื่นเต้นมากถ้าคุณพบว่าตัวเอง


1
ขอบคุณ ฉันไม่ได้ต้องการสร้างเส้น แต่เพื่อโค้ง (ไม่ใช่ด้วยตนเอง) บรรทัดที่ฉันสร้างด้วย mmqgis ยังไม่ได้มองหาความตื่นเต้นเพียงเพื่อสิ่งที่จะทำให้งานสำเร็จ นั่นเป็นเหตุผลที่ฉันมาที่นี่ดังนั้นความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม! :)
darj

1
ได้แล้วขอบคุณ และขอโทษที่ฉันเข้าใจผิด ตอนนี้ฉันเข้าใจว่าคุณมี Hub Lines ที่สร้างโดยปลั๊กอิน MMQGIS แล้ว
Kazuhito

6

ใช้ลักษณะลูกศรแทนสไตล์เส้นเรียบง่าย

ตัวอย่างเช่นบรรทัดเหล่านี้มีสไตล์ Simple Line:

ป้อนคำอธิบายรูปภาพที่นี่

หน้าตาแบบนี้ด้วยลูกศร:

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถปิดหัวลูกศรโดยการตั้งค่าความกว้างและความยาวหัวเป็น 0

อย่างที่คุณเห็นเส้นตรงจะกลายเป็นลูกศรตรงในขณะที่เส้นที่มีจุดสุดยอดตรงกลางจะกลายเป็นลูกศรโค้ง การวางตำแหน่งของจุดสุดยอดกลางกำหนดเส้นโค้งของลูกศร

ในการแปลงเส้นตรงของคุณเป็นลูกศรโค้งคุณจะต้องเพิ่มจุดสุดยอดกลางให้กับทุกบรรทัดแล้วจึงชดเชยจุดยอดนั้นให้มากพอที่จะสร้างลูกศรโค้งได้

ใช้สไตล์เครื่องสร้างเรขาคณิตกับประเภทเรขาคณิต: Linestring นิพจน์นี้จะสร้างเส้นที่มีจุดกึ่งกลาง 200 ระยะทางไปทางทิศตะวันออกและทิศเหนือของจุดกึ่งกลางดั้งเดิมของเส้น

  make_line( start_point( $geometry), translate( centroid( $geometry), 200,200), end_point($geometry))

เปลี่ยนบรรทัดเพื่อแสดงเป็นสไตล์ลูกศร ปรับค่าการชดเชยเซนทรอยด์ในนิพจน์ตัวสร้างรูปทรงเรขาคณิตจนกว่าคุณจะพอใจกับรูปร่างของลูกศร $length/10ถ้าคุณต้องการคุณสามารถทำให้พวกเขาได้สัดส่วนกับความยาวของสายเดิมเช่น การแสดงออกเต็มรูปแบบจะเป็น:

make_line( start_point( $geometry), translate( centroid( $geometry), $length/10, $length/10), end_point($geometry))

นี่คือสิ่งที่ดูเหมือนกับเส้นเดิมในสีชมพูและลูกศรที่สร้างจากรูปทรงเรขาคณิตในสีดำ:

ป้อนคำอธิบายรูปภาพที่นี่

หากคุณไม่พอใจกับการจัดวางจุดกึ่งกลางบรรทัดคุณสามารถปรับด้วยตนเอง ขั้นแรกให้แปลงรูปแบบเส้นที่สร้างขึ้นทางเรขาคณิตเป็นเลเยอร์จริง คัดลอกนิพจน์จากตัวสร้างเชิงเรขาคณิตลงในgeometry by expressionเครื่องมือ (กำลังประมวลผลกล่องเครื่องมือ) จากนั้นใช้เครื่องมือ Vertex (แถบเครื่องมือการแปลงเป็นดิจิทัล) เพื่อย้ายจุดยอดด้วยตนเอง

หมายเหตุ: คำตอบนี้ทำกับ QGIS 3.4


4

คุณต้องทำขั้นตอนต่อไปอีก: (ฉันมีภาษาดัทช์ดังนั้นหากไม่ใช่คำแปลที่ถูกต้องขออภัย) เช่นเดียวกับ @bugmenot ทำ แต่จากนั้นเลือกFillอีกครั้งและเปลี่ยนจาก Symbol Layer Type Standard Fillเป็น: 'Rand / Edge?: Arrow ฉันได้ทำการเติม coloureffect ทีละน้อย [geleiddelijke vulling] ใน 'Fill' สุดท้าย หวังว่ามันจะช่วย ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณ! เป็นไปได้ไหมที่จะปรับมุมของเส้นโค้งเพื่อให้แบนเหมือนในภาพที่ฉันโพสต์?
darj

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