Desenhando símbolos de ponto de vista no QGIS?

9

Eu criei um símbolo de ponto de vista no QGIS, estilizando um ponto para ser um círculo e adicionando algumas linhas que são giradas em ângulos diferentes, e acabou assim

Ponto de vista 360

Em um mundo perfeito, eu preferiria que esse símbolo fosse do tipo polígono (e não do ponto), portanto teria o tamanho correto em qualquer zoom (sem criar símbolos dependentes do zoom).

Meu problema é que eu gostaria de um semicírculo, assim:

meio ponto de vista

e um círculo mais que meio que menos que completo:

ponto de vista estranho

Alguma sugestão de como posso criar um estilo como este no QGIS?

Fredrik
fonte
3
! você pode criar um ícone SVG e adicioná-lo, girar etc é apenas uma sugestão
Fran Raga
2
Procure uma resposta sobre o gerador de geometria que possa lhe dar uma idéia. este gis.stackexchange.com/questions/229961/… por exemplo poderia colocá-lo no caminho certo
JR
como são definidas a contagem de segmentos e a posição de segmentos ausentes?
geozelot
O número de segmentos é arbitrário. Só preciso olhar algo parecido com esses exemplos. E não tenho certeza de como eu poderia definir as seções ausentes. Talvez desenhar um círculo e dar-lhe um valor "ser um circulo de 270 graus" ou "ser um círculo completo, excepto 30 graus, 50 graus e girar"
Fredrik
2
Você já tentou criar buffers de cunha. buffers de cunha qgis docs
Amanti

Respostas:

4

Ainda outra abordagem SVG:

Salve os textos abaixo como um arquivo de texto SVG (digamos petal.svg) na sua pasta 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>

Ele mostrará uma única pétala (ângulo central ~ 22,5 graus) quando carregada no QGIS como o marcador SVG. O ângulo de rotação começa em zero e aumenta no sentido horário. Altere as cores de preenchimento e contorno conforme necessário.

insira a descrição da imagem aqui

Para seu uso, pode ser necessário ter duas pétalas (45 graus), três pétalas (67,5 graus) e assim por diante. Entre em contato se precisar dessas variações .


EDIT (casos adicionados para duas, três e quatro pétalas)

Duas pétalas:

<?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>

Três pétalas:

<?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>

Quatro pétalas:

<?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>

Ou, adicionar camadas de marcadores SVG pode ser uma opção ... mas esse é um trabalho amplamente manual e não é recomendável.

insira a descrição da imagem aqui


Outra opção - Shape Tools Plugin

Se você não precisa ter "raios", eu recomendaria o plug-in do Shape Tools . Ao contrário Wedge buffersdo QGIS3, você pode definir starte endazimute diretamente de seus campos de atributo. Isso torna as coisas muito mais fáceis e rápidas.

insira a descrição da imagem aqui

Kazuhito
fonte
Apenas brilhante!
Taras
0

Você quase entendeu. Tente estas etapas:

  1. Abra seu PNG com o inkscape e salve-o como SVG (avião) em uma pasta (pode ser um bom local para símbolos SVG dentro do QGIS).
  2. No QGIS, vá para Sistema -> Opções -> Sistema. Em seguida, adicione o caminho da pasta aos caminhos SVG. Feche o QGIS e reabra-o apenas para ter certeza de que esse novo caminho de pasta será carregado.
  3. Vá para as propriedades da camada e procure seus novos símbolos. Eu apenas tentei o seu e funcionou.

insira a descrição da imagem aqui

César Arquero
fonte
Caso você precise alterar o tamanho do símbolo automaticamente, contorne estas opções: gis.stackexchange.com/questions/113513/…
César Arquero