Рисование точек обзора-символов в QGIS?


9

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

360 точка зрения

В идеальном мире я бы предпочел, чтобы этот символ был в стиле многоугольника (а не в стиле точки), так что это был бы правильный размер при любом увеличении (без создания зависящих от увеличения символов).

Моя проблема в том, что я хотел бы полукруг, как это:

половинная точка зрения

и более чем наполовину меньше, чем полный круг, как это:

странно-точка зрения

Любые предложения о том, как я могу создать такой стиль в QGIS?


3
Вы можете создать значок SVG и добавить его, вращать и т. д.! Только предложение
Фран Рага

2
Ищите ответ о генераторе геометрии, который может дать вам некоторое представление. это один gis.stackexchange.com/questions/229961/... для Exemple может установить Вас на правильном пути
JR

Как определяется количество сегментов и положение недостающих сегментов?
геозелот

Количество сегментов произвольно. Просто нужно посмотреть что-то вроде этих примеров. И я не уверен, как я мог бы определить недостающие сегменты. Может быть, нарисуйте круг и задайте ему значение «быть кругом 270 градусов» или «быть полным кругом, кроме 30 градусов, повернуть на 50 градусов»
Фредрик

2
Вы пробовали создавать клиновые буферы. клин буферы qgis docs
Amanti

Ответы:


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 градусов) и так далее. Пожалуйста, дайте мне знать, если вам нужны эти варианты .


РЕДАКТИРОВАТЬ (добавлены случаи для двух, трех и четырех лепестков)

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

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

Если вам не нужны «спицы», я бы порекомендовал плагин Shape Tools . В отличие от Wedge buffersв QGIS3, вы можете установить startи endазимут непосредственно с полей атрибутов. Это делает вещи намного проще и быстрее.

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


Просто великолепно!
Тарас

0

Вы почти получили это. Попробуйте это шаги:

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

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


Если вам нужно изменить размер символа автоматически, обойдите
César Arquero
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.