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

ใช้แท็กนี้เมื่อถามคำถามที่เกี่ยวข้องกับคุณลักษณะที่ทับซ้อนกัน

8
เลือกคุณสมบัติที่ไม่ตัดกันใน PostGIS
ดูเหมือนว่าฉันจะชอบคำถามง่ายๆ (และอาจเป็น) แต่ฉันก็ไม่สามารถหาตัวอย่างที่ให้คำตอบได้ ใช้ PostGIS ฉันแค่ต้องการเลือกจุดที่อยู่นอกรูปหลายเหลี่ยม ท้ายที่สุดนี่คือสิ่งที่ตรงกันข้ามของ ST_Intersects เท่าที่ฉันจะเห็น ตัวอย่าง: ฉันมีเลเยอร์ภาษีและชั้นที่อยู่ ฉันคิดว่าฉันควรใช้ ST_Intersects แต่ฉันจะบอกให้ทำการเลือกแบบย้อนกลับได้อย่างไร ฉันคิดว่าอาจเพิ่มคำสั่งNOTด้านหน้าโค้ดด้านล่าง แต่นั่นไม่ได้ผล CREATE table t_intersect AS SELECT hp.gid, hp.st_address, hp.city, hp.st_num, hp.the_geom FROM public.parcel as par, public.housepoints as hp WHERE ST_Intersects(hp.the_geom,par.the_geom);

4
แยกรูปหลายเหลี่ยมตามการแยกโดยใช้ PostGIS
ฉันมีตารางรูปหลายเหลี่ยมของ PostGIS ซึ่งมีบางจุดตัดกัน นี่คือสิ่งที่ฉันพยายามทำ: สำหรับรูปหลายเหลี่ยมที่เลือกโดย id ให้รูปหลายเหลี่ยมทั้งหมดที่ตัดกัน โดยทั่วไปselect the_geom from the_table where ST_Intersects(the_geom, (select the_geom from the_table where source_id = '123')) จากรูปหลายเหลี่ยมเหล่านี้ฉันต้องสร้างรูปหลายเหลี่ยมใหม่เพื่อให้จุดตัดกลายเป็นรูปหลายเหลี่ยมใหม่ ดังนั้นถ้ารูปหลายเหลี่ยม A ตัดกับรูปหลายเหลี่ยม B ฉันจะได้รูปหลายเหลี่ยม 3 รูปคือ A ลบ AB, AB และ B ลบ AB ความคิดใด ๆ

3
ไม่สนใจคุณสมบัติอินพุตที่ไม่ถูกต้องด้วยเครื่องมือ Intersection ใน QGIS?
ใน QGIS 2.18 เมื่อฉันใช้ Vector> Geoprocessing Tools> เครื่องมือ Intersection ฉันสามารถตรวจสอบตัวเลือกที่กล่าวว่า "Ignore NULL geometries [ไม่จำเป็น]" ตอนนี้ฉันดาวน์โหลด QGIS 3.2 แล้วและไม่มีตัวเลือกนั้นอีกต่อไป แต่เมื่อฉันพยายามสร้างจุดตัดระหว่างสองเลเยอร์ที่ฉันกำลังทำงานอยู่ฉันได้รับข้อความแจ้งว่ามีรูปทรงเรขาคณิตที่ไม่ถูกต้องที่ใดที่หนึ่งและฉันควรแก้ไขหรือ "เปลี่ยนการตั้งค่าการประมวลผลเป็น 'ละเว้นคุณลักษณะอินพุตที่ไม่ถูกต้อง ตัวเลือก '. " แต่ตัวเลือกนั้นไม่มีอยู่จริง! หรือถ้ามันมีอยู่ฉันก็หามันไม่เจอ ไม่มีใครรู้ว่าจะเปลี่ยนแปลงการตั้งค่านี้ใน QGIS 3.2 ได้อย่างไร?

8
กำลังแก้ไขรูปหลายเหลี่ยมที่ทับซ้อนกันขนาดเล็กหรือไม่
ฉันใช้ ArcMap 10.3 ฉันมีชั้นของการใช้ที่ดินประเภทต่าง ๆ ฉันพบว่ารูปหลายเหลี่ยมหลายรูปซ้อนทับกันและเป็นผลให้รูปหลายเหลี่ยมเดียวกันมีสองประเภทการใช้ประโยชน์ที่ดิน ใช้คำตอบของ @ radouxjuฉันสร้างทอพอโลยีสำหรับเลเยอร์การใช้ที่ดิน (ด้วยกฎที่ไม่ทับซ้อนกัน) จากนั้นฉันใช้ผสานเพื่อแก้ไขรูปหลายเหลี่ยมที่ทับซ้อนกันขนาดใหญ่ อย่างไรก็ตามฉันมีรูปหลายเหลี่ยมซ้อนกันขนาดเล็กหลายพัน ฉันสามารถแก้ไขทั้งหมดด้วยตนเองซึ่งจะใช้เวลา มีวิธีที่เร็วกว่าในการแก้ไขข้อผิดพลาดเหล่านี้หรือไม่ ฉันได้อัปเดตแผนที่เพื่อแสดงการใช้ที่ดินทุกประเภทแล้ว รูปหลายเหลี่ยมซ้อนกัน ไม่ slivers

5
การค้นหาว่ารูปหลายเหลี่ยมสองจุดตัดกันใน Python หรือไม่
ฉันกำลังมองหาอัลกอริทึมการแก้ปัญหาระดับสูงหรือแม้แต่ห้องสมุดที่สามารถช่วยฉันพิจารณาว่ารูปหลายเหลี่ยมสองจุดตัดกันใน Python หรือไม่ ฉันมีจุดยอดของรูปหลายเหลี่ยมสองรูป (นี่คือรูปหลายเหลี่ยมส่วนเดียวที่ไม่มีรูใด ๆ ) ในสองอาร์เรย์ที่ต่างกัน รูปหลายเหลี่ยมเป็น 2D (เช่นพิกัด X และ Y) ฉันจะสร้างฟังก์ชั่นซึ่งจะคืนค่าบูลีนโดยระบุว่ารูปหลายเหลี่ยมสองรูปนี้ตัดกันหรือไม่ โปรดทราบว่าฉันไม่สามารถใช้arcpyหรือarcgisส่วนประกอบใด ๆในนี้ คุณสามารถแนะนำอัลกอริทึมหรือไลบรารีสำหรับทำสิ่งนี้ได้หรือไม่?

4
ผสานการตัดรูปหลายเหลี่ยมเป็นส่วนหนึ่งของคุณสมบัติเดียวกัน
ฉันไม่ใช่มืออาชีพ GIS ดังนั้นฉันหวังว่าฉันจะใช้ถ้อยคำที่ถูกต้องอย่างน้อยฉันก็หวังว่าคุณจะเข้าใจคำถามของฉัน สมมติว่ามีรูปหลายเหลี่ยมห้าตัวในคุณสมบัติ A. ในรูปร่างไฟล์มีคุณสมบัติเพิ่มเติม ในคุณสมบัติรูปหลายเหลี่ยมสองรูปจากห้าที่มีอยู่กำลังตัดกัน ฉันต้องการรวมทั้งสองเส้นเพื่อให้เส้นที่ทับซ้อนกันจะถูกลบและผลลัพธ์คือรูปหลายเหลี่ยมเดียว วิธีแก้ปัญหาที่เป็นไปได้จะเป็นดังนี้: ฉันเลือกคุณสมบัติที่ 'เปิดใช้งาน' รูปหลายเหลี่ยมทั้งห้า ฉันเปลี่ยนเป็นโหมดแก้ไข ฉันเลือกจุดของรูปหลายเหลี่ยมสองรูป ฉันใช้ฟังก์ชัน MERGE-SELECTED-POLYGONS จนถึงตอนนี้ฉันพบเฉพาะฟังก์ชันเพื่อรวมออบเจ็กต์ (คุณลักษณะต่างๆ) ผสานรูปร่างไฟล์และอื่น ๆ มีฟังก์ชั่น MERGE-SELECTED-POLYGONS หรือไม่?

2
แยกพื้นที่สี่แยกใน R
ฉันมีรูปหลายเหลี่ยมสองอัน หนึ่งประกอบด้วยเขตข้อมูล (X, Y, Z) และอื่น ๆ ประกอบด้วยชนิดของดิน (A, B, C, D) ฉันต้องการที่จะรู้ว่าสิ่งที่พื้นที่ของทุกเขตข้อมูลมีชนิดของดิน ฉันพยายามต่อไปนี้: library(rgdal) library(rgeos) Field<-readOGR("./","Field") Soil<-readOGR("./","Soil") Results<-gIntersects(Soil,Field,byid=TRUE) rownames(Results)<-Field@data$FieldName colnames(Results)<-Soil@data$SoilType > Results A B C D Z TRUE FALSE FALSE FALSE Y FALSE TRUE TRUE FALSE X TRUE TRUE TRUE TRUE และได้ผลลัพธ์ที่ดีโดยบอกว่าสนามใดมีดินประเภทใด อย่างไรก็ตามฉันจะหาพื้นที่แทนได้อย่างไร

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

3
การระบุทางแยกถนนโดยใช้ PostGIS
ฉันพยายามระบุว่าถนนตัดกันซึ่งกันและกันและหาจุดที่สี่แยกนี้ด้วยจำนวนถนนที่เป็นจุดตัดของรายการ ฉันสงสัยว่ามีวิธีการใช้ST_NumPointsเพื่อให้บรรลุสิ่งนี้หรือไม่ แต่ฉันไม่สามารถเข้าใจได้ว่าฉันควรทำอะไร สิ่งที่ฉันทำคือการสร้างตารางคะแนนที่เส้นตัดกันโดยใช้รหัสต่อไปนี้: CREATE TABLE test_points as SELECT ST_Intersection(a.geom, b.geom), a.gid FROM roads as a, roads as b WHERE ST_Touches(a.geom, b.geom); หากฉันเรียกใช้สิ่งนี้บนถนนตัวอย่างฉันจะได้รับตารางคะแนนต่อไปนี้ (ถนนจะแสดงเพื่อเป็นภาพประกอบ): หากฉันตรวจสอบจุดใดจุดหนึ่งฉันเห็นว่ามีหลายจุดซ้อนกันอยู่ด้านบนของกันและกัน: GID ที่นี่เป็นรหัสถนน แต่ฉันไม่เข้าใจว่าทำไมมีหลายจุด ฉันสามารถเข้าใจ 4 คะแนนที่นับเป็นจุดตัดถนนกลาง แต่มี 12 จุดที่ระบุไว้ที่นี่ มีวิธีที่ดีกว่าในการคำนวณใน PostGIS หรือไม่

6
วิธีการใช้ ST_Intersection
ต่อไปนี้เป็นข้อมูลสรุปโดยย่อเกี่ยวกับสิ่งที่ฉันพยายามทำ: ฉันมี 3 ตารางใน Postgres, 'a' และ 'b', แต่ละอันมีคอลัมน์รูปหลายเหลี่ยมและ 'c' มีคอลัมน์จุด สิ่งที่ฉันพยายามทำที่นี่คือการหาจุดตัดรูปทรงเรขาคณิตระหว่าง 'a', 'b' และ 'c' และเพื่อแสดงรูปทรงเรขาคณิตดังกล่าวบนเลเยอร์เวกเตอร์ของเลเยอร์ OpenLayers ฉันรู้วิธีแสดงรูปทรงเรขาคณิตแบบใด ๆ จากสตริงใน OpenLayers แต่ฉันมีปัญหากับฟังก์ชัน ST_Intersection ของ PostGIS ฉันกำลังทำสิ่งนี้: SELECT ST_Intersection(a.geom, b.geom) as inter from a, b; โดยที่ a.geom และ b.geom เป็นทั้งคอลัมน์รูปทรงเรขาคณิตและฉันได้รับข้อความแสดงข้อผิดพลาดนี้: NOTICE: TopologyException: found non-noded intersection between 515172 2.14408e+06, 497067 2.13373e+06 …

2
คลิปรูปหลายเหลี่ยมและเก็บข้อมูลหรือไม่
ฉันมีรูปหลายเหลี่ยมสองรูปนี้: library(sp); library(rgeos); library(maptools) coords1 <- matrix(c(-1.841960, -1.823464, -1.838623, -1.841960, 55.663696, 55.659178, 55.650841, 55.663696), ncol=2) coords2 <- matrix(c(-1.822606, -1.816790, -1.832712, -1.822606, 55.657887, 55.646806, 55.650679, 55.657887), ncol=2) p1 <- Polygon(coords1) p2 <- Polygon(coords2) p1 <- Polygons(list(p1), ID = "p1") p2 <- Polygons(list(p2), ID = "p2") myPolys <- SpatialPolygons(list(p1, p2)) spdf1 = …

3
สร้างเลเยอร์ใหม่จากการทับซ้อนกันระหว่างสองเลเยอร์?
ฉันใหม่สำหรับเดสก์ท็อป GIS และจะพยายามถามในขณะที่ขาดข้อกำหนดที่เหมาะสมจากศัพท์แสง GIS: หาก QGIS เป็นเหมือน Photoshop ฉันต้องการทำการเลือกจากเลเยอร์หนึ่งจากนั้นจับคู่การเลือกนั้นกับเลเยอร์อื่นเพื่อให้ได้ทับซ้อนระหว่างทั้งสองและสร้างเลเยอร์ใหม่จากการทับซ้อนนี้ สูตรในวิธีอื่น: ฉันต้องการเลือกที่ดินทั้งหมดจากเทศบาลนอร์เวย์แต่ละแห่ง ใน shapefile ฉันมี (คุณสามารถดาวน์โหลดได้ที่นี่: http://www.statkart.no/?module=Files;action=File.getFile;ID=41973 ) เขตเทศบาลพบว่า "N5000_AdministrativGrense" (แค่เส้นขอบ) และ "N5000_AdministrativFlate" (พรมแดนและที่ดินภายในแต่ละเทศบาล) ข้อมูลนี้ (พรมแดนและที่ดินต่อเทศบาล) นั้นมีการจัดการเกินไป - รวมถึงมหาสมุทรและเรามีฟยอร์ดจำนวนมากในนอร์เวย์ ฉันต้องการผืนแผ่นดินลบด้วยมหาสมุทร พบทวีปในเลเยอร์ "N5000_ArealdekkeFlate" - หรืออย่างน้อยก็ดูเหมือนเป็นสามเณร ดังนั้น - ฉันต้องการค้นหาจุดตัดระหว่างทวีป (ที่ดินเท่านั้นไม่มีมหาสมุทร) และเขตเทศบาลและสร้างเลเยอร์ใหม่ที่เป็นเขตเทศบาลทั้งหมดที่ไม่มีมหาสมุทร ฉันใช้ mac ที่มี QGIS เป็นเครื่องมือติดตั้งของฉัน เคล็ดลับคำแนะนำและความช่วยเหลือทั้งหมดได้รับการชื่นชมอย่างมาก

3
การหาจุดหลายเหลี่ยมหลายจุดใน Python อย่างมีประสิทธิภาพ
ฉันอยากได้จุดตัดของรูปหลายเหลี่ยมหลายอัน ใช้shapelyแพ็คเกจของ Python ฉันสามารถหาจุดตัดของรูปหลายเหลี่ยมสองรูปได้โดยใช้intersectionฟังก์ชัน มีฟังก์ชั่นที่มีประสิทธิภาพคล้ายกันเพื่อให้ได้จุดตัดของรูปหลายเหลี่ยมหลายรูปแบบหรือไม่? นี่คือข้อมูลโค้ดเพื่อทำความเข้าใจสิ่งที่ฉันหมายถึง: from shapely.geometry import Point coord1 = ( 0,0 ) point1 = Point(coord1) circle1 = point1.buffer(1) coord2 = ( 1,1 ) point2 = Point(coord2) circle2 = point2.buffer(1) coord3 = ( 1,0 ) point3 = Point(coord3) circle3 = point3.buffer(1) circle1.intersection(circle2)สี่แยกของวงกลมสองวงสามารถพบได้โดย ฉันสามารถหาจุดตัดของทั้งสามวงกลมcircle1.intersection(circle2).intersection(circle3)ได้ อย่างไรก็ตามวิธีนี้ไม่สามารถขายได้กับรูปหลายเหลี่ยมจำนวนมากเนื่องจากต้องใช้รหัสมากขึ้น ฉันต้องการฟังก์ชันที่ใช้รูปหลายเหลี่ยมหลายรูปแบบโดยพลการและคืนค่าจุดตัดของพวกมัน

3
ความแตกต่างระหว่างเครื่องมือคลิปและเครื่องมือตัดกัน
เครื่องมือคลิปแตกต่างจากเครื่องมือตัดในแง่ของวิธีการทำงานหรือผลลัพธ์อย่างไร ฉันไม่มีสถานการณ์ที่เฉพาะเจาะจงในใจ ฉันได้เรียนรู้เกี่ยวกับเครื่องมือเหล่านี้แต่ละคนและอยากรู้ว่าพวกเขาแตกต่างกันอย่างไรเนื่องจากผลลัพธ์ดูเหมือนจะคล้ายกันตั้งแต่แรกเห็น ขอบคุณ!

3
Rgeos จะลดค่าที่เกี่ยวข้องเมื่อทำการตัดกันรูปหลายเหลี่ยม
ฉันพยายามที่จะตัดสอง SpatialPolygonsDataFrames และรับ SpatialPolygonsDataFrame เป็นผลลัพธ์ น่าเสียดายที่การใช้gIntersectionฟังก์ชั่นจากrgeos(ซึ่งทำงานได้อย่างน่าประทับใจอย่างรวดเร็วเพื่อตัดรูปหลายเหลี่ยม) ฉันไม่สามารถเรียกข้อมูลที่เกี่ยวข้องได้ ลองพิจารณาตัวอย่างต่อไปนี้: > fracPoly <- gIntersection( toSingle, fromSingle ) > class(toSingle) [1] "SpatialPolygonsDataFrame" > class(fromSingle) [1] "SpatialPolygonsDataFrame" > class(fracPoly) [1] "SpatialPolygons" ฉันสามารถเขียนฟังก์ชั่น wrapper ที่จัดการการถ่ายโอนdata.framesแต่มันจะเป็นความเจ็บปวดเล็กน้อยที่จะได้รับการตรวจสอบที่ถูกต้องและก่อนที่ฉันจะทำฉันหวังว่าจะมีคนยืนยันว่าไม่มีทางที่ดีกว่าหรือชี้ให้ฉันฟังก์ชั่นอื่น สำหรับgIntersection) ซึ่งจะอนุญาตให้ฉันรักษาความสัมพันธ์data.framesไว้ ปรับปรุง gIntersectionสะท้อนต่อไปนี้อาจอาจจะมีพฤติกรรมเจตนามาก ท้ายที่สุดของ SPDF สองตัวที่มี data.frame คุณผ่านมาได้บ้าง ดังนั้นฉันอาจต้องเขียนเสื้อคลุมที่ผสานทั้งสอง

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