Вы получаете null, потому что не можете найти точку отсчета. Вам нужно искать по имени слоя, а не по имени поля.
Сначала вы должны спроецировать свои точки, иначе вы получите результаты в градусах, а не в метрах. Затем вы можете рассчитать расстояние:
distance(($geometry),geometry(get_feature_by_id('Layer Name', 1)))
Где «Имя слоя» - это имя слоя на панели «Слои» (также известное как таблица содержания).
В вашем вопросе вы используете WKT по долготе и широте, это можно сделать из прогнозируемых значений x и y (например, UTM) следующим образом:
distance( geom_from_wkt( 'POINT(' || "x_utm" || ' ' || "y_utm" || ')'), geom_from_wkt( 'POINT(' || attribute(get_feature_by_id('Layer Name', 1),'x_utm') || ' '|| attribute(get_feature_by_id('Layer Name', 1),'y_utm') || ')' ) )
Если вам нужно, вы можете выполните следующие преобразования:
x(transform(( geom_from_wkt( 'POINT('||"lon"|| ' '|| "lat" || ')' ) ),'epsg:4326','epsg:code for your UTM zone'))
y(transform(( geom_from_wkt( 'POINT('||"lon"|| ' '|| "lat" || ')' ) ),'epsg:4326','epsg:code for your UTM zone'))
Я не нашел способа получить расстояние по большому кругу в калькуляторе поля.