QGIS自定义功能未显示在字段计算器中


10

我正在使用Essen,并尝试遵循Anita Graser精彩的教程《照明轮廓》。我已经创建了azimuth函数并加载了该函数,但表达式选项卡中没有任何显示-甚至没有使用默认功能的Custom!表达式与关联文件一样存在azimuth.py于C :\Users\Max\.qgis2\python\expressions.pyc。重新启动QGIS没有任何区别

在此处输入图片说明

在此处输入图片说明


2
我认为您记得点击“加载”按钮了吗?当我尝试将它们重新分配给新组时,我还发现一些较早的脚本引起了问题-我没有语法错误,但是通过使用TAB手动纠正缩进4个空格来解决此问题。这可能值得检查,尤其是如果您粘贴了代码?(我看到您使用2个空格来缩进)。折叠标记(行号后的减号)看起来还不错……
史蒂文·凯

@StevenKay感谢Steven,我第一次在代码上遇到错误,这与缩进有关。我没有意识到这一点,是的,我已经粘贴了代码。.只是为了确认,一行的开头应该始终有4个空格-我注意到函数编辑器会自动缩进吗?
马克斯

@Max-我强烈建议使用文本编辑器修复您的缩进,然后将其粘贴到表达式窗口中。这些编辑器中的许多将突出显示您的缩进是否错误。那里有很多文本编辑器,例如,我喜欢使用Sublime ;)
约瑟夫(Joseph

1
@Joseph谢谢,我会做的-真的很感谢所有帮助
马克斯

@Max你解决了这个吗?我也一样 我的自定义函数在qgis启动时不会加载,因此我必须进入函数编辑器选项卡并按“加载”,才能在表达式编辑器选项卡中显示自定义函数。
joskal

Answers:


11

不要调用该函数,azimuth因为已经有一个称为Math的现有Math函数。

取而代之的是azi()

示例脚本

现在您应该可以调用它:

自定义表达


谢谢,我不知道数学函数。但是,创建和加载后,它仍然没有显示在“表达式”选项卡中。正如我之前所说的,根本没有标题叫做“ Custom”,因此对于本教程的下一步,我有点塞满了(这是我第一次在QGIS中使用表达式和函数……如果可以的话,这可能是我的最后一次)结束本教程!)
Max

@Max-您正在使用哪个QGIS版本?您是否考虑过升级到最新版本?我在QGIS 2.14.3-Essen上对此进行了测试,并且加载良好。
约瑟夫

我已经在2.14.8 Essen和2.16.3上试用过。我想我会卸载并重新安装-我使用OSGeo进行安装,我想知道是否某个地方发生了问题?
最多

@Max-可能是。重新安装之前,请尝试删除该C:/Users/You/.qgis2/python/expressions文件夹(或备份您使用的所有脚本)。
约瑟夫

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.