Disegnare simboli di punti di vista in QGIS?


9

Ho creato un simbolo del punto di vista in QGIS definendo un punto come un cerchio e aggiungendo alcune linee che sono ruotate ad angoli diversi, e alla fine è finito così

360 punto di vista

In un mondo perfetto preferirei che questo simbolo fosse uno stile poligonale (piuttosto che uno stile punto), quindi sarebbe la dimensione corretta con qualsiasi zoom (senza creare simboli dipendenti dallo zoom).

Il mio problema è che vorrei un semicerchio, in questo modo:

mezza punto di vista

e un cerchio più della metà meno del pieno come questo:

strange-punto di vista

Qualche suggerimento su come posso creare uno stile come questo in QGIS?


3
puoi creare un'icona svg e aggiungerla, ruotare ecc! è solo un suggerimento
Fran Raga,

2
Cerca una risposta sul generatore di geometria che potrebbe darti un'idea. questo gis.stackexchange.com/questions/229961/… per esempio potrebbe metterti sulla strada giusta
JR

come vengono definiti il ​​conteggio dei segmenti e la posizione dei segmenti mancanti?
geozelot,

Il numero di segmenti è arbitrario. Devo solo assomigliare a quegli esempi. E non sono sicuro di come definire i segmenti mancanti. Forse disegnare un cerchio e dargli un valore "essere un cerchio di 270 gradi" o "essere un cerchio completo tranne 30 gradi, ruotare di 50 gradi"
Fredrik

2
Hai provato a creare buffer a cuneo. wedge buffer qgis docs
Amanti,

Risposte:


4

Ancora un altro approccio SVG:

Salva i testi sottostanti come file di testo SVG (diciamo petal.svg) nella tua cartella 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>

Mostrerà un singolo petalo (angolo centrale ~ 22,5 gradi) quando caricato su QGIS come marker SVG. L'angolo di rotazione inizia da zero e aumenta in senso orario. Modifica i colori di riempimento e contorno secondo necessità.

inserisci qui la descrizione dell'immagine

Per l'utilizzo, potrebbe essere necessario disporre di due petali (45 gradi), tre petali (67,5 gradi) e così via. Per favore fatemi sapere se avete bisogno di tali variazioni .


EDIT (casi aggiunto per due, tre e quattro petali)

Due petali:

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

Tre petali:

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

Quattro petali:

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

Oppure, l'aggiunta di livelli di marcatori SVG può essere un'opzione ... ma questo è in gran parte un lavoro manuale e sconsigliabile.

inserisci qui la descrizione dell'immagine


Un'altra opzione : Shape Tools Plugin

Se non devi avere "raggi", consiglierei il plugin Shape Tools . A differenza Wedge buffersdi QGIS3, è possibile impostare starte endazimut direttamente dai campi degli attributi. Rende le cose molto più facili e veloci.

inserisci qui la descrizione dell'immagine


Semplicemente geniale!
Taras,

0

Ce l'hai quasi fatta. Prova questi passaggi:

  1. Apri il tuo PNG con inkscape e salvalo come SVG (piano) all'interno di una cartella (è possibile che i simboli SVG all'interno di QGIS siano un buon posto).
  2. In QGIS, vai su Sistema -> Opzioni -> Sistema. Quindi aggiungi il percorso della cartella ai percorsi SVG. Chiudi QGIS e riaprilo solo per essere sicuro che questo nuovo percorso della cartella verrà caricato.
  3. Vai alle proprietà del livello e cerca i tuoi nuovi simboli. Ho appena provato il tuo e ha funzionato.

inserisci qui la descrizione dell'immagine


Nel caso in cui sia necessario modificare automaticamente la dimensione del simbolo, aggirare con queste opzioni: gis.stackexchange.com/questions/113513/…
César
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.