วิธีการมองเห็นค่าการวัดตาม linestrings ใน QGIS


12

ฉันมีรูปทรงเรขาคณิตของ LineStringM ค่าการวัดแสดงถึงความลาดชัน (หรือการไล่ระดับสีของกระแสน้ำ) ที่แต่ละจุดในเรขาคณิต ฉันชอบตัวเลือกการจัดแต่งทรงผมที่แข็งแกร่งของ QGIS แต่ฉันไม่สามารถหาวิธีที่จะทำให้ค่าการวัดแต่ละค่าไปตามการเคลื่อนไหวของฉัน เป็นการดีที่ฉันจะมีสีฟ้าสำหรับการไล่ระดับสีช้าและสีแดงสำหรับการไล่ระดับสีที่สูงชันมาก

เพื่อช่วยให้เข้าใจสิ่งที่ฉันพยายามทำให้สำเร็จสมมติว่าเราได้ใช้การอ้างอิงเชิงเส้นเพื่อเข้ารหัสความยาวของ LinestringM ที่ผ่านมาจนถึงค่าการวัดของแต่ละจุด ที่ด้านบนสุดคุณจะมี 1.0 และที่ด้านล่างคุณจะได้ 0.0 ฉันได้เพิ่มภาพสิ่งที่ฉันหวังว่าจะทำให้สำเร็จด้านล่าง ฉันทำสิ่งนี้ใน Paint.NET ดังนั้นมันจึงเป็นแค่เรื่องจำลอง ป้อนคำอธิบายรูปภาพที่นี่ เชื่อมโยงโดยตรงกับภาพ

คุณจะทำสิ่งนี้ให้สำเร็จใน QGIS ได้อย่างไร?


หากรูปทรงเรขาคณิตของคุณเป็น LineString และไม่ใช่ MultiLineString ฉันไม่เห็นอุปสรรคสำหรับการจำแนกประเภทที่เหมาะสมโดยใช้ฟิลด์ที่มีค่าความชัน คุณสามารถเพิ่มข้อมูลเพิ่มเติม - ปัญหาของคุณคืออะไร?
SS_Rebelious

1
นี่เป็นคำถามที่เฉพาะเจาะจงกับ QGIS ซึ่งชื่อไม่ได้สะท้อนอีกต่อไป ใน QGIS ฉันจะแสดงค่าการวัด (โดยธรรมชาติในประเภท LinestringM) ได้อย่างไร แอททริบิวจะปรากฏขึ้นได้อย่างง่ายดาย (เช่นชื่อของรูปทรงเรขาคณิต ID ของมันเป็นต้น) อย่างไรก็ตาม LinestringM นั้นทำมาจากหลาย ๆ จุดและแต่ละจุดอาจมีค่าการวัด ฉันไม่เห็นวิธีที่จะทำให้สีของสีสว่างขึ้นด้วยค่าการวัดตามเส้นทางของมัน
ยืนเวลา

@standers เนื่องจากคุณรวมPostGISแท็กคำถามนั้นไม่จำเป็นต้องเฉพาะเจาะจงกับ QGIS เนื่องจากคุณสามารถจำแนก M- ค่าและการถ่ายโอนข้อมูลของคุณไปยังชิ้นส่วนเรขาคณิตที่แยกจากกันได้จาก PostGIS ฉันคิดว่าการเลือกไข่ปลา
Scro

@Scro ขอบคุณสำหรับหัวขึ้น ฉันจะแยกแยะในแท็กของฉันมากขึ้น ดังที่ได้กล่าวมาอินสแตนซ์ QGIS ของฉันกำลังอ่านจาก PostGIS DB ของฉันและฉันพร้อมที่จะทำสิ่งที่แปลงใน PostGIS ที่จำเป็นต่อการมองเห็น LinestringM ของฉัน ฉันหวังว่าแท็กของฉันจะสมเหตุสมผลมากขึ้นและฉันต้องขออภัยในความสับสน
ยืนอยู่

เพื่อความชัดเจนฉันไม่ได้วิจารณ์แท็ก (หรือเลย) ชี้ให้เห็นว่าแท็กนั้นมีความครอบคลุมมากกว่าชื่อเรื่องและคุณอาจได้รับคำตอบที่ดีขึ้นโดยไม่ทำให้เป็นคำถาม QGIS เท่านั้น
Scro

คำตอบ:


9

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

ในแนวตั้งเราต้องรับมือกับความท้าทายที่ยังไม่มีสไตล์การไล่ระดับสี ...

แต่มีการเติมการไล่ระดับสีหลายเหลี่ยม ดังนั้นเราสามารถบัฟเฟอร์บรรทัดและจัดรูปแบบบัฟเฟอร์ เป็นแบบฝึกหัดในการกำหนดข้อมูลที่กำหนดแม้ว่า :

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


สิ่งเหล่านี้จะไม่ถูกสอดแทรกอย่างราบรื่นในขอบเขตทั้งหมด - มันจะเป็นจุดคงที่ที่ถูกระบายสีด้วยแอตทริบิวต์จาก ST_M () เนื่องจากฉันต้องการความช่วยเหลือในการแสดงภาพผลลัพธ์คำตอบนี้จึงน่าจะดีที่สุด ฉันสามารถปลดปล่อยทักษะ photoshop ภายในของฉันและค้นหาการผสมผสานโหมดผสมผสานที่น่าสนใจระหว่างเลเยอร์ LinestringM และเลเยอร์คะแนน ดูเหมือนจะไม่มีวิธีใช้การวัดค่าเพื่อดำเนินการบางอย่างที่คล้ายกับภาพการไล่ระดับสีสตรีมใน QGIS (ทันที)
ยืนขึ้น

@underdark อยากรู้อยากเห็นหาก QGIS นำรูปแบบการไล่ระดับสีตามที่คุณคาดหวังไว้ในโพสต์บล็อกของคุณ: anitagraser.com/2015/01/11/a-line-gradient-style-hackฉันไม่พบอะไรเลย
Jon

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