QGIS 3.4 LTRの変更履歴

image0

QGIS3.シリーズの最初のロングタームリリース(LTR)であるQGIS3.4がリリースされました。5つのリリース (3.4.5) の後2019年2月にこれは以前のLTRと置き換えられる予定です (参照 release schedule )。 これはプロジェクトにとって大きな飛躍です - 3.xプラットフォーム上の最初のロングタームリリースです。2.18 LTRから移行するユーザについてはこの新しいLTRバージョンでくわえられた多くの新機能を利用可能です。 3.xのプラグインは2.xのプラグインとは互換性が無いのでプラグインの利用方法を慎重に検討して下さい - そして可能ならば古いプラグインを新しいプラットホームに移行することを助けて下さい。 あなたがまだ新しいバージョンへの移行をおこなっていないのであるならば Version 3.0Version 3.2 の変更履歴も見て3.4の変更の全容を理解してみて下さい。

謝辞

私たちは、開発者、ドキュメント作成者、テスター、そして時間と労力をボランティアしている(あるいは人々に資金を提供する)多くの人々に感謝したいと思います。QGISコミュニティはこのリリースを楽しんでいただきたいです。あなたが時間やお金を寄付したり、QGISをより素晴らしいものにすることに関与したいなら qgis.org のサイトに行って手を貸してください!

QGISは寄付者と維持会員の支援を受けています。プロジェクトへの大小の財政面での貢献を賜った寄付者の現在のリストは donors list にあります。公式の維持会員になって頂ける場合、詳細は our sustaining members page をご覧下さい。QGISへの支援は、半年毎の開発者会議に資金提供したり、プロジェクトインフラストラクチャを維持したり、バグ修正の取り組みに資金提供するのに役立ちます。現在の維持会員の完全なリストは以下に掲載します。すべての支援して下さっている皆様に大変感謝しております!

QGISはフリーのソフトウェアです。利用に金銭的な負担義務はありません。わたしたちはユーザの財政状況や社会的地位にかかわらずより多くの人にQGISを利用して欲しいと思っています。権力をもつ人々が地理空間的な意思決定のツールを持つことで、人類にとってより良い未来をもたらすと信じています。

image1

一般機能

機能: Flatpak

QGISは現在 flathub Flatpak(以前の xdg-app)で使えるflatpakアプリケーションとして利用できます。そこではLinuxデスクトップ上でソフトウェア開発、パッケージ管理、アプリケーション可視化ができます。これを利用するとlinux上で再コンパイルやDockerを利用しなくても異なるバージョンのQGISをインストールできまう。ここでは全パッケージのライブラリが含まれ独自のユーザプロファイルの場所が利用されます。ですからこれを利用する場合いくらかのディスク領域が必要でflatpakを利用した新しい作業方法が必要ですが、これは楽しめます!

image28

この機能は Aleix Pol によって資金提供されました

この機能は Aleix Pol によって開発されました

機能:SVGファイルはプロジェクトとシンボルに埋め込みできるようになりました

シンボロジ、ラベル等に利用するSVGイメージを直接プロジェクトファイルに埋め込むことができるようになりました(またQMLスタイルやQPT印刷テンプレートも埋め込めます)ここではsvgを 標準的なbase64でエンコーディングしたもので埋め込みをしています。

追加機能で、埋め込まれたファイルはプロジェクトから解凍されてシンボルとディスク上のSVGファイルとして戻すことができます。

この機能は SMEC/SJ によって資金提供されました

この機能は Nyall Dawson によって開発されました

機能: OpenCL を使ったアクセラレーション

この機能は QGIS.org によって資金提供されました

この機能は Alessandro Pasotti によって開発されました

計算式

機能: 新しい式用関数と変数

多くの新しい式用関数はQGIS3.4では追加されました。これらには配列やマップ(辞書)オブジェクトを操作する便利な関数が含まれています。

  • json_to_map: JSON でエンコードされたの文字列の値をマップ(辞書)タイプオブジェクトに変換します
  • map_to_json: マップ (辞書) タイプオブジェクトをJSONでエンコードされた文字列値に変換します
  • hstore_to_map: hstore 値をマップ(辞書)タイプオブジェクトに変換します
  • map_to_hstore: マップ (辞書) タイプオブジェクトをhstore値に変換します
  • array_foreach : 配列に対するループと配列中の各アイテムに対して式を実行します, それぞれの計算結果が格納された新しい配列が返されます
  • array_filter : 式で指定されたフィルタが配列に適用されます
  • raster_value: ラスタレイヤの指定された点の値を返します
  • to_dms: 数値の値を度,分,秒形式の文字列に変換します
  • to_dm: 数値の値を度,分,秒形式の文字列に変換します
  • line_substring:指定された開始距離と終了距離の間にある直線(または曲線)ジオメトリの部分(直線の始点から測定)を返します。 Z値とM値は既存の値から線形補間されます。
  • generate_series(start,stop,step):連続した数字の配列を作る

さらに、いくつかの新しい変数もQGIS式内で使用できるようになりました:

  • @canvas_cursor_point: メインマップキャンバス内のマウスカーソルの現在位置ポイント座標を持ちます
  • @map_layers: 地図で表示されている全レイヤの配列を持ちます
  • @map_layer_ids: マップ内で表示されている全レイヤのID配列が格納されています

image2

この機能は Etienne Trimaille, Matteo Ghetta, Matthias Kuhn, Mathieu Pellerin, Nyall Dawson によって開発されました

機能: 式ビルダにおけるコード補完機能

式エディタにおけるコードの自動保管機能。

  • 変数,関数名とフィールド名は式を書いている時に提案と自動挿入が行われます。
  • 関数のパラメータはそれらが書き込みされる間表示されます

image3

この機能は OPENGIS.ch によって資金提供されました

この機能は Matthias Kuhn(OPENGIS.ch) によって開発されました

マップツール

機能:既存ポリゴンを利用した地物の同定または選択機能

既存のポリゴンによって覆われているところにある地物の選択/同定機能が利用できると便利な場合がしばしばあるでしょう。この機能は 「Select Features by Polygon」 と 「Identify Features by Polygon」 によってユーザは利用できます。しかしこの場合手動でポリゴンを入力しなければいけません。この新しい機能でユーザは右ボタンで地図をクリックして既存ポリゴン地物をその場所に表示されるポップアップメニューからピックします。そのポリゴンが選択や同定の作業に利用されます。

image4

この機能は Leicestershire County Council によって資金提供されました

この機能は Peter Petrik (Lutra Consulting) によって開発されました

ユーザーインターフェース

機能: ファイルマネージャーにおけるエキスポートファイルの自動選択

メッセージバーのリンクが生成されるタイミングにかかわらず(例.レイアウトやマップレイヤのエクスポートの後),その時に操作しているプロジェクトが保存されているディレクトリを直接開き,新規に作成したファイルを選択した状態が自動的に表示されるようになりました。これによりファイルのエクスポートの操作性が向上しました。

image5

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: ウェルカムページにおいて開けないファイルに対する 「ディレクトリを開く」 オプションの新規追加

この新機能ではディレクトリの変更,喪失,名前を変更によってウェルカムページから開くことができなくなってしまったファイルに対し,もとのディレクトリに最も近いパスを右クリックから開くことが可能になりました。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: スクラッチレイヤUXの向上

複数の処理を行う際の前処理データなど,作業用レイヤとして一時的なスクラッチレイヤはとても便利です。しかし,事前に情報共有がされていないおらず,QGISプロジェクトを閉じるとこのデータが失われ,復元できないことを知らないユーザにとってはスクラッチレイヤは落とし穴となりかねません。これについて,レイヤツリー内のスクラッチレイヤにはひと目で一時的なレイヤであることがわかるよう,新しいアイコンが表示されるようになりました。

また,一時的なスクラッチレイヤをディスクに書き込んだ状態に移行させることも容易に可能です。保存は上記の新しいアイコンをクリックするかレイヤコンテクストメニューから」保存」を選択できます。選択されたファイルの保存先の指定をQGISかrた求められます。その後,一時的なレイヤは保存されたレイヤに変換されます(レイヤID,スタイル,フォーム設定などは引き継がれます)

image6

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: タスクマネージャーの向上

QGISタスクマネージャウィジェット(バックグラウンド処理が動いている際にステータスバーに表示される)が処理にかかる残りの推定時間と長時間処理の完了を表示するようになりました。この推定時間はその時点までにかかった処理時間を線形補完したものです。ユーザーは処理が終わるまでにインスタントコーヒーを作るか,1ブロック先のバリスタまでコーヒーを買いに行けるかがわかるようになります。

加えて,QGIS3.4では標準操作システムを使ってより多くのプラットフォームや場面においてレポート機能を追加しています。時間のかかる処理(かつバックグラウンドで実行されない),例えば地図のエクスポートなどについてはどこまで進んだかを操作システム機能で表示し,完了通知をポップアップ表示します。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: スタイルマネージャの改良

QGISスタイルマネージャダイアログ(ユーザが独自のシンボルライブラリやカラーランプを管理できます)は現在ノンモーダルモードで開くのでメインQGISウインドウと一緒に開いて利用できます(レイアウトマネージャダイアログやプリントレイアウトデザインウィンドウと同様です)。

レイヤスタイリングドックでのシンボルプレビュー機能も改良されました。シンボルの大きいアイコンでのプレビューと詳細なリストビューの切り替えスイッチができました。シンボルの上に(色の上でも!)マウスカーソルが動くとそのシンボルの大きなプレビューが表示されます。またシンボルリストをさらに高解像度にして使いやすくしました。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能:ブラウザパネルのインターフェースと操作性を洗練させました

このリリースではブラウザパネルユーザーインターフェースと操作性の改良に多くの作業が行われました。そこには高解像度の修正,圧縮されたベクタ/ラスタデータセットの改良とアイコンセットのリフレッシュが含まれます。

機能の追加されています。そこにはブラウザコンテキストメニューから新しいディレクトリを作成する機能も含みます。ブラウザではSQL Server接続オプションについてさらに完璧な領域に進化しています。それらはすでに他のデータベース接続では利用可能なオプションです。

image8

この機能はMathieu Pellerin (iMHere Asia), Nyall Dawson (North Road) によって開発されました

機能: QML チャートとドローイングウィジェット

属性を利用したチャートやテクニカルドローイングのような魅力的で対話型のアイテムを表示するための新しいタイプのベクタレイヤフォームウィジェットがQGIS3.4で追加されました。ウィジェットは柔軟に設定ができテンプレートの例と式をサポートします。

image9

この機能は QGIS Project によって資金提供されました

この機能は David Signer and Matthias Kuhn (OPENGIS.ch) によって開発されました

シンボロジー

機能: メッシュレイヤスタイリング

  • プロパティパネルでメッシュレイヤにデータセットを追加できます
  • プロパティパネルに情報とソースパネルができました
  • アクティブデータセットの選択(プロパティまたはスタイリングパネル)
  • コンター/スカラーのスタイル(プロパティまたはスタイリングパネル)
  • メッシュフレームのスタイリング(プロパティまたはスタイリングパネル)
  • ベクタ矢印のスタイリング(プロパティまたはスタイリングパネル)

この機能は Lutra Consulting によって資金提供されました

この機能は Peter Petrik (Lutra Consulting) によって開発されました

機能:段彩レンダラにおける対称分類

この機能は https://github.com/pierreloicq によって資金提供されました

この機能は https://github.com/pierreloicq によって開発されました

機能: 部分的なQMLのエクスポートとインポート

「.qml」ファイルを介したスタイルのインポート,エクスポートに際し,セクションの一部を選択することができるようになりました。これによりレイヤ構成の一部を保存,他の部分を省略することができます。例として,QMLのファイルのあるレイヤーのシンボロジーのエクスポート,インポートが,他の機能や構成からの影響を受けることなく可能になります。また,1つのスタイルをコピー,ペーストすることも可能になります。

image10

この機能は qwat group によって資金提供されました

この機能は Denis Rouzaud (OPENGIS.ch GmbH) によって開発されました

デジタイズ

機能: GPSトラッキングの改良

QGIS 3.4 ではGPS情報機能のパラメータに ”取得間隔” と 「距離閾値」 を追加し機能を強化させました。これらのオプションによりレシーバーが静止状態にある時はカーソルを固定することができます。

この機能は Andrea Rossi の資金提供により開発されました。

この機能は Andrea Rossi により開発されました。

機能: 先進的なデジタイズドックにおけるスナップ対応共通角の追加

コンストラクションモード時のスナップに5/10/15/18/22.5°のオプションが追加されました。

image11

この機能は lbartoletti の資金提供により開発されました。

この機能は lbartoletti により開発されました。

機能:頂点ツールがカレントレイヤのみで動作可能になりました

新しい頂点は作りやすくなりました。編集可能なレイヤ群内で頂点を動かすことは可能です、その機能はレイヤをまたがったとポロジを保持するのに便利です。しかし多くの場合私たちは多くのレイヤ群を同時に編集することは必要ありません。私たちは検証用のための頂点マップツールを追加しました。

image12

この機能は Oslandia によって資金提供されました

この機能は Paul Blottiere (Oslandia) によって開発されました

機能: 反転ラインマップツールの追加

すごく待たれていた機能です! ラインの方向を逆転させるために外部プラグインやアルゴリズムはいまや必要ありません!

image13

この機能は OSLANDIA によって資金提供されました

この機能は Loïc Bartoletti によって開発されました

機能: ジオメトリの精度

ベクタレイヤに精度管理オプションができました。精度は位置のノードを保存する精度を定義します。新規または編集中のそれぞれのノードはこの解像度でグリッドにスナップされます。デジタイズ中にはこのグリッドがユーザにガイドとして表示されます。

image14

この機能は Kanton Solothurn によって資金提供されました

この機能は Matthias Kuhn (OPENGIS.ch) によって開発されました

機能:重複するノードの自動削除

ベクタレイヤでジオメトリの追加または編集を行っている時にQGISでは自動的に重複するノードをジオメトリから削除することができるようになりました。このオプションはベクタレイヤのデジタイジングタブで設定することができます。

この機能は Kanton Solothurn によって資金提供されました

この機能は Matthias Kuhn (OPENGIS.ch) によって開発されました

機能:ジオメトリの妥当性チェック

このオプションが有効な場合新規または編集されるそれぞれのジオメトリの妥当性がチェックできます。この機能によって利用している編集セッションでエラーがあるジオメトリが生成された場合ユーザと明瞭に対話できます。

image15

この機能は Kanton Solothurn によって資金提供されました

この機能は Matthias Kuhn (OPENGIS.ch) によって開発されました

機能: 編集中のトポロジーチェック

トポロジーチェックは1レイヤーに対して実行できます。新規に追加されたまたは編集されたジオメトリに対し処理を実行します。この処理は対象レイヤ保存されたときとジオメトリバリデーションパネルのトポロジーチェックのボタンがクリックされた時に実行されます。

下記のチェックができます。

  • ギャップ
  • オーバーラップ
  • 近傍のポリゴンの消失してしまった頂点

この機能は Sourcepole.によるジオメトリチェッカープラグインの最重要機能として実装されていたものです。

image16

この機能は Kanton Solothurn によって資金提供されました

この機能は Matthias Kuhn (OPENGIS.ch) によって開発されました

データ管理

機能:QGISプロジェクトの翻訳

QGIS本体やプラグインと同じようにQtトランスレーションプロセスを使ってプロジェクトを翻訳できます。これは Qtでコンパイルされた翻訳ソースファイル(.qm file)を利用することを意味します。ユーザがプロジェクトを開くと QGISは .qgs  ファイルと同じフォルダにある .qm ファイルをチェックします。そのファイルは .qgs と同じファイル名とユーザの言語(QGISの設定で指定された言語)を示す言語コードを拡張子として持ちます。プロジェクトで翻訳を作成する場合 .ts  ファイルを作成するオプションがあります。そのファイルはQt LiguestやTransifexで編集できます。

さらに詳しい情報は このブログのポスト を参照して下さい

この機能は QGIS Usergroup Switzerland and QGEP Project によって資金提供されました

この機能は David Signer (OPENGIS.ch) によって開発されました

機能: 属性テーブルのドックモードを場合によって切り替えできます

オンデマンドでドッキングモードとウィンドウモードを切り替えるためのボタンが属性テーブルツールバーに追加されました。 以前はユーザーは設定ダイアログのオプションを変更してドッキング/ドッキング解除モードを切り替えるために新しいテーブルを開く必要がありましたが、テーブルを開いた 後に ドッキング/ドッキング解除することを決定した場合は大変です。 ……!

image17

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能:全てのレイヤを縦断して検索するための新しいロケータフィルタ

新しいロケータフィルタが加わりました。これは全てのユーザがレイヤの表示式を使ってプロジェクトの 全部の レイヤを検索できるものです。

このフィルタは 『af』 という接頭辞を使うか QGIS 設定->オプション ->ロケータで 全てのレイヤの地物 をデフォルトにマークすると利用できます。表示式はベクタレイヤプロパティのディスプレイタブの下に定義されます。個別レイヤはプロジェクトプロパティのダイアログのデータソースタブの下でサーチ不可とマークできます。

image18

この機能は Opengis.ch によって資金提供されました

この機能は Denis Rouzaud によって開発されました

機能: レイヤツリーで削除不可(必須) レイヤを強調表示します

現在のプロジェクトでは 「必須」 とマークされているレイヤには 「ロック」 アイコンが新しいインジケータとして表示されます。このアイコンは特定のレイヤが削除できないことをユーザに即時にフィードバックします。

必須レイヤはプロジェクトプロパティダイアログのデータソースタブで指定できます。

image19

この機能は Arpa Piemonte (Dipartimento Tematico Geologia e Dissesto) within ERIKUS project によって資金提供されました

この機能は Martin Dobias (Lutra Consulting)Faunalia とによって開発されました

機能:既存のGeopackageにラスタレイヤを追加できます

ラスタレイヤをGeoPackageデータベースに保存する場合レイヤを既存ファイルに追加することが可能になりました。

image20

この機能は Borys Jurgiel によって資金提供されました

この機能は Borys Jurgiel によって開発されました

フォームとウィジェット

機能:QGISバリューリレーションウィジェット内の(ドリルダウン(カスケーディング)フォーム

QGIS “Value Relation Widgets” に新しい機能とロジックができました。QGIS属性フォームに複合でダイナミックなフィルタを適用できます。この機能はQGISの “drill-down”  フォームを使って実装されています。そこではあるフィールドの値が他のフィールドの値に依存することが可能です。

image21

この機能は QGIS community through crowd-funding によって資金提供されました

この機能は Alessandro Pasotti (with North Road) によって開発されました

マップコンポーザー

機能: 3Dマップアイテム

これは3Dのマップビューをプリントレイアウトへ追加する機能です。

image22

この機能は QGIS community through crowd-funding の資金提供により開発されました。

この機能は Lutra Consulting により開発されました。

プロセッシング

機能:新しい 「その場で編集」 モード

generous backers による多くのクラウドファンディングに感謝します。それによって作成された 「edit in place」 モードが3.4のプロセッシングに追加されました。ベクタレイヤがアクティブで編集可能の時にこのモードでユーザは適切なアルゴリズムで直接レイヤの地物の属性やジオメトリをその場で変更できます。全ての編集はレイヤの “edit buffer” に格納されます。ですからあなたは変更の取り消しや再実行をそれらがデータソースに保存される前は簡単に行うことができます。

しばしばデータ編集を行うパワーユーザについてはQGIS3.0の “Locator bar” (左下コーナーにある “type to locate”  バー)でも提供されています。‘ef’ (“edit features”) とタイプして対応する操作の名前を入力するとキーボードから直接編集を行えます。例

  • 多数のライン地物を選択します
  • Ctrl + K を押します (ロケータバーをアクティブにします)
  • “ef reverse” とタイプします
  • エンターキーを押します– 選択したライン地物がすぐに反転します!

image23

This feature was funded by Crowdfunding campaign

この機能は North Road によって開発されました

機能:モデルをプロジェクトに保存する

いくつかのプロセッシングモデルはプロジェクト内のロジックにリンクされているためプロジェクトの外では意味がありません(または結局は壊れたことになります)(例.モデルが特定のマップレイヤやリレーション等に依存している場合)。そのためQGIS3.4からプロセシングモデルはQGISプロジェクトファイル内に保存できるようになりました。プロジェクト内に保存されているすべてのモデルは、そのプロジェクトが開かれるとすぐに使用可能になります。これはまた、意味のないモデルで 「グローバルな」 モデルプロバイダを煩雑にすることを避け、関連するすべてのモデルを含む単一のプロジェクトを配布することをより簡単にします。

モデルは、モデラーダイアログツールバーの新しい 「プロジェクトに埋め込む」 ボタンをクリックしてプロジェクト内に保存されます。ツールボックスのモデルの右クリックメニューを使ってモデルはプロジェクトから削除できます。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: ラスタ値のサンプル

ラスタレイヤのある1点の値をサンプリングする新しいアルゴリズムを追加しました。

image24

この機能は Faunalia の資金提供によって開発されました。

この機能は Matteo Ghetta (Faunalia) により開発されました。

機能: 新しい 『ラスタピクセルをポリゴンに』 アルゴリズム

このアルゴリズムはラスタレイヤをベクタレイヤに変換します。ラスタレイヤの各ピクセルを1つのポリゴンとみなし,ラスターの持つバンドの値をひとつのフィールドに変換します。

この機能は SMEC/SJ によって資金提供されました

この機能は Nyall Dawson によって開発されました

機能: K平均クラスタリングアルゴリズム

QGIS3.4ではK平均クラスタリングアルゴリズムが追加されました。これはPostGISの ST_ClusterKMeans 関数に基づいており,K平均法により識別されたひとまとまりの入力地物に新規のクラスターIDフィールドを追加する機能です。ポイント以外のジオメトリが入力地物として与えられた場合には,入力地物の重心を標準としてクラスタリングされます。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: DBSCANクラスタリングアルゴリズム

このネイティブアルゴリズムは2Dのポイント地物に対するクラスターアプローチを基盤としてDBSCAN密度の最適化を実装したものです。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能:アルゴリズムの改良

既存のプロセッシングアルゴリズムに対する以下のような改良があります:

  • 逆方向ラインの検出 アルゴリズムではマルチラインジオメトリを入力に利用できるようになりました
  • ラインの拡張: ダイナミック(データで定義された)な開始と終了の距離指定がサポートされました
  • オフセットライン: ダイナミックなオフセット距離がサポートされました
  • フィールド値による結合場所による結合 アルゴリズムではオプションでマッチしないレコードの出力が可能になりました
  • フィールド値による結合 ではマッチ/アンマッチした地物の数をレポートします

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: Mを利用した頂点フィルタとZを利用した頂点フィルタアルゴリズム

MまたはZの値を使ってライン/ポリゴンの頂点をフィルタする2つの新しいアルゴリズムができました。M/Zの値の最小と最大を入力できます、もし頂点の値がその範囲の外の場合は出力ジオメトリからその頂点は除去されます。フィルタの最小値と最大値はデータで定義することも可能です。ですからフィルタは地物毎に変えることができます。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: 「変換された地物配列」 アルゴリズム

この新しいアルゴリズムはあるレイヤ中の地物のコピーを作成します。コピーは地物の複数の座標変換(オフセット)単位に作成されます。それぞれのコピーはx/y/z/m軸のプリセットの合計だけ移動します。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: 「オフセット(並行)線の配列」 アルゴリズム

このアルゴリズムは、入力レイヤの線からバッファ距離だけ離れたオフセット線を複数作成します。各線は、指定されたステップ距離で順次離れたものです。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能:度/不明な距離への単位選択機能

アルゴリズムが距離パラメータをメートル/フィート/etc(例.ジオグラフィックでない距離)で持っている場合コンボボックスが追加され単位の選択ができます。

(QGISは距離を(そして 決して )度単位では公開しいません-この場合適切なローカル投影法を選択してデータを再投影することはユーザの責任です。)

この機能は North Road によって資金提供されました

この機能は Nyall Dawson によって開発されました

機能: 「地物に z/m の値をまとわせる」 アルゴリズム

ジオメトリの頂点に z または m の値を設定する新しい2つのアルゴリズムです。その値はラスタバンドから取得されます。オプションで値は(データ定義可能な)スケール値を使ってスケールできます。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: 「ラスタピクセルをポイントに変換」 アルゴリズム

新しい 「ピクセルをポイントに変換」 アルゴリズムがQGIS3.4で追加されました。これはそれぞれのピクセルの中心でポイント地物を作成します。nodataピクセルはスキップされます。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: 部分ライン切り出しアルゴリズム

この新しくて非常に要望が多かったアルゴリズムはライン(またはカーブ)の始点と距離(ラインの先頭から計測された)指定でラインの一部分を返します。ZとMの値は既存の値から線形補間されます。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: 「線上の等間隔点」 アルゴリズム

この新しいアルゴリズムは線(またはポリゴンの外周線)ジオメトリにそって指定距離ごとにポイントジオメトリを作成します。曲線ジオメトリの入力もサポートされています。ZまたはMの値は既存の値を基にして線形補間されます。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能:k-neighbour 凹包

この機能は QGIS.org によって資金提供されました

この機能は Detlev Neumann, Rudi von Staden によって開発されました

機能:アルゴリズムをインプリメントしたPythonスクリプトををドラッグアンドドロップとブラウザダブルクリックで実行できます

適切な時にスクリプトはプロセッシングダイアログを起動するでしょう:

  • Pythonスクリプトをメインウインドウの上にドラッグしてドロップしてください
  • ブラウザパネルの右クリックメニューを使ってスクリプトを実行します

image25

この機能は iMhere Asia によって資金提供されました

この機能は Mathieu Pellerin によって開発されました

機能:新しいGDALのバンド再構成アルゴリズム

新しいGDALの 『バンド再構成』 アルゴリズムがプロセッシングツールボックスに追加されました。このアルゴリズムを使うと出力ラスタを複数の入力ラスタの連続で構成できます。またバンドの再構成も可能です。

image26

この機能は iMhere Asia によって資金提供されました

この機能は Mathieu Pellerin によって開発されました

機能: モデルアルゴリズムパラメータの 「プレ計算」 値

この新しいオプションでは,」直前に計算された」全てのパラメータを返します。事前に実行された子アルゴリズムおよび当該アルゴリズムが実行された際に算出される値が表示されます。

この機能は QGIS の資金提供により実装されました。

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: 「XML ファイルを利用したレイヤのカテゴライズ」 アルゴリズム

この新しいアルゴリズムはスタイルデータベースを使った描画定義マッチングを利用してベクタレイヤの分類色塗り用の設定に使えます。

指定された式(またはフィールド名)は描画の分類を作成するのに利用されます。その時QGISではレイヤ内のユニークな値が分類作成のために使われます。それぞれの分類は指定されたQGIS XMLスタイルデータベース内にある描画定義に独立して結び付けられます。マッチした描画定義名があるとその分類の描画定義に設定されます。

マッチングはデフォルトで大文字小文字を区別しません。しかし必要があれば大文字小文字を区別するように設定可能です。オプションでカテゴリと描画定義のマッチングで非アルファベット文字を無視するように設定できます。この機能によってカテゴリと描画定義のマッチングの許容度を増やすことができます。

必要があれば描画定義とマッチしなかったカテゴリのリストやカテゴリとマッチしなかった描画定義のリストを出力することができます。

image27

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能:スナップジオメトリアルゴリズムの新モード

新しい 「アンカーノードへのスナップ (単一レイヤのみ)」 モードを使うとベクタレイヤの任意の2個の頂点の間の距離が少なくとも指定閾値よりあることをになります。

このアルゴリズムは、座標が互いに非常に近い場合に数値誤差によって引き起こされる可能性のある位相誤差を防ぐために、交差、ユニオン、差などのベクトルオーバーレイ操作を行うときに便利です。 アルゴリズムを実行した後、以前に有効だったジオメトリが不正になる場合があるため、後でジオメトリ修正アルゴリズムを実行すると便利な場合があります。

この機能は、 InaSAFE DFAT によって資金提供されました

この機能は `Martin Dobias(Lutra Consulting) <https://www.lutraconsulting.co.uk/> `__ によって開発されました。

データプロバイダ

機能: OAuth2認証メソッドプラグイン

  • 認可コードフロー、インプリシットフローとリソースオーナーグラントフローに対応
  • デフォルトの位置から読み出す事前設定を使用した接続が可能です
  • QGISを再起動してもアクセストークンが得られるキャッシュ機能を提供します
  • 設定のセーブ/ロード

この機能は Monsanto Company によって資金提供されました

この機能は Larry Shaffer, Alessandro Pasotti によって開発されました

機能: メッシュレイヤ: 新しい形式への対応

メッシュレイヤは、追加要素 (時間やベクトル等)を持つ可変サイズのグリッド上のデータを表現します。MDALの導入で、ユーザは次に挙げるフォーマットをQGISに直接ダウンロードでき、また、他の全ての要素を探索することができます。

  • GRIB
  • XMDF
  • Netcdf

image29

この機能は Lutra Consulting によって開発されました

この機能は Lutra Consulting により開発されました。

機能: メッシュレイヤ: メッシュレイヤ上の値の識別機能

このAPIで、開発者は、メッシュ要素を調べ、時空間的に値を取得することができます。例えば、メッシュレイヤから時系列プロットを作成することができます。

image30

この機能は Lutra Consulting によって資金提供されました

この機能は Lutra Consulting により開発されました。

機能: メッシュレイヤー: 異なるベクタとスカラデータセットの選択が可能に

メッシュレイヤーに複数の数量を持っている場合があります。気象情報を持つnetCDFやGRIBがその代表例です。これらの数量はさらに複数の構成要素により成り立っています。例えば、風のデータは風向(スカラ)と風速(グリッド)を持っています。このオプションでは異なる数量であるスカラとグリッドを重ね合わせることが可能です。下の図では温度(グリッド)と風(スカラ)を例示しています。

image31

この機能は Lutra Consulting によって資金提供されました

この機能は Lutra Consulting により開発されました。

機能: メッシュレイヤ: ユーザ指定のグリッドでベクタ/矢印の描画が可能になりました

スカラデータが、通常はメッシュ要素の中心か格子で生成されます。スカラデータ表示時には、矢印が薄く見え、しばしば全般の傾向が見えなくなることがあります。このオプションで、矢印がユーザ指定のグリッドで表示できます。拡張スカラ値は実行中に補間が行われ、ユーザ定義のグリッド上に置かれます。

image32

この機能は Lutra Consulting によって資金提供されました

この機能は Lutra Consulting により開発されました。

機能: JSON/JSONB型への対応

PostgreSQL JSON型の読み込みに対応しています。JSONデータは「キー/バリュー」 (マップ)、「リスト」 (配列)または文字列としてウィジェット内で表示できます。

image33

この機能は Kanton Solothurn によって資金提供されました

この機能は David Signer (OPENGIS.ch) によって開発されました

機能: ESRIトークン認証対応

QGISの「ESRIの認証システム」の一時トークンを基にした認証に対応しました。これにより、一時トークンを確保することで、ArcGISのフィーチャーサーバとマップサーバにアクセスできるようになりました。

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: SQLサーバ - 不正なジオメトリの処理

QGISの近頃の版では、SQLサーバレイヤの読み込みは、より安全な方法に変更していて、レイヤは自動的にジオメトリ妥当性をチェックし、必要なら補修します。SQLサーバのジオメトリ処理デザインには、不正なジオメトリを持つあらゆる行が、レイヤからの全ての地物を返すことなく静かに異常終了する可能性がある、という問題があるので、これを回避する応急処置が必要なためです。

QGIS 3.4では新しい設定が追加され、QGISのSQLサーバの不正なジオメトリの処理をユーザが手動で無効にできるようになりました。SQLサーバ接続のプロパティの下にある不正なジオメトリの処理をスキップする」をオンにすると、QGISはコストのかかるジオメトリ評価処理をスキップしますが、データベースの全ての地物が妥当なジオメトリを確実に持つようにする責任が、ユーザ/データベース管理者に動きます。これは「自身の責任で使用する」設定です。間違えてこのオプションを有効にすると、地物が欠けたりデータが無くなったりする可能性があります。

この機能は、 Nyall Dawson (North Road) によって開発されました

QGISサーバ

機能: サーバキャッシュがプラグインで管理できるようになりました

デフォルトでは、QGISサーバはWMS GetCapabilities文書をメモリにキャッシュするだけでした。WMTS実装では、タイルをキャッシュする方法を持つことが重要です。しかし、キャッシュマネージャはタイルのキャッシュ以外のためにも開発しています。

キャッシュマネージャ プラグインは、次にあげるもののキャッシュに使われます。

  • WMS, WFS, WCS, WMTS GetCapabilities文書
  • WFS DescribeFeatureType文書
  • WCS DescribeCoverage文書
  • WMTS GetTile画像
  • WMS GetLegendGraphic画像

次にPythonのキャッシュマネージャクラスを示します。ただし、このクラスはQGISプロジェクトが変更されたかの確認を行いません。

class PyServerCache(QgsServerCacheFilter):

    """ Used to have cache control """

    def __init__(self, server_iface):
        super(QgsServerCacheFilter, self).__init__(server_iface)

        self._cache_dir = os.path.join(tempfile.gettempdir(), "qgs_server_cache")
        if not os.path.exists(self._cache_dir):
            os.mkdir(self._cache_dir)

        self._tile_cache_dir = os.path.join(self._cache_dir, 'tiles')
        if not os.path.exists(self._tile_cache_dir):
            os.mkdir(self._tile_cache_dir)

    def getCachedDocument(self, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))

        if not os.path.exists(os.path.join(self._cache_dir, m.hexdigest() + ".xml")):
            return QByteArray()

        doc = QDomDocument(m.hexdigest() + ".xml")
        with open(os.path.join(self._cache_dir, m.hexdigest() + ".xml"), "r") as f:
            statusOK, errorStr, errorLine, errorColumn = doc.setContent(f.read(), True)
            if not statusOK:
                print("Could not read or find the contents document. Error at line %d, column %d:\n%s" % (errorLine, errorColumn, errorStr))
                return QByteArray()

        return doc.toByteArray()

    def setCachedDocument(self, doc, project, request, key):
        if not doc:
            print("Could not cache None document")
            return False
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))
        with open(os.path.join(self._cache_dir, m.hexdigest() + ".xml"), "w") as f:
            f.write(doc.toString())
        return os.path.exists(os.path.join(self._cache_dir, m.hexdigest() + ".xml"))

    def deleteCachedDocument(self, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))
        if os.path.exists(os.path.join(self._cache_dir, m.hexdigest() + ".xml")):
            os.remove(os.path.join(self._cache_dir, m.hexdigest() + ".xml"))
        return not os.path.exists(os.path.join(self._cache_dir, m.hexdigest() + ".xml"))

    def deleteCachedDocuments(self, project):
        filelist = [f for f in os.listdir(self._cache_dir) if f.endswith(".xml")]
        for f in filelist:
            os.remove(os.path.join(self._cache_dir, f))
        filelist = [f for f in os.listdir(self._cache_dir) if f.endswith(".xml")]
        return len(filelist) == 0

    def getCachedImage(self, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))

        if not os.path.exists(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png")):
            return QByteArray()

        img = QImage(m.hexdigest() + ".png")
        with open(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"), "rb") as f:
            statusOK = img.loadFromData(f.read())
            if not statusOK:
                print("Could not read or find the contents document. Error at line %d, column %d:\n%s" % (errorLine, errorColumn, errorStr))
                return QByteArray()

        ba = QByteArray()
        buff = QBuffer(ba)
        buff.open(QIODevice.WriteOnly)
        img.save(buff, 'PNG')
        return ba

    def setCachedImage(self, img, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))
        with open(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"), "wb") as f:
            f.write(img)
        return os.path.exists(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"))

    def deleteCachedImage(self, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))
        if os.path.exists(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png")):
            os.remove(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"))
        return not os.path.exists(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"))

    def deleteCachedImages(self, project):
        filelist = [f for f in os.listdir(self._tile_cache_dir) if f.endswith(".png")]
        for f in filelist:
            os.remove(os.path.join(self._tile_cache_dir, f))
        filelist = [f for f in os.listdir(self._tile_cache_dir) if f.endswith(".png")]
        return len(filelist) == 0

QGISサーバのキャッシュマネージャにこれを追加する方法は次の通りです。

servercache = PyServerCache(server_iface) server_iface.registerServerCache(servercache, 100)

この機能は Ifremer が資金提供しました。

この機能は 3Liz が開発しました。

機能: WMTS 1.0.0対応

QGISサーバ 3.4はOGC標準のWMTS 1.0.0に対応しています。

QIGSプロジェクトプロパティでは、ユーザは次の通り定義できます。

  • プロジェクトのどの部分がWMTS標準を通して発行されなければならないか (プロジェクト全体、レイヤグループ、またはレイヤ)
  • タイルの最小スケール

QGISサーバはWMSで定義されたCRS定義をWMTSに再使用します。

タイルキャッシュの管理のために、QgsServerCacheFilterクラスを持つQGISサーバプラグインがインストールされていなければならず、かつ、QGISサーバにロードされていなければなりません。

image34

この機能は Ifremer が資金提供しました。

この機能は 3Liz が開発しました。

機能: WMTSの最小スケールの定義機能の追加

この機能は https://github.com/rldhont によって資金提供されました

この機能は https://github.com/rldhont によって開発されました

機能: QGISサーバの標準エラー出力へのログ出力対応

QGISサーバにログを標準エラー出力に書かせるコンフィギュレーションが可能になっています。環境変数QGIS_SERVER_LOG_FILEに」stderr」という特別な値を設定します。

この機能は OSLANDIA によって資金提供されました

この機能は Eric Lemoine によって資金提供されました

プラグイン

機能: プラグインマネージャ内の暗号化ZIPへの対応

プラグインマネージャはローカルのZIPファイルから、暗号化されていてでも、インストールできます。

image35

この機能は Borys Jurgiel によって資金提供されました

この機能は Borys Jurgiel によって開発されました

機能: GeoPackageのオフライン編集

オフライン編集機能で、エクスポートでSpatiaLiteかGeoPackageファイルをオフライン使用のために作成するかどうかを選択できるようになりました。

この機能は Oester Messtechnik によって資金提供されました

この機能は David Signer (OPENGIS.ch) によって開発されました

プログラム可能

機能: QgsSpatialIndexKDBush

KD木をもとにした、非常に速い2次元ポイント用の静的空間インデックスです。 https://github.com/mourner/kdbush.hpp を使っています。

QgsSpatialIndexとくらべて、このインデックスは、単一ポイントの地物にだけ対応し (マルチポイントにも対応していない)、静的で (構築後にインデックスの地物の加除ができない)、しかし、非常に速いです!探索点から半径内のポイントを全て返すといった、本当の「距離を基準とした」探索に対応しています。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: ラスタの与えられたポイントでの効率的なサンプリングに使われるQgsRasterDataProvider::sampleメソッド

これは、 QgsRasterDataProvider::identify メソッドの代替です。効率は低いですがパワフルです。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: 曲線サブストリングを返す新しいジオメトリAPI

ラインストリング/曲線ジオメトリから部分線を検索するのが容易となる新しいPyGIS APIが追加されました。

QgsCurve::curveSubstring - 曲線の一部を表現する新しい曲線を返します。開始距離と終了距離を指定します。

Z値またはM値が存在する場合には、出力のZ値とM値は、存在する頂点のZ値やM値を用いて補間されます。このメソッドは、曲線ジオメトリを消滅や分割を行わない処理も行います。

この機能は North Road によって資金提供されました

この機能は、 Nyall Dawson (North Road) によって開発されました

機能: sipモジュールAPIの変更

上流であるPyQt/sipライブラリ内の変更のため、このモジュールをインポートするための推奨される方法は、QGIS 3.4で変更になりました。ポータビリティ最大化のために、 import sip の直接呼び出しの代わりに、プラグインには from qgis.PyQt import sip を使います。この新しいインポート方法を使うことで、コードが全てのプラットフォームで正しく動作し、かつ、QGISの将来のバージョンでも機能します。

機能: ベクタデータプロバイダ

ピュアPythonで、ベクタデータプロバイダの生成を可能にするAPIとサンプルプロバイダとテストの開発です。

image36

この機能はGood willが資金提供しました

この機能はAlessandro Pasottiが開発しました

3次元機能

機能: ナビゲーションの改良

カメラが動くとビューの中心が更新されます。以前はビューの中心が常に標高0でしたので、0から大きく離れた標高ではカメラのチルトと回転が奇妙に感じられました。

ページアップ/ダウンキーでカメラを上/下に移動できるようになりました

Ctrl+方向キー/マウスで姿勢を保持したカメラの移動

image37

この機能は QGIS community through crowd-funding の資金提供により開発されました。

この機能は `Martin Dobias(Lutra Consulting) <https://www.lutraconsulting.co.uk/> `__ によって開発されました。

機能: アニメーション

キーフレーム (特定時刻のカメラ姿勢)の集合に基づいたアニメーションを作成できるようになりました。キーフレーム間のカメラの位置/回転は補完されます。

キーフレームの作成には、まず、カメラの回転、ズーム、移動によるシーン設定を行います。次にフレームに任意の時刻を割り当てます。キーフレーム間の補間には複数のメソッドがあります。

image38

この機能は QGIS community through crowd-funding の資金提供により開発されました。

この機能は Martian Dobias (Lutra Consulting) によって開発されました

機能: 3次元ラインストリングのシンプル描画

この3次元ライン描画モードでは、ラインにバッファリングをかけてポリゴンに変換してメッシュとして描画するのでなくOpenGLライン描画が使われます。

利点は、3次元ラインでZ値を失わないことです。これは今のところ、バッファリング後に描画を行う「通常の」3次元レンダリングには当てはまります。

欠点は、ライン幅が太くならないことです (Qt3Dでは5.10以上に限って対応していますが、それども描画の接続やキャップが良くありません)。また、マテリアルのうち使われているのはアンビエント色だけです。

image39

この機能は Lutra Consulting によって資金提供されました

この機能は `Martin Dobias(Lutra Consulting) <https://www.lutraconsulting.co.uk/> `__ によって開発されました。

機能: 3次元ビュー用マップ識別ツール

3次元地図に新しい識別ツールを導入しました。このツールを使うと、3次元シーンから地物を調査することができます。

image40

この機能は Department of Environment, Land and Infrastructure Engineering (DIATI) によって資金提供されました

この機能は Martin Dobias (Lutra Consulting)Faunalia とによって開発されました

機能: 試験的なPython API

QGIS 3次元のクラスの一部は、Python開発者が利用できるようになりました。地図レイヤの3次元描画と、マテリアルカラーのような3次元シンボルの読み取り/書き込みプロパティとを、参照または変更できるようになりました。現時点ではAPI は実験的なもので、将来の3. xで変更されるかも知れませんのでご注意下さい。

この機能は Lutra Consulting によって資金提供されました

この機能は `Martin Dobias(Lutra Consulting) <https://www.lutraconsulting.co.uk/> `__ によって開発されました。