QGIS 3.0 точковий кластерний рендер, чи можна керувати порядком надання (z-порядку)?


19

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

Щоб показати, що я маю на увазі, ось приклад дорожньо-транспортних пригод в Единбурзі з використанням даних STATS19 та радіусом 30 м.

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

Я не можу розробити, як налаштувати z-порядок, щоб найбільші кластери намалювались перед меншими кластерами.

Я знаю змінну @cluster_size - це те, що я використовую для масштабування та розфарбовування символів. Для цього я використовую помічники розміру та кольору. Я видалив маркери шрифту, щоб видалити текст із кожного кластеру.

Розмір маркерів визначається наступним чином:

coalesce(scale_exp(@cluster_size, 0, 50, 1, 200, 0.57), 0)

Колір маркерів визначається наступним чином:

coalesce(ramp_color('custom ramp',scale_linear( @cluster_size, 0, 50, 0, 1), '#000000')

Що я спробував поки що: -

  • Рівень символів - Не щастить; не вдається вибрати ім'я змінної.
  • Відображення шару> Порядок надання функції керування функціями та виберіть @cluster_size як сортування. Здається, це не має ефекту.
  • Закінчений стиль, використовуючи @cluster_size, оскільки вираз не працює.

Хтось знає, чи це можливо, чи це обмеження для цього конкретного рендерінга?

Я знаю, що існує багато інших способів зробити це (об'єднання буфера / простору, плагіни), але новий рендер повинен бути набагато швидшим. Або я не помітив щось очевидне? :)


Це, ймовірно, працює, враховуючи порядок у таблиці атрибутів. Можливо, ви влаштовуєте їх у порядку зростання, щоб найбільші з них були представлені як нові? Якщо немає функції "Сортувати функції за атрибутом", ви можете спробувати плагін MMQGIS (якщо такий доступний для qgis 3)
Revo,

дякую @Revo Здається, можна розмістити та сортувати його за атрибутом (у тому числі з рендерером Cluster Point), але це працює лише в одному масштабі. Я намагався використовувати cluster_size, оскільки розміри кластерів динамічно змінюються, коли я збільшую / зменшую, використовуючи візуалізатор точки кластера. Я погляну на MMQGIS (він доступний для QGIS 3)
Стівен Кей,

Відповіді:


2

Схоже, що реалізація кластерних точок не дозволяє цього спочатку.

Розглянемо рендеринг кластерних точок - він по суті аналізує та кластеризує точкові дані під час візуалізації, створюючи новий псевдошар. Цей шар недоступний для користувача. Не можна запитувати кластерну точку. Поле не можна обчислити атрибут @cluster_size .

Візуалізатор точкових кластерів успадковує порядок візуалізації від джерела, використовуючи порядок надання функції управління ( QgsFeatureRequest :: OrderByClause), залишаючи відкритим можливість деякого розумного вирішення за допомогою атрибутів та виразів, однак певні схеми впорядкування не гарантуються, щоб вони були послідовними.

Як приклад, розглянемо точковий шар із відображенням, упорядкованим у порядку зростання за атрибутом "Latitude". Чим більше північних точок виводяться на північніші точки. Візуалізатор кластерних точок не має атрибута "Latitude" для своїх нових функцій, хоча він успадкує певну схожість цього порядку від джерела. Можуть бути випадки, коли більш південний кластер робить поверх кластера більш північний, через порядок вихідних точок.


Спасибі. Це дуже чітке пояснення, яке також дає відповідь на моє запитання, чи можна обчислити атрибут з кластерних точок, скажімо, це сума сукупності, пов'язана з кожною початковою точкою. Ясно ні .... ще? Це було б дуже корисною функцією. Будь-яка ідея про те, як цього можна досягти за допомогою розумного вирішення (яке не потребує кодування, хоча, як я не (ще, знову?) Хороший у цьому), навіть статичним способом? Я намагаюся знайти інструмент для кластеризації точок аналогічно тому, як це робить кластер-
рендерінг

Взагалі кажучи, ви можете підійти до цього, повторивши те, що робить рендеринг кластерів у поєднанні з функцією "Порядок надання функції управління" за допомогою атрибутів. Приблизним першим проходом може бути буфер точкового шару, підрахунок балів у буферизованих багатокутниках як атрибут у шарі точок. Керуйте порядком візуалізації за цим атрибутом за зростанням. Трохи громіздкий і не обов’язково працюватиме в різних масштабах.
CrystallineEntity

Я також закликаю вас зробити запит на функцію, який відкрив би метод @cluster_size функції "Порядок керування функцією надання".
CrystallineEntity
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.