Полезные формулы

Подсчет количества маршрутов в ячейке

Например, поле RouteNumbers содержит номера маршрутов


length( "RouteNumbers")-length( replace( "RouteNumbers" ,';',''))+1

Или использование массива:
array_length( string_to_array("RouteNumbers",';'))

Во втором случае можно активно использовать возможности массива (взять минимум, максимум  и так далее)

Извлечение максимальное числа из текста типа "12-15 этажей"

Вставить скрипт в Function Editor и выбрать эту функцию в Custom
from qgis.core import *
from qgis.gui import *
import re
@qgsfunction(args='auto', group='Custom')

def get_num(value1, feature, parent):
    try:
        digit_string = re.sub('[^\d.,]' , ',', value1)
        
        num = max([int(s) for s in digit_string.split(',') if s.isdigit()])
        
        return num
    except:
        return None


Подсчет площади полигона, длины линии, периметра

$area
$length
$perimeter

Для расчета геометрических показателей без учета кривизны Земли используются формулы типа  area ($geometry) и т.д. Актуально для работы с данными на основе топосъемок.

Фильтр по списку значений выбранного поля

“FIELD” IN (‘value1’, ‘value2’, ‘value3’,...)
“FIELD” NOT IN (‘value1’, ‘value2’, ‘value3’,...)

Условия

if, CASE и так далее

Комментариев нет:

Отправить комментарий