ฉันพยายามถ่ายสองบรรทัดโดยใช้ Shapely / Geopandas แต่ผลลัพธ์ของการจัดเรียงนั้นแปลกมาก ฉันเหนื่อย :
import geopandas as gpd
from shapely.geometry import *
from shapely.ops import snap
lines1 = gpd.GeoDataFrame.from_file('lines1.shp')
lines1 = lines1.to_crs({'init': 'epsg:2227'})
lines2 = gpd.GeoDataFrame.from_file('lines2.shp')
lines2 = lines2.to_crs({'init': 'epsg:2227'})
res = lines1
lines2_union = lines2.geometry.unary_union
res.geometry = res.geometry.apply(lambda x: snap(x, lines2_union, 14))
res.to_file('result.shp', driver="ESRI Shapefile")
และได้รับผลลัพธ์นี้:
lines1 = เส้นสีแดง
lines2 = เส้นสีดำ
หลังการจัดชิด (ด้วยความอดทน 14 ข้อ): เส้นสีน้ำเงินเป็นผลมาจากการจัดระยะ
ในกรณีนี้เส้นจะถูกจัดชิดอย่างถูกต้อง
อีกตัวอย่างหนึ่งที่ไม่สามารถทำงานได้ตามที่คาดไว้: (ก่อนการจัดระยะ)
และนี่คือผลลัพธ์หลังจากหักมุม มีเพียงส่วนเดียวเท่านั้นที่ถูกจัดชิดกับเส้นสีดำ (ด้านใต้) ถึงแม้ว่าเส้นเดิมจะค่อนข้างใกล้เคียงและภายใน 14 ฟุต
หากฉันเพิ่มความคลาดเคลื่อนที่ฉันได้รับเอาต์พุตผิด ๆ บางอย่างเช่นนี้ (หลังจากกำหนด 20 ว่าเป็นความอดทนของการจัดชิดเส้นสีเขียวคือผลลัพธ์):
ความคิดเห็นใด ๆ เกี่ยวกับสาเหตุที่การจัดเรียงทำงานไม่ถูกต้อง ข้อเสนอแนะเกี่ยวกับวิธีการแก้ปัญหานี้?