Пользовательские функции QGIS не отображаются в Калькуляторе поля


10

Я использую Essen и пытаюсь следовать замечательному учебнику Аниты Грейзер « Подсветка контуров» . Я создал azimuthфункцию и загрузил ее, но на вкладке выражений ничего не отображается - даже Custom с функцией по умолчанию! Выражение существует как azimuth.pyв C :\Users\Max\.qgis2\python\expressionsсо связанным .pycфайлом. Перезапуск QGIS не имеет никакого значения

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

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


2
Я так понимаю, ты помнил, что нажал кнопку «Загрузить»? Я также обнаружил, что некоторые старые скрипты вызывали проблемы, когда я пытался перераспределить их в новую группу - у меня не было синтаксических ошибок, но исправление отступа вручную с использованием TAB на 4 пробела исправило это. Это может стоить проверить, особенно если вы вставили код в? (Я вижу, что вы используете 2 пробела для отступа). Хотя фолд-маркер (знак минус после номера строки) выглядит нормально ...
Стивен Кей,

@ StevenKay Спасибо Стивену впервые, у меня есть ошибка в коде, и это связано с отступом. Я не знал об этом, и да, я вставил код в. Просто для подтверждения, всегда должно быть 4 пробела в начале строки - я заметил, что редактор функций выполняет некоторые автоматические отступы?
Макс

@Max - я настоятельно рекомендую использовать текстовый редактор, чтобы исправить отступы, а затем вставить его в окно выражения. Ряд этих редакторов подскажет, является ли ваш отступ неверным. Есть много текстовых редакторов, например, я люблю использовать Sublime ;)
Джозеф

1
@ Джозеф Спасибо, я сделаю - очень ценю всю помощь
Макс

@ Макс Ты когда-нибудь решал это? Я испытываю то же самое. Мои пользовательские функции не загружаются при запуске qgis, поэтому я должен зайти на вкладку редактора функций и нажать «загрузить», прежде чем пользовательские функции появятся на вкладке редактора выражений.
Joskal

Ответы:


11

Не вызывайте функцию, azimuthпоскольку уже существует математическая функция с именем this.

Вместо этого дайте ему другое имя, например azi():

Пример скрипта

И теперь вы должны это назвать:

Пользовательское выражение


спасибо за это, я не знал о математической функции. Однако он все еще не отображается на вкладке выражений после создания и загрузки. Как я уже говорил ранее, заголовок под названием «Custom» вообще не существует, поэтому для следующего шага в учебнике я немного напичкан (это мой первый раз, когда я использую выражения и функции в QGIS ... возможно, мой последний, если я могу » t закончить этот урок!)
Макс

@Max - Какую версию QGIS вы используете? Рассматривали ли вы обновление до последней версии? Я проверил это на QGIS 2.14.3-Essen, и он загрузился нормально.
Джозеф

Я пробовал это на 2.14.8 Essen и 2.16.3. Я думаю, что я буду деинсталлировать и переустанавливать - я использую OSGeo для установки, и мне интересно, возможно, что-то напортачило?
Макс

@ Макс - Может быть. Перед переустановкой попробуйте удалить C:/Users/You/.qgis2/python/expressionsпапку (или создайте резервную копию всех использованных вами сценариев).
Джозеф

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