首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyshp: PolyLineZ在我的线条之间画线

Pyshp: PolyLineZ在我的线条之间画线
EN

Stack Overflow用户
提问于 2016-02-04 14:50:43
回答 1查看 484关注 0票数 1

我的线是连接的,尽管我还没有把它们设置成多边形。

我的脚本是基于pyshp包的。

我的剧本是这样的:

代码语言:javascript
复制
w=Shapefile.Writer()
#shapetype 11 is a polylineZ
w.poly(parts=[listOfCoordinates], shapeType = 11)
w.record(this,and,that)
w.save(file)

问题是,当我生成多个Poly‘draws时,我会在它们之间画一条线来打开它们。示例:

一行从A到B。

另一条线从C到D

出于某种原因,Qgis在B和C之间划了一条线,我认为这与shapefile的pyshp处理有关。更具体的是“bbox”字段,它为每个形状设置边界。

解决方案将使B和C之间的界限消失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-05 16:04:32

您可能没有正确地嵌套部件列表。我假设您正在尝试创建一个多部分的polylineZ shapefile,其中各行共享一个dbf记录。另外,polylineZ类型实际上是13,而不是11。

下面的代码创建两个形状文件,每个文件有三条平行线。在本例中,我不需要使用Z坐标。第一个shapefile是一个多部分的文件,就像我假设您正在创建的那样。第二个shapefile为每一行提供自己的记录。两者都使用相同的线条几何图形。

代码语言:javascript
复制
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")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35204171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档