2016-02-04 210 views
1

我的線條正在連接,儘管我沒有將它們設置爲多邊形。Pyshp:PolyLineZ繪圖在我的線條之間繪製線條

我基於我的腳本pyshp包。

我的劇本是這樣的:

w=Shapefile.Writer() 
#shapetype 11 is a polylineZ 
w.poly(parts=[listOfCoordinates], shapeType = 11) 
w.record(this,and,that) 
w.save(file) 

的問題是,當我產生多聚的QGIS我打開它們在吸引它們之間的線。 實施例:

一條線從A轉到B.

另一條線由C變爲d

出於某種原因QGIS平B和C.我認爲這具有與做之間的線形狀文件的pyshp處理。更具體的'bbox'字段,它爲每個形狀設置線索。

該解決方案將使B和C之間的界線消失。

回答

2

您可能沒有正確嵌套部件列表。我假設你正在嘗試創建一個多部分polylineZ shapefile,其中的行共享一個dbf記錄。此外,polylineZ類型實際上是13而不是11.

以下代碼創建兩個形狀文件,每個文件有三條平行線。在這個例子中,我並不打擾Z座標。第一個shapefile是一個多部分,我假設你正在創建。第二個shapefile爲每行提供自己的記錄。兩者都使用相同的線條几何形狀。

import shapefile 

# Create a polylineZ shapefile writer 
w = shapefile.Writer(shapeType = 13) 
# Create a field called "Name" 
w.field("NAME") 
# Create 3 parallel, 2-point lines 
line_A = [[5, 5], [10, 5]] 
line_B = [[5, 15], [10, 15]] 
line_C = [[5, 25], [10, 25]] 
# Write all 3 as a multi-part shape 
# sharing one record 
w.poly(parts=[line_A, line_B, line_C]) 
# Give the shape a name attribute 
w.record("Multi Example") 
# save 
w.save("multi_part") 

# Create another polylineZ shapefile writer 
w = shapefile.Writer(shapeType = 13) 
# Create a field called "Name" 
w.field("NAME") 
# This time write each line separately 
# with its own dbf record 
w.poly(parts=[line_A]) 
w.record("Line A") 
w.poly(parts=[line_B]) 
w.record("Line B") 
w.poly(parts=[line_C]) 
w.record("Line C") 
# Save 
w.save("single_parts")