我正从使用Illustrator创建地图转变为使用QGIS和实际数据制作地图。我无法在QGIS中重新创建的东西之一是可以在Illustrator中获得的平滑曲线。我不是在讨论“连接样式”和“帽形样式”,而是整个线条的渲染方式。

另外,我意识到它们可能被认为是不准确的表示形式,但是在大多数情况下,这些地图只是为了让车手了解它们的位置,而不必一定是精确的表示形式。

以下是我的意思的示例:


评论

您的数据如何存储?大多数数据格式(例如shapefile)不允许使用弧线。我相信现在有些数据库可以做到。

#1 楼

查看Generalizer插件,它应该做您想要的。该插件具有很好的平滑选项。

它不会改变线条的渲染方式,而是制作一个应用了平滑(或简化/泛化)的新shapefile。





评论


即使启用了第三方存储库,我也找不到适用于QGIS 1.7.3的插件。您可以显示如何启用/查找它吗?看起来很有趣而且简单。

– SaultDon
2012年1月12日在21:54

奇怪。它应该在插件安装程序中,因为它来自主要的QGIS插件存储库。

–内森·W
2012年1月12日22:02

没错,但是我必须从Python插件安装程序转到选项选项卡,然后将“允许的插件”更改为:“显示所有插件,即使是标记为实验性的插件”。

– SaultDon
2012年1月12日在22:58

我今晚结束了这个插件的使用,实际上对我来说效果更好,因为我不必使用GRASS层并且可以转换当前的shapefile。

–布莱恩·凯利(Brian Kelly)
2012年2月21日,下午5:18

对于非常详细但参差不齐的数字化,我必须分两步进行:首先进行简化(例如Lang算法),然后进行平滑处理。工作了请客。

–另一本
2012年8月12日14:27

#2 楼

使用QGIS + GRASS插件:
从“管理插件”窗口中添加Grass工具栏。

您的行将需要是草向量,因此请将其转换为新的或现有的GRASS mapset。
从GRASS工具栏中,选择GRASS工具...算法:

请注意以下算法:Chaiken,Hermite甚至是滑动平均。还有其他几个!
可以在Wiki图片中看到差异: “是指“ Chaiken”产生的线条“内接”原始线条,而“ Hermite”线条“外接”原始线条,如上图所示。 Chaiken”,蓝色为“ Hermite”)。

使用uDig + jgrasstools或草:
如果您很难从GRASS的v.generalize中获得理想的结果,请尝试使用jgrasstools发行最新版本的uDig。您也可以从jgrasstools所在的位置抓住草缸。
一旦uDig安装并启动并运行,启用Spatial Toolbox:
Window> Show View> Other ...

将工具栏停靠以更易于阅读(右键单击“空间工具箱”选项卡>“分离” ...):
如果您还加载了草罐文件,请不要忘记设置草的参数(指向Windows上的草可执行文件或bat文件,或者在Linux中指向草命令,即/ usr / bin / grass):
最后!使用jgrasstools(不是草皮)中的工具,您可以使用矢量处理> LineSmootherJaiTools轻松地概括该线。确保正确设置输入和输出(仅适用于Shapefile,因此无需将数据转换为草的地图集/位置):

一旦设置了平滑公差(0.0-1.0)和输入/输出,请按“空间工具箱”窗口(右上角)上的“播放”按钮:

评论


这会改变原始数据还是在QGIS呈现之前对它进行过滤?

–布莱恩·凯利(Brian Kelly)
2012年1月12日在21:27

嗯,在这里得到了回答:“(线)平滑是一个“反向”过程,它以一条线作为输入并产生一个更平滑的原始近似值。在某些情况下,这是通过在原始线中插入新顶点来实现的,最多可以达到原始顶点总数的4000%。在这种情况下,平滑后简化线始终是一个好主意。”来自grass.osgeo.org/grass64/manuals/html64_user/v.generalize.html

–布莱恩·凯利(Brian Kelly)
2012年1月12日在21:29



因此,一旦您确认所有行都是正确的并且不需要进一步编辑(除非您要调整所有其他矢量然后再次平滑),您似乎可能会应用此方法。

–布莱恩·凯利(Brian Kelly)
2012年1月12日21:31

@spline是的,因为必须使用本质上是“草数据集”而不是shapefile的草,所以您需要确保原始shapefile是完整的。也可以选择简化线以消除多余的顶点,这取决于线的长度和贝塞尔曲线中存在的顶点数量。

– SaultDon
2012年1月12日21:39

哦,我的话,草对我来说毫无意义...地图名称,位置名称,dbase,PERMANENT ...我试图“发现”该答案的使用方式(承认之前没有草的知识),但惨败。文件似乎到达了您最不期望的位置(我想它们不是文件吗?),在最终找到了如何选择地图后,我无法在通用化对话框中选择转换后的图层(不是我知道这是什么意思)地图)...噩梦。看看货物,如果我能解决的话:)

–另一本
2012年8月12日14:30在

#3 楼

您可以使用几何生成器进行平滑处理而无需更改原始数据:


#4 楼

Processing Toolbox -> Vector geometry -> Smooth下有一个平滑几何算法。


此算法可平滑线或多边形图层中的几何形状。它
创建一个具有与输入
层相同的特征的新层,但是几何中包含更多数量的顶点,并且
角落中的角被平滑了。
迭代参数指定将对每个几何体应用多少次平滑迭代。较高的迭代次数
导致更平滑的几何形状,而在几何形状中的
节点数目增加。
offset参数控制平滑的几何形状如何“紧密”地遵循原始几何形状。较小的值将导致更紧密的配合,而较大的值将导致较宽松的配合。
最大角度参数可用于防止对大角度节点进行平滑处理。线段与任一侧的角度大于此角度的任何节点都不会被平滑。例如,
将最大角度设置为90度或更小将保留几何中的直角。
如果输入几何包含Z或M值,则这些值也会被平滑化,输出几何将保留与输入几何图形相同的尺寸。


#5 楼

还有另一种方法,可能只有从QGIS 2.0版本开始才这样:

在Processing> Toolbox下,您可以访问GRASS和SAGA Tools。为了进行平滑处理,您可以找到v.generalize,也可以使用SAGA进行线条简化。这些工具可在常规shapefile上运行,因此不需要草矢量:



批处理模式尚未很好解决(右键单击右侧菜单并选择“分批执行”,因为必须手动选择每个文件,上面进一步提到的通用工具可让您更简单地选择多个文件,但这仅在没有指定要保存的文件的情况下才有效。插件崩溃。