在距shapefile一部分的线特定距离处创建平行线


11

我正在使用QGIS 2.18。我有shapefile,其中包含多行。在处理了某些数据处理之后,我需要在距现有线不同距离处绘制平行线。例如,我在现有shapefile中有32行。我想在距线号为50、100、170、500,400处绘制平行线。一口气拿到3,6,20,25,31。QGIS中是否有任何方法或插件可以做到这一点?

Answers:


6

您可以使用QAD插件,该插件在QGIS中提供类似于CAD的命令。

它仅适用于“投影坐标系”(因此,您需要在使用数据之前先对其进行投影)和启用的编辑模式(在图层上单击鼠标右键并选择Toggle Editing)。

对于您的情况,您需要单击“ 偏移”按钮:

在此处输入图片说明

并按照将在QAD文本窗口(与AutoCAD中完全相同)中显示的说明进行操作:

在此处输入图片说明

例如,这是对两个不同特征使用不同偏移量时的输出:

在此处输入图片说明


感谢您的回复。是否有其他方法或插件可以执行此任务而不投射数据?
Jitendra

我使用了带有投影数据的方法,因为似乎您正在处理米(距离为50、100、170、500,400 ..)。更改投影非常简单:右键单击图层,然后Save as最后选择一个投影坐标系。一旦执行了偏移,您可以使用相反的操作返回到地理坐标系...这应该是正确的。
mgri

如果不投影数据,则需要处理角度而不是米,而且我不知道这对您来说会变得更容易...
mgri

QAD工具运行正常。但是我必须手动对shapefile中的所有行重复执行任务。是否有任何方法可以自动读取line_ID和到属性表或exel或CSV文件中读取的线的距离,并同时绘制所有平行线。
Jitendra

我不知道执行此任务的工具,但我可能会尝试使用PyQGIS给出解决方案...您是否可能感兴趣?
mgri

6

如果您的属性表中有一列指定平行线之间的距离,则以下方法应能一次性完成-

您可以在“处理”工具箱Single sided buffers (and offset lines) for lines下使用该算法GDAL/OGR > [OGR] Geoprocessing。您需要将“ 操作”设置为“ 偏移曲线”,并以“ 缓冲区距离”形式输入包含距离的列的名称(在我的情况下,该列的名称为width)。您也可以通过选择“ 缓冲区侧”为右还是左来设置应绘制平行线的哪一侧。

在此处输入图片说明


谢谢您的回复。我根据您的建议使用OGR工具,但新输出shapefile中未显示任何内容。
Jitendra

您可以共享形状文件所在的投影系统吗?输出层属性表的屏幕快照可能会有所帮助。
nash

shapefile的投影系统为EPSG 4326
Jitendra

因此,您确实了解到,新行是在距离50,100,170,500和400处创建的,单位为度而不是米(我假设您要的是米)
nash

假设您想要以米为单位的距离-您必须在以米为单位的投影系统中转换shapefile(例如,适用区域的UTM投影系统)。然后运行算法。
nash

6

您可以使用“ v.parallel”,您可以在QGIS处理工具箱中找到此工具。

  1. 选择行号为no的行。3,6,20,25,31 选择线

  2. 使用“ v.parallel”,从选定的线创建平行线。但是,您必须执行多次才能产生不同的偏移距离(50、100、170、500,400)。有一个选项“侧面”,您可以分配平行线的位置。 “平行”

  3. 结果:所选线条左侧的平行线(蓝色) 结果

感谢Cy Y的回复。我使用了v.parallel命令,但是在新的输出shapefile中未显示任何内容。
Jitendra

1
p / s:“ v.parallel”命令仅适用于曲线,不适用于只有两个线顶点的直线。
Cy T
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.