プロセッシングでラインの頂点を移動する方法がありましたら、
ご教授頂けませんでしょうか。
ジオメトリのチェックで離れた場所の抽出はできるのですが、1つずつ
修正していかなければならないため、モデラーで組めないかと考えました。
ジオメトリの$x-at(n)等に数値を直接入れることができればと思いますが、
方法が見当たらなかったため、以下のような方法で確認しました。
1.ラインの$idを新規のlid(integer)に代入する。
2.ラインの特異点の抽出で0、-1で始点終点を求める。
3.移動先の点を用意する。
4.その点の座標をspx,spy,epx,epyとして代入する。
5.平行移動で、終点に以下の処理を行う。
x軸オフセット:if( "vertex_pos" = 0, "spx" - $x, 0.0 )
y軸オフセット:if( "vertex_pos" = 0, "spy" - $y, 0.0 )
6.5の結果に平行移動で、始点に以下の処理を行う。
x軸オフセット:if( "vertex_pos" = -1, "epx" - $x, 0.0 )
y軸オフセット:if( "vertex_pos" = -1, "epy" - $y, 0.0 )
7.点を線に変換で、lidでグループにして線を作成する。
上記の処理を手動で操作した場合は正しく処理されたのですが、
モデラーでは意図した結果になりませんでした。
そこで、実行しているコマンドのログを見たところ、関係する部分が
'DELTA_X' : QgsProperty.fromExpression('if( "vertex_pos" = -1, "spx" - $x, 0.0 )'), 'DELTA_Y' : QgsProperty.fromExpression('if( "vertex_pos" = -1, "spy" - $y, 0.0 )')
となっていました。
モデラーでは、この部分がそのままではエラーで動かなかったため、
'vertex_pos'のようにシングルクォートでくくって見たのですが、
DELTA_X: 0, DELTA_Y: 0,
となって計算されませんでした。
色々試してみたのですが、この項目に計算式を入れても計算されないようでした。
手動の時のような式をモデラーに入れることは可能でしょうか。
よろしくお願い致します。