Как стилизовать точки в QGIS на основе нескольких атрибутов

13

Пытаясь найти полезный способ отображения землетрясений, я заметил, что им не так просто управлять.

Я хотел бы иметь возможность распознавать «Величину», «Дата» и «Глубина» из стиля точки. Что-то типа:

  • размер: в зависимости от величины
  • глубина: основной цвет (например, <15 красный, 15-30 желтый,> 30 синий)
  • дата: интенсивность цвета от 100% до белого / белого цвета

Есть ли способ сделать это без определения десятков правил?

Крис Паллаш
источник

Ответы:

14

Почему бы не использовать маркировку на основе правил? Вы могли бы значительно облегчить задачу, если бы вы использовали категории для нескольких градиентов на основе данных вашего атрибута. С моей точки зрения, использование категорий в маркировке на основе правил является одним из главных преимуществ QGIS.

Для ваших данных (без знания структуры) я бы порекомендовал следующий рабочий процесс:

  • Создайте простой градиент на основе правил для значений дат с помощью классифицированного или градуированного точечного стайлера (белый или сероватый стиль).
  • Отрегулируйте размер точек, нажимая «Дополнительно» и «Поле масштабированного размера». Здесь выберите величину ваших очков. Сохраните полученный стиль как стиль SLD!
  • Перейти к основанному на правила маркировки, загрузите Jn вашего SLD и добавить для каждой точки данных на RightClick категории (или диапазон) с цветовым градиентом своего вкуса для глубины и применить его к каждому набору.

Вот так (вы также можете создать категорию по правилам в категории ;-)): введите описание изображения здесь

  • После этого не забудьте изменить порядок рендеринга и, возможно, контролировать размеры точек.

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

кроншнеп
источник
4

Здесь мы используем руководство по стилю, используя 2 атрибута, используя данные о землетрясении.

http://qgis.spatialthoughts.com/2012/02/styling-vector-data-in-qgis-using-size.html

spatialthoughts
источник
4
Пожалуйста, суммируйте основную концепцию здесь, в противном случае этот ответ может оказаться бесполезным, когда ссылки не работают.
Подземье
4

Обновлено для QGIS 2.8

Предполагая данные, как это:

id | magnitude | date | depth
 1 |     4     | 1912 |  100
 2 |     3     | 1932 |   85

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

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

CASE 
  WHEN depth < 15 
       THEN color_hsl(1, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 15 AND depth < 30 
       THEN color_hsl(60, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 30 
       THEN color_hsl(240, 100, scale_linear(date, 1900, 2015, 100, 50)
END

«Старые» точки с 1900 года будут белыми hsl (x, x, 100), в то время как новые точки будут более красочными вплоть до hsl (x, x, 50).

Подземье
источник
3

Другой вариант - использовать помощника по размеру, который доступен для каждого стиля слоя данных. Допустим, вы классифицировали свои точечные данные по цвету, используя определенный атрибут. Просто щелкните правой кнопкой мыши по каждой категории и выберите «Изменить размер». Должно отображаться диалоговое окно размера. Затем щелкните фильтр выражений и выберите «Ассистент размера».

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

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

шерпы
источник
Я не знаю, почему за этот ответ больше не голосуют - это то, что я хотел, и это, безусловно, самый быстрый
Скотт Станевич
0

@spatialthoughts управляет очень хорошим учебным сайтом для qgis. Он изменил адрес, так как он первоначально отправил много лет назад, и ответ на этот вопрос теперь можно найти на http://www.qgistutorials.com/en/docs/3/basic_vector_styling.html . Он указывает на то же решение, что и @sherpas здесь.

vtnate
источник