QGIS-カスタム関数がフィールド計算機に表示されない


10

私はエッセンを使用していて、アニタグレイザーの素晴らしいチュートリアルIlluminated contoursをフォローしようとしています。azimuth関数を作成してロードしましたが、式タブには何も表示されていません。デフォルトの関数を使用したカスタムでさえもありません。式azimuth.pyはC :\Users\Max\.qgis2\python\expressionsと同じように.pycファイルに関連付けられて存在します。QGISを再起動しても違いはありません

ここに画像の説明を入力してください

ここに画像の説明を入力してください


2
「ロード」ボタンを押すことを覚えていると思いますか?古いグループのスクリプトを新しいグループに再割り当てしようとすると問題が発生することもわかりました。構文エラーは発生しませんでしたが、TABを使用してインデントを手動で4つのスペースに修正すると、これが修正されました。これは、特にコードを貼り付けた場合は、チェックする価値がありますか?(インデントに2つのスペースを使用しているようです)。フォールドマーカー(行番号の後ろのマイナス記号)は問題ないように見えますが
Steven Kay

@StevenKay初めてStevenに感謝します。コードにエラーがあり、インデントに関係しています。私はこれに気づかなかったし、はい、コードを貼り付けました。確認のために、行の先頭には常に4つのスペースが必要です-関数エディターが自動インデントを実行していることに気付きましたか?
最大

@Max-テキストエディタを使用してインデントを修正し、それを式ウィンドウに貼り付けることを強くお勧めします。これらのエディターの多くは、インデントが間違っているかどうかを強調します。多くのテキストエディターが世に出回っています。たとえば、Sublimeを使用するのが大好きです;)
Joseph

1
@ジョセフありがとうございます。すべてのサポートに感謝します
最大の

@マックスあなたはこれを解決したことがありますか?私は同じことを経験します。qgisの起動時にカスタム関数が読み込まれないため、式エディターのタブにカスタム関数が表示される前に、関数エディターのタブを開いて「ロード」を押す必要があります。
joskal 2018年

回答:


11

これと呼ばれるazimuth既存のMath関数がすでに存在するため、関数を呼び出さないでください

代わりに、次のような別の名前を付けazi()ます。

スクリプトの例

そして今、あなたはそれを呼び出すことができるはずです:

カスタム式


そのおかげで、私は数学関数を知りませんでした。ただし、作成してロードした後は、まだ[式]タブに表示されません。前に言ったように、「カスタム」という見出しはまったくないので、チュートリアルの次のステップでは少し詰め込みました(これは、QGISで式と関数を使用するのが初めてです...このチュートリアルを終了してください!)
最大

@Max-どのQGISバージョンを使用していますか?最新バージョンへのアップグレードを検討しましたか?これをQGIS 2.14.3-Essenでテストしましたが、問題なくロードされました。
ジョセフ

2.14.8 Essenと2.16.3で試してみました。アンインストールしてから再インストールすると思います。インストールにOSGeoを使用していて、どこかで何かがおかしくなっているのではないでしょうか。
最大

@Max-可能性があります。再インストールする前に、C:/Users/You/.qgis2/python/expressionsフォルダを削除してみてください(または使用したスクリプトをバックアップしてください)。
ジョセフ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.