คำถามติดแท็ก linestring

ลำดับของพิกัดจุดที่อ้างถึงส่วนของเส้นที่เชื่อมต่อซึ่งใช้เพื่อแสดงคุณลักษณะหรือวัตถุหนึ่งมิติ

2
วาดเส้นหยักเป็นลอนใน QGIS?
มีฟังก์ชั่นหรือปลั๊กอิน QGIS เพื่อวาดเส้น wiggly หรือไม่? ฉันใช้เครื่องมือ Spline เพื่อวาดคลื่นด้วยตนเอง แต่ใช้เวลานาน ถ้าเป็นไปได้ฉันต้องการวาดสิ่งที่ชอบ: Inkscape Function Plotter ( sin(x)เส้นโค้ง)

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

3
จะสร้างบรรทัดเพื่อให้เห็นความแตกต่างระหว่างคุณลักษณะรูปหลายเหลี่ยมใน PostGIS ได้อย่างไร
ฉันมีตาราง PostGIS polygon_bพร้อมคุณสมบัติรูปหลายเหลี่ยม นอกจากนี้ยังมีตารางpolygon_aที่มีรูปหลายเหลี่ยมเหมือนกันpolygon_bแต่มีการเปลี่ยนแปลงเล็กน้อย ตอนนี้ฉันต้องการสร้างเส้นเพื่อให้เห็นความแตกต่างระหว่างคุณลักษณะรูปหลายเหลี่ยม ฉันคิดว่าST_ExteriorRingและST_Differenceจะทำงาน แต่ประโยคที่ดูเหมือนว่าจะค่อนข้างยุ่งยาก CREATE VIEW line_difference AS SELECT row_number() over() AS gid, g.geom::geometry(LineString, yourSRID) AS geom FROM (SELECT (ST_Dump(COALESCE(ST_Difference(ST_ExteriorRing(polygon_a.geom), ST_ExteriorRing(polygon_b.geom))))).geom AS geom FROM polygon_a, polygon_b WHERE -- ? ) AS g; มีใครช่วยฉันบ้าง แก้ไข 1 ตามที่โพสต์โดย 'เอียง' ฉันได้ลองแล้วST_Overlaps(polygon_a.geom, polygon_b.geom) AND NOT ST_Touches(polygon_a.geom, polygon_b.geom)แต่ผลลัพธ์ไม่เป็นไปตามที่คาดไว้ CREATE VIEW line_difference AS …

1
วิธีดูว่ามีการเปลี่ยนแปลงบรรทัดใดใน Shapefile ที่อัปเดตแล้ว
ฉันใช้ข้อมูล GIS ของเคาน์ตีเพื่ออัพเดทถนนใน OpenStreetMap ฉันมีสำเนาที่พวกเขาตีพิมพ์เมื่อปีที่แล้วและฉบับที่เพิ่งเผยแพร่และฉันต้องการค้นหา LineStrings ทั้งหมดที่มีคุณสมบัติหรือรูปทรงเรขาคณิตของพวกเขาเปลี่ยนไป สิ่งนี้จะช่วยฉันในการทำให้แน่ใจว่าถนนสายใหม่และถนนที่ได้รับการดัดแปลงนั้นได้รับการอัพเดตใน OpenStreetMap ฉันต้องการทำสิ่งนี้โดยใช้ซอฟต์แวร์ FOSS เช่น QGIS หรือ Python / OGR กลุ่มถนนควรมีตัวระบุที่ไม่ซ้ำกันดังนั้นความคิดเดียวของฉันคือการเขียนสคริปต์ Python ที่เปิดทั้งสอง Shapefiles ค้นหากลุ่มใด ๆ ในใหม่ที่ไม่ได้อยู่ในกลุ่มเก่า (เพิ่มกลุ่ม) และกลุ่มย้อนกลับ (ลบกลุ่ม) แล้ววนซ้ำคู่ที่ตรงกันเพื่อเปรียบเทียบพิกัดที่เป็นส่วนประกอบเพื่อดูว่ามีอะไรเปลี่ยนแปลงหรือไม่ นี่เป็นวิธีที่ดีหรือไม่? มีวิธีที่ง่ายกว่า?

1
กำลังแปลงรูปหลายเหลี่ยมเป็น linestring ใน QGIS?
ฉันมีรูปหลายเหลี่ยมนำเข้าจาก Shapefile ใน QGIS ฉันต้องการแปลงเป็น linestring แทนเพื่อให้ฉันสามารถบันทึกเป็นไฟล์ GPX ในภายหลัง ฉันจะแปลงรูปหลายเหลี่ยมเป็น linestring ใน QGIS ได้อย่างไร?

2
จัดกลุ่มการเชื่อมต่อที่เชื่อมต่อกันใน PostGIS?
ฉันมีตารางถนนที่ฉันเลือกโดยอิงจากชุดของคุณลักษณะ (สมมติว่าเป็นspeed_limit < 25) มีกลุ่มถนนที่ต่อเนื่องกันในท้องถิ่น ฉันต้องการจัดกลุ่มชุดการเชื่อมต่อเหล่านี้เป็น GeometryCollections ในภาพด้านล่างจะมี GeometryCollections สองอัน: อันหนึ่งมีเส้นสีแดงและอีกเส้นที่มีเส้นสีฟ้า ฉันพยายามเรียกใช้คำค้นหา "ละลายยุบรวม" สองสามบรรทัดตาม: SELECT (ST_Dump(st_union)).geom FROM (SELECT ST_Union(geom) FROM roads) sq ด้วยทุกสิ่งที่ฉันได้ลองฉันจะลงเอยด้วยฟีเจอร์เดียว ( ST_Union) หรือเรขาคณิตดั้งเดิมของฉัน ( ST_DumpจากST_Union) อาจเป็นไปได้ที่จะทำเช่นนี้ด้วยWITH RECURSIVEเวทมนตร์บางชนิด?

2
ฉันจะส่งออก linestring ไปยังไฟล์ GPX ใน QGIS ได้อย่างไร?
ฉันมีแสงในเลเยอร์เวกเตอร์ใน QGIS ฉันจะเปิดเผย / บันทึก linestring นี้เป็นไฟล์ GPX ได้อย่างไร ฉันพยายามเลือก linestring จากนั้นคลิกขวาบนเลเยอร์เวกเตอร์และเลือก "บันทึกการเลือกเป็น ... " จากนั้นฉันเลือกรูปแบบ GPX และบันทึกไว้ แต่ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: การส่งออกเป็นไฟล์เวกเตอร์ล้มเหลว ข้อผิดพลาด: การสร้างฟิลด์ code_06 ล้มเหลว (ข้อผิดพลาด OGR: ฟิลด์ชื่อ 'code_06' ไม่ได้รับการสนับสนุนใน GPX schema ใช้ตัวเลือกการสร้าง GPX_USE_EXTENSIONS เพื่ออนุญาตการใช้องค์ประกอบ) ไฟล์ GPX ถูกสร้างขึ้น แต่ไม่มีพิกัด มีการตั้งค่าใดที่ฉันควรทำเพื่อหลีกเลี่ยงข้อผิดพลาดนี้หรือไม่? ฉันจะส่งออก linestring ไปยังไฟล์ GPX ใน QGIS ได้อย่างไร?
11 qgis  export  linestring  gpx 

2
QGIS แยกโหนดที่มีค่า M สำหรับอ้างอิงเชิงเส้น
ฉันมีชั้น MultiLineStringZM ในฐานข้อมูล sqlite และฉันพยายามที่จะเห็นภาพการวัดหรือค่า m ที่จุดสุดยอด ฉันได้ลองค้นหาข้อมูลเกี่ยวกับวิธีการทำสิ่งนี้ใน QGIS และสิ่งที่ฉันสามารถรวบรวมได้คือสิ่งนี้ไม่สามารถทำได้โดยตรงจากเลเยอร์ linestring และจุดนั้นต้องแยกออกเป็นเลเยอร์อื่น ฉันใช้Vector-> Geometry Tools-> Extract nodesเพื่อสร้างชั้นหลายจุดที่เป็นจุดสุดยอดของชั้น multlinestring ของฉัน แต่กระบวนการสูญเสียค่า m ของจุดยอด ฉันต้องการ m-values ​​ที่เก็บรักษาไว้โดยการบันทึก m-value เป็นคุณลักษณะของจุดหรืออย่างอื่น? ภายในเรามีเครื่องมือบรรทัดคำสั่งที่แปลง linestrings เป็น shapefile จุดด้วยค่า m ที่เก็บไว้เป็นแอตทริบิวต์ในแต่ละจุดและฉันใช้มันเพื่อตรวจสอบว่ามีค่า m- กำหนดให้กับจุดยอดและฉันสามารถใช้ ถ้าฉันต้องทำ แต่ถ้าเป็นไปได้มันจะดีถ้าทำสิ่งนี้ได้โดยตรงภายใน QGIS แก้ไข - ทำซ้ำสิ่งที่ฉันได้กล่าวข้างต้น แต่เน้นความจริงที่ว่าเรามีเครื่องมือบรรทัดคำสั่งที่สามารถบรรลุผลลัพธ์ที่ฉันกำลังมองหาที่ใช้ไลบรารี GDAL ดังนั้นวิธีแก้ปัญหาแสดงคำตอบเพียงบางส่วนใน PyQGIS ไม่ใช่คำตอบที่ฉันกำลังมองหา ฉันกำลังมองหาเครื่องมือในตัวปลั๊กอินที่พร้อมสำหรับ QGIS หรือสคริปต์ที่สมบูรณ์ที่สามารถแยก …

2
PostGIS - รับจุดภายในเส้นหรือรูปหลายเหลี่ยม
ฉันต้องได้รับจุดศูนย์กลางของเส้นหรือรูปหลายเหลี่ยมเพื่อให้markerแอปของฉัน ดังนั้นเมื่อคุณคลิกที่เครื่องหมายเรขาคณิตจะปรากฏขึ้น (เส้นหรือรูปหลายเหลี่ยม) ฉันเคยST_Centroidทำให้มันใช้งานได้ ผลที่ได้คือสิ่งที่ฉันคาดไม่ถึงว่ามีรูปหลายเหลี่ยมหรือเส้นที่เซนทรอยด์อยู่นอกรูปเรขาคณิต สิ่งที่ฉันต้องการสำหรับเส้นเหล่านั้นหรือรูปหลายเหลี่ยมคือการได้รับ "จุดกึ่งกลางที่สุด" แต่ภายในเรขาคณิต ฉันจะทำสิ่งนี้ได้อย่างไร มีวิธีแก้ไขไหม?

2
วิธีเพิ่มจุดยอดนิยมไปยัง linestrings ที่มีอยู่
ถ้าฉันมี Linestring(1 2, 1 5, 1 9) และ Point(1 3) มีฟังก์ชั่นใด ๆ ที่สามารถรวมการคืนค่าและการเก็บรักษาจุดของคำสั่งเอาท์พุทดังนั้นจะเป็น: Linestring(1 2, 1 3, 1 5, 1 9)

4
วิธีดึง POINT จาก [LINE | MULTILINE] STRING
ฉันต้องการสร้าง vectorLayer QGISเพื่อแสดงจุดทั้งหมดที่เป็นแบบฟอร์มLINESTRINGหรือMULTILINESTRINGเก็บไว้ในPostGISฐานข้อมูล ฉันคิดว่าฉันต้องการที่จะเปลี่ยนทุกจุดของLINESTRING(หรือMULTILINESTRING) POINTเพื่อ คำถามแรก : มีPostGISฟังก์ชั่นที่จะทำเช่นนั้น? คำถามที่สอง : หากฉันต้องการแยกคะแนนที่ซ้ำกันออกจากPOINTตารางผลลัพธ์ฉันจะทำอย่างไร

3
วิธีการแปลงไอโซลีนเป็นไอโซโทปกอนด้วยโพสต์จิส?
ฉันมีตารางหนึ่งตารางของ isolines ที่กำหนดไว้ดังนี้: CREATE TABLE myisolines ( gid serial NOT NULL, isotime timestamp without timezone, val numeric(10,4), geom geometry(LineString,4326) ); เห็นวัตถุ linestring นี้มีลักษณะดังนี้: ฉันรู้ขอบเขตของข้อมูลของฉันดังนั้นฉันสามารถเพิ่ม Bbox ได้ดังนั้น LineStrings จึงสามารถปิดได้ ฉันต้องการสร้างตารางของ isopolygons myisopolygonsจากmyisolinesตารางที่มีรูปหลายเหลี่ยมที่จะไม่ทับซ้อนกัน แต่สร้างพื้นผิวต่อเนื่องและมีคอลัมน์ที่valมีvalisolines ต่ำสุดซึ่งเป็นรูปหลายเหลี่ยมที่เกิดขึ้น ฉันเข้าใจว่ามันสามารถเกิดขึ้นได้จากตัวแยกไอโซ (เกาะ) หรือไอโซที่ปิดด้วย bbox ในกรณีนั้นvalควรนำมาจากไอโซนั้น มองเห็นควรมีลักษณะดังนี้: ฉันคิดว่าฉันสามารถสร้างโทโพโลยีแล้วเปลี่ยนรูปใบหน้าเป็นรูปหลายเหลี่ยมได้ แต่ฉันไม่เข้าใจวิธีการทำอย่างถูกต้อง สิ่งนี้สามารถทำได้? อีกทางเลือกหนึ่งคือการใช้ฟังก์ชั่นความแตกต่างระหว่าง bbox และรูปหลายเหลี่ยมที่สร้างขึ้นซ้ำ ๆ แต่ฉันคิดว่านั่นไม่ใช่วิธีที่ถูกต้องที่จะทำและไม่เร็วเลย

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