Rysowanie symboli punktów widzenia w QGIS?

9

Stworzyłem symbol punktu widzenia w QGIS, projektując punkt, który ma być okręgiem, i dodając kilka linii, które są obracane pod różnymi kątami, i tak się skończyło

360 punktów widzenia

W idealnym świecie wolałbym, aby ten symbol był stylem wielokąta (zamiast stylu punktowego), więc byłby prawidłowy rozmiar przy każdym powiększeniu (bez tworzenia symboli zależnych od powiększenia).

Mój problem polega na tym, że chciałbym półkole, takie jak to:

półpunkt widzenia

i koło o ponad połowie mniej niż pełne:

dziwny punkt widzenia

Wszelkie sugestie dotyczące tego, jak mogę stworzyć taki styl w QGIS?

Fredrik
źródło
3
możesz stworzyć ikonę svg i dodać ją, obrócić itp., to tylko sugestia
Fran Raga,
2
Poszukaj odpowiedzi na temat generatora geometrii, który może dać ci pewien pomysł. ten gis.stackexchange.com/questions/229961/... na przykład może ustawić cię na dobrej drodze
JR
jak definiuje się liczbę segmentów i pozycję brakujących segmentów?
geozelot
Liczba segmentów jest dowolna. Wystarczy spojrzeć na coś takiego jak te przykłady. I nie jestem pewien, jak mógłbym zdefiniować brakujące miejsca. Może narysuj okrąg i nadaj mu jakąś wartość „bądź kołem o 270 stopniach” lub „bądź pełnym kołem z wyjątkiem 30 stopni, obróć o 50 stopni”
Fredrik
2
Czy próbowałeś utworzyć bufory klina? bufory klinowe qgis docs
Amanti

Odpowiedzi:

4

Jeszcze inne podejście SVG:

Zapisz poniższe teksty jako plik tekstowy SVG (powiedzmy petal.svg) w folderze 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>

Wyświetli pojedynczy płatek (kąt środkowy ~ 22,5 stopnia) po załadowaniu do QGIS jako znacznika SVG. Kąt obrotu zaczyna się od zera i rośnie zgodnie z ruchem wskazówek zegara. W razie potrzeby zmień kolory wypełnienia i konturu.

wprowadź opis zdjęcia tutaj

Do użytku mogą być potrzebne dwa płatki (45 stopni), trzy płatki (67,5 stopnia) i tak dalej. Daj mi znać, jeśli potrzebujesz tych odmian .


EDYCJA (dodano skrzynie dla dwóch, trzech i czterech płatków)

Dwa płatki:

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

Trzy płatki:

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

Cztery płatki:

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

Lub dodanie warstw znaczników SVG może być opcją ... ale jest to w dużej mierze praca ręczna i nie jest zalecana.

wprowadź opis zdjęcia tutaj


Inna opcja - Wtyczka Shape Tools

Jeśli nie musisz mieć „szprychy”, polecam wtyczkę Shape Tools . W przeciwieństwie Wedge buffersdo QGIS3, możesz ustawić starti endazymut bezpośrednio z pól atrybutów. To sprawia, że ​​rzeczy są znacznie łatwiejsze i szybsze.

wprowadź opis zdjęcia tutaj

Kazuhito
źródło
Po prostu genialne!
Taras,
0

Prawie to masz. Spróbuj wykonać następujące czynności:

  1. Otwórz plik PNG za pomocą programu inkscape i zapisz go jako SVG (płaszczyznę) w folderze (dobrym pomysłem może być usunięcie symboli SVG w QGIS).
  2. W QGIS przejdź do System -> Opcje -> System. Następnie dodaj ścieżkę folderu do ścieżek SVG. Zamknij QGIS i otwórz go ponownie, aby mieć pewność, że ta nowa ścieżka folderu zostanie załadowana.
  3. Przejdź do właściwości warstwy i poszukaj swoich nowych symboli. Właśnie wypróbowałem twój i zadziałało.

wprowadź opis zdjęcia tutaj

César Arquero
źródło
Jeśli chcesz automatycznie zmienić rozmiar symbolu, obejrzyj
César Arquero