Нанесення символів точки зору в QGIS?


9

Я зробив символ точки зору в QGIS, стилізуючи точку, яка буде колом, і додав кілька ліній, які обертаються під різними кутами, і в результаті все вийшло так

360 точки огляду

У ідеальному світі я вважаю за краще, щоб цей символ був у багатокутнику (а не в точковому стилі), тому це був би правильний розмір при будь-якому масштабі (без створення символів, що залежать від масштабування).

Моя проблема полягає в тому, що я хотів би півкола, як це:

напівперегляд

і коло, більш ніж в пів менше, ніж повне:

дивна точка зору

Будь-які пропозиції щодо того, як я можу створити такий стиль у QGIS?


3
ви можете створити піктограму svg та додати її, повернути тощо! лише пропозиція
Fran Raga

2
Шукайте відповідь про генератор геометрії, який міг би дати вам деяке уявлення. це один gis.stackexchange.com/questions/229961 / ... для Exemple може встановити Вас на правильному шляху
JR

як визначаються кількість сегментів та положення відсутніх сегментів?
геозелот

Число сегментів довільне. Просто потрібно знайти щось на зразок цих прикладів. І я не впевнений, як я міг би визначити відсутні сегменти. Можливо, намалюйте коло і дайте йому якесь значення "бути колом на 270 градусів" або "бути повним колом, крім 30 градусів, повернути на 50 градусів"
Фредрік

2
Ви спробували створити клинові буфери. клинові буфери qgis docs
Аманті

Відповіді:


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>

Він буде показувати одну пелюстку (центральний кут ~ 22,5 градусів) при завантаженні на QGIS як маркер SVG. Кут повороту починається від нуля і збільшується за годинниковою стрілкою. Будь-ласка, змініть кольори заповнення та контури за потребою.

введіть тут опис зображення

Для використання вам можуть знадобитися дві пелюстки (45 градусів), три пелюстки (67,5 градусів) тощо. Будь ласка, дайте мені знати, якщо вам потрібні ці варіанти .


EDIT (додані корпуси для двох, трьох та чотирьох пелюсток)

Два пелюстки:

<?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, ви можете встановити startта endазимут безпосередньо з полів атрибутів. Це робить речі набагато простішими та швидшими.

введіть тут опис зображення


Просто геніально!
Тарас

0

Ви майже отримали це. Спробуйте виконати наступні дії:

  1. Відкрийте свій PNG за допомогою Inkscape і збережіть його як SVG (площину) в папці (можливо, це буде знецінено SVG-символи в QGIS - це гарне місце).
  2. У межах QGIS перейдіть до системи -> Параметри -> Система. Потім додайте шлях до папки до шляхів SVG. Закрийте QGIS і відкрийте його знову, щоб переконатися, що цей новий шлях до папки буде завантажений.
  3. Перейдіть до властивостей шару та шукайте нові символи. Я просто спробував твій і все спрацювало.

введіть тут опис зображення


У випадку, якщо вам потрібно змінити розмір символу автоматично, обійдіть ці параметри: gis.stackexchange.com/questions/113513/…
César Arquero
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.