QGISで滑らかな(ベジェ)曲線で線をレンダリングする方法はありますか?


33

Illustratorを使用したマップの作成から、QGISおよび実際のデータを使用したマップの作成に移行しています。QGISで再作成できなかったことの1つは、Illustratorで取得できる滑らかな曲線です。結合スタイルとキャップスタイルについてではなく、ライン全体のレンダリング方法について説明します。

SVGとしてIllustratorにエクスポートし、そこでマップを完成させることを含まない回答を探しています。

また、それらは不正確な表現と見なされる可能性があることを認識していますが、ほとんどの場合、これらのマップはライダーに現在地を知らせるためのものであり、必ずしも正確な表現である必要はありません。

ここに私が言っていることの例があります: ここに画像の説明を入力してください


2
データはどのように保存されますか?ほとんどのデータ形式(シェープファイルなど)では、円弧を使用できません。いくつかのデータベースは今でもそうだと信じています。
ダレンは対処

回答:


24

Generalizerプラグインをチェックしてください。必要なことを行うはずです。プラグインには非常にうまく機能する平滑化オプションがあります。

ラインのレンダリング方法は変わりませんが、スムージング(または単純化/一般化)が適用された新しいシェープファイルが作成されます。

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

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


サードパーティのリポジトリを有効にしているにもかかわらず、QGIS 1.7.3のこのプラグインが見つかりません。有効化/検索する方法を紹介できますか?おもしろくて簡単に見えます。
SaultDon

3
奇妙な。メインのQGISプラグインリポジトリから取得されるため、プラグインインストーラーにあるはずです。
ネイサンW

3
そのとおりですが、Pythonプラグインインストーラーから[オプション]タブに移動し、[許可されたプラグイン]を[実験的とマークされたものも含めてすべてのプラグインを表示]に変更する必要がありました。
SaultDon

私は今夜​​このプラグインで少し遊んでしまいましたが、GRASSレイヤーを使用する必要がなく、現在のシェープファイルを変換することができたので、実際にうまく機能しました。
ブライアンケリー

非常に詳細だがギザギザのデジタル化のために、2つのステップでそれをしなければなりませんでした。最初に単純化(例:ラングアルゴリズム)、次にスムージング。御treat走をしました。
別のベン

16

QGIS + GRASSプラグインの使用:

[プラグインの管理]ウィンドウからGrassツールバーを追加します。 草のツールプラグインをqgisに追加する

あなたのラインは草のベクトルである必要があるので、それらを新規または既存のGRASSマップセットに変換します。

GRASSツールバーから、GRASS Tools ...を選択します。 ここに画像の説明を入力してください

モジュールを探します:v.generalize(WIKIチュートリアルはこちら

その後、いくつかの異なる一般化アルゴリズムを選択できます。 GRASSツールv。アルゴリズム選択の一般化

アルゴリズムに注意してください:チャイケン、エルミート、さらにはスライド平均。他にもいくつかあります!

違いはwikiの写真で見ることができます: v.generalizeは違いの例を単純化する

Wikiから:「注意、「Chaiken」と「Hermite」の違いは、「Chaiken」によって生成された行が元の行を「刻む」ことです。「Hermite」行は、 [上記](黒線は元の線、緑線は「チャイケン」、青線は「エルミート」)


uDig + jgrasstoolsまたはgrassを使用:

GRASSのv.generalizeから望ましい結果が得られない場合は、jgrasstoolsを使用してuDigの最新バージョンを試してください。jgrasstoolsと同じ場所から草の瓶をつかむこともできます。

uDigをインストールして起動したら、Spatial Toolboxを有効にします:ウィンドウ>ビューを表示>その他... uDigで空間ツールボックスを有効にする

読みやすくするためにツールバーのドッキングを解除します([Spatial Toolbox]タブを右クリックして[デタッチ...])。 uDigでの空間ツールボックスのデタッチ

必要なjgrasstoolsおよびgrass(オプション)モジュールをロードします。 jgrasstools / grassをudigにロードする

草のjarファイルもロードする場合は、草のパラメーター(Windowsの草の実行可能ファイルまたはbatファイル、またはLinuxの草コマンド、つまり/ usr / bin / grassを指す)を設定することを忘れないでください。 uDigで草のパラメーターを設定する

最後に!jgrasstools(草ではなく)のツールを使用すると、Vector Processing> LineSmootherJaiToolsで簡単にラインを一般化できます。 uDigのLineSmootherJaiToolsへのベクトル処理

入力と出力を適切に設定してください(シェープファイルでのみ動作するため、草のマップセット/場所にデータを変換する必要はありません)uDigのSpatial Toolboxの入力および出力設定

平滑化許容値(0.0-1.0)と入力/出力の設定が完了したら、Spatial Toolboxウィンドウ(右上)の[再生]ボタンを押します。 Spatial Toolbox for uDigの再生モジュール

結果:
uDigはjgrasstoolsの結果を簡素化します...


これは元のデータを変更しますか、それともQGISがレンダリングする前の方法でフィルタリングしますか?
ブライアンケリー

ああ、それはここで答えられます:「(ライン)スムージングは​​、入力としてラインを取り、元のより滑らかな近似を生成する「逆」プロセスです。場合によっては、これは元のラインに新しい頂点を挿入することによって達成されます。元の頂点の数の合計4000%まで可能です。このような場合、スムージング後に線を単純化することは常に良い考えです。」grass.osgeo.org/grass64/manuals/html64_user/v.generalize.html
ブライアンケリー

したがって、これは、ラインがすべて正しいことを確認し、さらに編集する必要がないことを確認したら適用する可能性が高いようです(追加のベクトルをすべて調整してから再びスムージングする場合を除く)
Brian Kelly

@splineはい、本質的にはシェープファイルではない「草のデータセット」で作業する必要があるため、元のシェープファイルが完全であることを確認する必要があります。余分な頂点を削除するためにラインを単純化することも、ラインの長さとベジェ曲線に存在する頂点の量に応じたオプションです。
SaultDon

ああ、私の言葉、草は私には意味がありません...マップ名、場所名、dbase、永続... ファイルは予想外の場所に行くようです(ファイルではないのでしょうか?)、最終的にマップの選択方法を見つけた後、一般化ダイアログで変換されたレイヤーを選択できませんでした地図)...悪夢。私がそれをすべてうまくいくことができれば商品を探します:)
別のベン

1

別の方法があります。おそらくこの方法はバージョンQGIS 2.0以降のみです。

Processing> Toolboxで、GRASSおよびSAGAツールにアクセスできます。スムージングのために、v.generalizeがありますが、SAGAの行の単純化もあります。これらのツールは通常のシェープファイルで動作するため、草のベクトルは必要ありません。

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

バッチモードはまだ十分に解決されていません(右側のメニューで右クリックして[バッチとして実行]を選択します。これは、すべてのファイルを手動で選択する必要があるためです。 、これは現在、保存するファイルを指定していない場合にのみ機能します。そうしないと、プラグインがクラッシュします。


1

の下にSmooth geometry alghoritmがありProcessing Toolbox -> QGis geoalghoritms -> Vectorます。

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