在QGIS中绘制视点符号吗?


9

我通过将点的样式设置为圆并添加一些以不同角度旋转的线来在QGIS中制作了视点符号,结果像这样

360度视角

在理想情况下,我希望该符号是多边形样式(而不是点样式),因此在任何缩放下它都将是正确的大小(不创建依赖于缩放的符号)。

我的问题是我想要一个半圆,像这样:

半视点

像这样的一个半圆以上的圆:

奇怪的观点

关于如何在QGIS中创建这种样式的任何建议?


3
您可以创建一个svg图标并将其添加,旋转等!这只是一个建议
Fran Raga

2
寻找有关几何生成器的答案,它可能会给您一些想法。例如,这个gis.stackexchange.com/questions/229961/…可能会使您走上正确的路
JR

段数和丢失段的位置如何定义?
geozelot

段数是任意的。只是需要看起来像那些例子。而且我不确定如何定义缺失的沉积物。也许画一个圆并给它一些值“为270度的圆”或“除30度外为一个完整的圆,旋转50度”
Fredrik

2
您是否尝试过创建楔形缓冲区。楔形缓冲器qgis docs
Amanti,

Answers:


4

SVG的另一种方法:

将以下文本另存为SVG文本文件(假设为petal.svg)到SVG文件夹中。

<?xml version="1.0" encoding="UTF-8"?>
<svg id="petal" enable-background="new 0 0 300 300" version="1.1" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <path d="M150,150 v-100 a100,100 0 0,1 38.26834323,7.61205 z"
        fill="param(fill)" fill-opacity="param(fill-opacity)" stroke="param(outline)" stroke-opacity="param(outline-opacity)" stroke-width="param(outline-width) 0.2"/>
</svg>

当将其作为SVG标记加载到QGIS上时,它将显示单个花瓣(中心角〜22.5度)。旋转角度从零开始,然后顺时针增加。请根据需要更改填充和轮廓颜色。

在此处输入图片说明

对于您的用法,您可能需要具有两个花瓣(45度),三个花瓣(67.5度),依此类推。请让我知道您是否需要这些变化


编辑(添加了两个,三个和四个花瓣的盒)

两瓣:

<?xml version="1.0" encoding="UTF-8"?>
<svg id="2 petals" enable-background="new 0 0 300 300" version="1.1" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <path d="M150,150 v-100 A100,100 0 0,1 188.26834,57.61205 L150,150 L188.26834,57.61205 A100,100 0 0,1 220.7107,79.28932 z"
        fill="param(fill)" fill-opacity="param(fill-opacity)" stroke="param(outline)" stroke-opacity="param(outline-opacity)" stroke-width="param(outline-width) 0.2"/>     
</svg>

三瓣:

<?xml version="1.0" encoding="UTF-8"?>
<svg id="3 petals" enable-background="new 0 0 300 300" version="1.1" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <path d="M150,150 v-100 A100,100 0 0,1 188.26834,57.61205 L150,150 L188.26834,57.61205 A100,100 0 0,1 220.7107,79.28932 L150,150 L220.7107,79.28932 A100,100 0 0,1 242.388,111.7317 z"
        fill="param(fill)" fill-opacity="param(fill-opacity)" stroke="param(outline)" stroke-opacity="param(outline-opacity)" stroke-width="param(outline-width) 0.2"/>     
</svg>

四瓣:

<?xml version="1.0" encoding="UTF-8"?>
<svg id="4 petals" enable-background="new 0 0 300 300" version="1.1" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <path d="M150,150 v-100 A100,100 0 0,1 188.26834,57.61205 L150,150 L188.26834,57.61205 A100,100 0 0,1 220.7107,79.28932 L150,150 L220.7107,79.28932 A100,100 0 0,1 242.388,111.7317 L150,150 L242.388,111.7317  A100,100 0 0,1 250,150 z"
        fill="param(fill)" fill-opacity="param(fill-opacity)" stroke="param(outline)" stroke-opacity="param(outline-opacity)" stroke-width="param(outline-width) 0.2"/>     
</svg>

或者,可以选择添加SVG标记层……但这主要是手工操作,不建议这样做。

在此处输入图片说明


另一种选择 - 形状工具插件

如果您不必“辐射”,我建议使用Shape Tools插件。与Wedge buffersQGIS3 不同,您可以直接从属性字段进行设置startend方位角。它使事情变得更加轻松快捷。

在此处输入图片说明


太棒了!
塔拉斯

0

差不多了 请尝试以下步骤:

  1. 使用inkscape打开PNG并将其另存为SVG(平面)在文件夹中(可能是QGIS中的SVG符号默认位置是个好地方)。
  2. 在QGIS中,转到系统->选项->系统。然后将您的文件夹路径添加到SVG路径。关闭QGIS并重新打开它,以确保将要加载此新文件夹路径。
  3. 转到图层属性,然后查找新符号。我只是尝试过您的方法而已。

在此处输入图片说明


如果你需要自动这一选项改变周围的符号的大小,工作方式:gis.stackexchange.com/questions/113513/...
塞萨尔Arquero
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.