Outdated version of the documentation. Find the latest one here.

.

サポートされるデータ形式

QGIS は ESRI Shapefiles, MapInfo, Microstation ファイル形式AutoCAD DXF,PostGIS,SpatiaLite,Oracle Spatiale と MSSQL Spatialデータベースとその他の多くのが含まれるベクタデータ形式を読み書きするためにOGRライブラリを使っています. GRASS ベクタ, PostgreSQL は QGIS のネイティブデータプロバイダでサポートされています. ベクタデータは zip と gzip アーカイブから QGIS に読み込むこともできます. このドキュメントが書かれた時点で, 69 種類のベクタ形式が OGR ライブラリでサポートされています ( OGR-SOFTWARE-SUITE 文献とWeb参照 参照). OGR ライブラリによるベクタデータサポートの完全なリストは http://www.gdal.org/ogr/ogr_formats.html を参照して下さい.

ノート

様々な理由で QGIS ではすべてのリストされた形式が利用できるわけではありません. 例えばいくつかの外部商用ライブラリが必要だったり,あなたのOSのGDAL/OGRが利用したい形式用にビルドされていないというようなことが考えられます. よくテストされている形式のファイルタイプだけがベクタを QGIS にロードするところで表示されます. その他のあまりテストされていない形式は *.* で選択できます.

GRASS ベクタデータの利用方法はセクション GRASS GIS の統合 に記述されています.

このセクションでは多くの共通形式でどのように作業を行うかが記述されています.共通形式とはESRI Shapefiles,PostGISレイヤとSpatialiteレイヤ,OpenStreetMapベクタとコンマ区切りデータ(CSV)等です. QGIS の多くの機能はベクタデータソースが異なっても同じように動作します.このようにシステムが設計されているので地物情報表示,選択,ラベリングや属性操作等の動作が同じように動きます.

ESRI Shapefiles

The standard vector file format used in QGIS is the ESRI shapefile. Support is provided by the OGR Simple Feature Library (http://www.gdal.org/ogr/).

ひとつのshapefileは実際多くのファイルで構成されています.以下の3個が必須のものです:

  1. .shp ファイルは地物のジオメトリを持ちます.

  2. .dbf ファイルはdBase形式で属性を保持します.

  3. .shx はインデックスファイルです.

Shapefilesではさらに .prj という拡張子のファイルが含まれることがあります, このファイルには投影法の情報が保持されています. プロジェクションファイルがあると便利ですが,このファイルは必須のファイルではありません. shapefile データセットは追加のファイルを持つことができます. さらに詳細な情報は ESRI technical specification at: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf を参照して下さい.

Shapeファイルのロード

To load a shapefile, start QGIS and click on the mActionAddOgrLayer Add Vector Layer toolbar button, or simply press Ctrl+Shift+V. This will bring up a new window (see figure_vector_1).

Figure Vector 1:

../../../_images/addvectorlayerdialog.png

ベクタレイヤ追加ダイアログ nix

利用可能なオプションから radiobuttonon File をチェックして下さい. それから [Browse] ボタンをクリックして下さい . そうすると標準ファイルダイアログ ( figure_vector_2 を参照)が表示されファイルシステム内をナビゲートしてshapefileまたはその他のサポートされているデータソースを開くことができます. Filter selectstring を使うといくつかのOGRでサポートされているファイル形式をプリセレクトできます.

必要ならばshapefileのエンコーディングを指定することができます.

Figure Vector 2:

../../../_images/shapefileopendialog.png

OGRがサポートするベクタレイヤダイアログを開く nix

リストからshapefileを選択して [Open] をクリックすると QGIS に選択したファイルがロードされます.Figure_vector_3 には QGIS に alaska.shp をロードした状態が表示されています.

Figure Vector 3:

../../../_images/shapefileloaded.png

アラスカのShapeファイルがロードされた QGIS nix

ちなみに

レイヤ色

地図にレイヤを追加するとランダムな色が割り当てられます.複数のレイヤを一度に追加することができますが,その場合それぞれのレイヤには異なる色が割り当てられます.

一度ロードしてしまえば地図ナビゲーションツールを使ってshapefileをズームすることができます. レイヤのスタイルを変えたい場合はレイヤ名をダブルクリックするか凡例でマウス右ボタンで表示されるポップアップメニューから プロパティ を選択して表示される レイヤプロパティ ダイアログ を開いて下さい. See Section詳しい情報はベクタレイヤのシンボロジ設定の スタイルメニュー を参照して下さい.

ちなみに

OS Xで外部ドライブからレイヤとプロジェクトをロードする

OS Xでプライマリハードドライブ以外にマウントされるポータブルドライブは File ‣ Open Project に期待されているように表示されません.私たちはOSX-ネイティブopen/saveダイアログを作ることでこの問題を解決しました.ファイル名ボックスで作業するときに ‘/Volumes’ と打ち込んでから return を押してください. そうすると外部ドライブやネットワークマウントの中を見ることができます.

Shapeファイルのパフォーマンスを改善する

空間インデックスを作ることによってShapefileの描画パフォーマンスを改善することができます.空間インデックスはズームとパンの両方の速度を改善します. QGIS では .qix という拡張子のファイルを空間インデックスとして利用します.

これらの手順でインデックスを作成できます:

  • shapefileをロードするためには, ツールバーボタンの mActionAddOgrLayer ベクタレイヤの追加 をクリックするか Ctrl+Shift+V とタイプして下さい.

  • Open the Layer Properties dialog by double-clicking on the shapefile name in the legend or by right-clicking and choosing Properties from the context menu.
  • In the General tab, click the [Create Spatial Index] button.

shapeの .prj ファイル読み込み時の問題

shapefile を .prj ファイルつきでロードする場合 QGIS はそのファイルの空間参照システムを読むことはできません, そこでそのレイヤの Layer Properties ダイアログの General タブで [Specify...] ボタンをクリックして投影法を設定する必要があります. これは .prj ファイルはしばしば QGIS で利用され CRS ダイアログでリストされている完全な投影法パラメータを提供していないからです.

この理由により QGIS で新しいshapefileを作成すると2個の異なるプロジェクションファイルが作成されます. ひとつは .prj というファイルでESRIのソフトウェア互換の限られたパラメータで構成されます, そしてもうひとつは .qpj  というファイルで利用されているCRSの全てのパラメータを提供しています. QGIS が .qpj ファイルを見つけた場合は .prj ファイルの代わりに利用されます

Mapinfoレイヤのロード

mActionAddOgrLayer To load a MapInfo layer, click on the mActionAddOgrLayer Add Vector Layer toolbar button; or type Ctrl+Shift+V, change the file type filter Files of type selectstring: to ‘Mapinfo File [OGR] (*.mif *.tab *.MIF *.TAB)’ and select the MapInfo layer you want to load.

Arcinfoバイナリカバレッジのロード

mActionAddOgrLayer ArcInfo binary coverageをロードする場合, ツールバーボタン mActionAddOgrLayer ベクタレイヤの追加 をクリックするかキーボードで Ctrl+Shift+V をタイプして ベクタレイヤの追加 ダイアログを開いて下さい. radiobuttonon Directory を選択して下さい. Filter selectstring を ‘Arc/Info Binary Coverage’ に変えて下さい. カバレッジファイルが存在するディレクトリにナビゲートして選択して下さい.

UK National Transfer Format をUS Census BureauのTIGER形式と同じように直接ベクタファイルで読むことができます.

デリミテッドテキストファイル

表形式のデータは読みやすくシンプルなので広く共通に利用される形式です – データはプレインテキストエディタで閲覧や編集もできます. デリミテッドテキストファイルはそれぞれのカラムが指定された文字で区切られ各行がラインブレークで構成されている属性テーブルです. 通常最初の行にはカラム名が格納されます. 一般的なデリミテッドテキストファイルはそれぞれのカラムがコンマで区切られたCSVです (Comma Separated Values).

そのようなデータファイルは位置情報を2種類の形式で持つことができます:

  • 点の座標を区切られたカラムとして持ちます

  • ウェルノウンテキスト(WKT)としてジオメトリをあらわします

QGIS ではデリミテッドテキストファイルをレイヤまたは普通のテーブルとしてロードすることができます. しかしそのファイルには以下の必要条件があることを最初にチェックして下さい:

  1. ファイルは区切り文字で区切られたフィールド名が記述されたヘッダ行が必要です. これはテキストファイルの先頭の行になければいけません.

  2. ヘッダ行はジオメトリが定義されたカラムを持たなければいけません. これらのフィールドは任意の名前をつけられます.

  3. x座標とy座標は(ジオメトリが座標で定義されている場合)数値である必要があります.座標系は重要ではありません.

elevp.csv は標高ポイントデータをインポートする正しい型式のデリミテッドテキストファイルの例で QGIS サンプルデータセットに付属しています.( サンプルデータ のセクションを参照):

X;Y;ELEV
-300120;7689960;13
-654360;7562040;52
1640;7512840;3
[...]

このサンプルテキストファイルについての解説:

  1. 例のテキストファイルでは ; (セミコロン) を区切り文字として使っています.どんな文字でもフィールドの区切り文字として使うことができます.

  2. 最初の行はヘッダーです.それには X, Y および``ELEV``のフィールドが含まれています.

  3. 引用符(")はテキストフィールドを区切るのに使われません

  4. X座標は``X`` フィールドに含まれています.

  5. y座標は``Y``フィールドに含まれています.

デリミテッドテキストファイルをロードしています

Manage layers ツールバーにあるアイコン delimited_text デリミテッドテキストレイヤの追加 をクリックすると  Create a Layer from a Delimited Text File ダイアログを figure_delimited_text_1 のように開きます.

Figure Delimited Text 1:

../../../_images/delimited_text_dialog.png

デリミティッドテキストダイアログ nix

最初にインポートするファイル(例., qgis_sample_data/csv/elevp.csv) を [Browse] ボタンをクリックして選択して下さい. ファイルが一度選択されると, QGIS はもっとも最近に利用した区切り文字を使ってファイルを解析しようとします. QGIS でファイル解析を可能にするためには正しい区切り文字を選択することが重要です. radiobuttonon Custom delimiters をアクティブにするか radiobuttonon Regular expression delimiter をアクティブにして Expression フィールドにテキストを入力することで区切り文字を指定することができます. たとえば区切り文字をタブにしたい場合 \t を入力して下さい (これはタブ文字の正規表現です).

ファイルの解析が行われると Geometry definition radiobuttononPoint coordinates が作成され XY フィールドをドロップダウンリストから選択する必要があります. もし座標が度/分/秒で定義されている場合は checkbox DMS coordinates チェックボックスをアクティブにして下さい.

Finally, enter a layer name (e.g., elevp), as shown in figure_delimited_text_1. To add the layer to the map, click [OK]. The delimited text file now behaves as any other map layer in QGIS.

フィールドの前と後の空白を除去するヘルパーオプションがあります — checkbox 前後の空白削除. またこのオプションも使えますAlso checkbox 空フィールドを削除. 必要ならばコンマを数字の桁区切り文字にすることができます checkbox コンマを小数点区切りに利用.

もし空間情報がWKTで記述されている場合 radiobuttonon Well Known Text オプションを有効にして点、線またはポリゴンオブジェクトを定義しているWKTが格納されているフィールドを選択して下さい. もしファイルが空間情報を持っていない場合は radiobuttonon No geometry (attribute only table) を有効にして下さい,このデータは通常のテーブルとしてロードされます.

その他に次のことが可能です:

  • checkbox 空間インデックスの利用 をチェックすると表示のパフォーマンスや空間条件での地物選択パフォーマンスを向上させます.

  • checkbox サブセットインデックスの利用.

  • checkbox ファイル監視 QGIS が実行している間に他のアプリケーションがファイルを変更しないかどうか監視をします.

OpenStreetMap データ

近年, オープンストリートマップ(OpenStreetMap: OSM)プロジェクトが人気を集めています. 多くの国では, 自由に利用できる地図データが無いからです. OSMプロジェクトの目的は, GPSデータ, 航空写真, そして編集者自身が持つ知識を利用して, 自由に編集可能な世界地図を作成することです. これをサポートするために, QGIS ではOSMデータと連携するプラグインを提供しています.

OpenStreetMapベクタの読み込み

QGIS ではOpenStreetMapデータのインポート機能をコア機能として統合しています.

  • OSM サーバに接続してデータをダウンロードするためにはメニューの ベクタ ‣ Openstreetmap ‣ Load data を選択して下さい. もし JOSMやOverpass APIや他のソースを使って .osm XMLファイルをすでに取得している場合はこのステップをスキップできます.

  • メニュー ベクタ‣ Openstreetmap ‣ XML からトポロジーインポート を使うと .osm ファイルを spatialite データベースに変換してdb接続を作成します.

  • menu ベクタ ‣ Openstreetmap ‣ Spatialiteへのトポロジーエキスポート を利用するとデータベース接続を開くことができます, 必要なデータのタイプ (points, lines, または polygons) を選びインポートするタグを選択して下さい. これによってspatialiteのジオメトリレイヤができツールバーボタンの mActionAddSpatiaLiteLayer SpatiaLite レイヤの追加 をクリックするか レイヤ メニューの mActionAddSpatiaLiteLayer SpatiaLite レイヤの追加... を選択するとプロジェクトに追加をすることができます( セクション SpatiaLite レイヤ を参照して下さい).

PostGIS レイヤ

PostGIS レイヤは PostgreSQL データベースに格納されます. PostGISの利点は空間インデックス,フィルタリングとクエリー機能が提供されていることです. PostGISを使うと選択や地物情報表示等のベクター機能を QGIS のOGRレイヤより正確に利用することができます.

ストアドコネクションの作成

mActionAddPostgisLayer PostGIS データソースを最初に使う時に, データを保持しているPostgreSQLデータベースへのコネクションを作成する必要があります. ツールバーボタン mActionAddPostgisLayer :sup:` PostGIS レイヤの追加` のクリック, レイヤ メニューの mActionAddPostgisLayer PostGIS レイヤの追加... オプションの選択または Ctrl+Shift+D のタイプで処理を開始できます. また ベクタレイヤの追加 ダイアログを開いて radiobuttonon データベース を選択しても処理を行えます. PostGIS テーブル(s)を追加 ダイアログが表示されます. コネクションマネージャを利用する場合は [新規] ボタンをクリックして 新規 PostGIS 接続を作成 ダイアログを表示して下さい. 接続を作成するためには次のパラメータが必要です:

  • Name: このコネクションの名前. Database と同じにすることも可能.

  • Service: hostname/port (それと利用可能データベース)の代わりに利用するサービスパラメータ. これはファイル pg_service.conf にも定義できます

  • Host: データベースホストの名前. この名前はtelnet接続やホストへのpingを行うときと同じようにシステムから理解される名前でなければいけません. もしデータベースが QGIS と同じコンピュータにある場合は単純に ‘localhost’ とここに記述して下さい.

  • Port: PostgreSQL データベースサーバが接続待ちをしているポート番号. デフォルトポートは5432 です.

  • データベース: データベースの名称

  • SSL モード: SSL接続がどのようにサーバとネゴシエーションするかの指定. 注 PostGIS レイヤレンダリングの速度は接続エディタでSSLを禁止するととても早くなります. 以下のオプションが利用可能です:

    • Disable: 暗号化されていないSSL接続の場合のみ試みる

    • allow: SSLコネクションの試行に失敗した場合非SSLコネクションの試行をする.

    • prefer (デフォルトです): SSLコネクションを試行します.もし失敗したら非SSLコネクションを試行します.

    • require: SSLコネクションのみを試行します.

  • Username: データベースにログインするユーザー名.

  • Password: データベースに接続するために Username と一緒に利用するパスワード.

オプションで以下のチェックボックスをアクティブにできます:

  • checkbox ユーザ名の保存

  • checkbox パスワードの保存

  • checkbox :guilabel: geometry_columns テーブルの中のみを参照する

  • checkbox 制限されていないカラム(GEOMETRY)の型解決を行わない

  • checkbox :guilabel:` ‘public’ スキーマのみを参照する`

  • checkbox ジオメトリを持たないテーブルもリストする

  • checkbox 推定されるテーブルメタデータを利用する

すべてのパラメータとオプションを設定した後で [接続テスト] ボタンをクリックして接続テストを行うことができます.

ちなみに

QGISユーザ設定とセキュリティ

Depending on your computing environment, storing passwords in your QGIS settings may be a security risk. Your customized settings for QGIS are stored based on the operating system:

  • nix 設定 はあなたのホームディレクトリの .qgis2/ に格納されます.

  • win 設定はレジストリに格納されます.

PostGIS レイヤの読み込み

mActionAddPostgisLayer 1本以上の接続を定義した後はPostgreSQL データベースからレイヤをロードできます. もちろんPostgreSQLにデータが格納されている必要があります. セクション PostgreSQLへのデータインポート を参照するとデータベースへのデータインポート方法について記述されています.

PostGISからレイヤをロードするには、以下のステップを実行します:

  • If the Add PostGIS layers dialog is not already open, selecting the mActionAddPostgisLayer Add PostGIS Layer... option from the Layer menu or typing Ctrl+Shift+D opens the dialog.
  • ドロップダウンリストから接続を選択して [Connect] をクリックして下さい.

  • checkbox ジオメトリを持たないテーブルもリストする を選択または非選択にできます

  • オプションで checkbox Search Options 使うとレイヤからどの地物をロードするか定義できます,また [Build query] ボタンを使うと Query builder ダイアログを開始できます.

  • 有効なレイヤリストからあなたが利用したいレイヤを探してください.

  • クリックすると選択できます. Shift キーを押しながらクリックすると複数のレイヤを選択することができます. PostgreSQLクエリビルダを使ってレイヤを高度に利用する方法についてはセクション クエリビルダー を参照して下さい.

  • [追加] ボタンをクリックし、マップにレイヤを追加します。

ちなみに

PostGIS レイヤ

通常の PostGIS レイヤは geometry_columns テーブルのエントリで定義されます. バージョン 0.9.0 から, QGIS では geometry_columns テーブルエントリを持たないレイヤをロードすることができます. この機能はテーブルとビュー両方に適用できます. 空間ビューを定義することによってあなたのデータをパワフルに可視化することができます. ビューの作成については PostgreSQL マニュアルを参照して下さい.

PostgreSQLレイヤに関する詳細情報

このセクションでは QGIS がどのようにPostgreSQLレイヤにアクセスするかのいくつかの詳細が含まれています. ほとんどの場合 QGIS は単純にロード可能なデータベーステーブルのリストを提供してそれらに対して要求してロードを行います. それにもかかわらず もしPostgreSQL テーブルを QGIS にロード失敗した場合, 以下の情報が QGIS メッセージを理解するための助けになり PostgreSQLテーブルやビューの定義を QGIS にロードできるように変更する方法を見つける手助けになります.

QGIS では PostgreSQL レイヤにレイヤユニークキーとなるカラムを持つことを必須としています. テーブルの場合通常テーブルはプライマリキーが必要であるかユニーク制約を持つカラムがあるといいです. In QGIS ではこのカラムの型は int4タイプ (4バイト整数)である必要があります. 別の方法として ctid カラムをプライマリキーとして使うことができます. もしテーブルがそれらのアイテムを持っていない場合 oid カラムが代わりに利用されるでしょう. カラムにインデックスが作成されているとパフォーマンスが向上します (注 プライマリキーはPostgreSQLでは自動的にインデックスが作成されます).

もしPostgreSQL レイヤがviewの場合同じ制約が必要です, しかしviewsはプライマリキーを持たなかったりユニーク制約のカラムがなかったりします. viewをロードする前に QGIS ダイアログでプライマリキーフィールド ( integerでなければいけません) を定義する必要があります. viewに適切なカラムが無い場合, QGIS ではそのviewをレイヤとしてロードできません. この問題が発生した場合適切なカラムがふくまれるようにviewを作り直すやりかたが解決方法です ( integer 型でプライマリキーであるかユニーク制約があること,インデックスされているとパフォーマンスが向上します).

QGIS では Select at id チェックボックスを提供していてデフォルトではアクティブです. このオプションを使うと属性を使わずにidを取得することができ,多くの場合最も高速です. 複雑なビューを使う場合このオプションを無効にするといい場合があります.

PostgreSQLへのデータインポート

PostgreSQL/PostGISへのデータインポートはSPITプラグインまたはshp2pgsqlやogr2ogrのようなコマンドラインツールのような様々なツールで実行できます.

DBマネージャ

QGIS では icon_dbmanager DB Manager という名前のコアプラグインが使えるようになりました. これを使うとshapefileをロードして他のデータ形式やスキーマサポートに利用できます. 詳しい情報はセクション DB マネージャプラグイン を参照して下さい.

shp2pgsql

PostGISはshapefileをPostGISにインポートする shp2pgsql というユーティリティを持っています. 例えば lakes.shp というshapefileを gis_data というPostgreSQLデータベースにインポートする場合以下のコマンドを使って下さい:

shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data

ここで gis_data データベースに lakes_new という名前の新しいレイヤが作成されます. 新しいレイヤは2964という空間参照識別子 (SRID) を持ちます. 空間参照システムと投影についてはセクション 投影法の利用方法 を参照して下さい.

ちなみに

PostGISからデータセットをエキスポートする

インポートツール shp2pgsql と同じように PostGIS-データセットをshapefileとしてエキスポートするツールがあります: pgsql2shp. これはあなたのPostGISディストリビューションと一緒に出荷されています.

ogr2ogr

Besides shp2pgsql and DB Manager, there is another tool for feeding geodata in PostGIS: ogr2ogr. This is part of your GDAL installation.

shapefileをPostGISにインポートする手順は以下のとおりです:

ogr2ogr -f "PostgreSQL" PG:"dbname=postgis host=myhost.de user=postgres
password=topsecret" alaska.shp

これによって shapefile alaska.shp を サーバ myhost.de. の PostGISデータベース postgis にユーザ postgres パスワード topsecret でインポートします.

注 PostGISをサポートする場合はOGRがPostgreSQLを組み込んでビルドされていなければなりません.次のようにタイプすると確認できます( nix の場合)

ogrinfo --formats | grep -i post

もしデフォルトの INSERT INTO メソッドの代わりに PostgreSQLの COPY -command を使いたい場合は以下の環境変数をエキスポートすることができます(少なくても nixosx の場合は可能です):

export PG_USE_COPY=YES

ogr2ogrshp2pgsl のように空間インデックスを作成しません. 空間インデックスを作るためには特別ステップとして手動で通常のSQLコマンド CREATE INDEX を発行する必要があります (次のセクション パフォーマンスの改善 で説明しています).

パフォーマンスの改善

PostgreSQLデータベースから地物を取得する場合時間がかかります, とりわけネットワークごしの場合は時間がかかります.PostgreSQLレイヤの描画パフォーマンスを向上させる場合データベースのそれぞれのレイヤに PostGIS 空間インデックス を作成することが確実です. PostGIS は GiST (Generalized Search Tree) インデックス を作成することでデータの空間検索速度を向上させることをサポートしています (GiST インデックスの情報はPostGIS ドキュメンテーション http://postgis.refractions.net から参照することができます).

GISTインデックス作成シンタックスは次のとおりです

CREATE INDEX [indexname] ON [tablename]
  USING GIST ( [geometryfield] GIST_GEOMETRY_OPS );

注 巨大テーブルでインデックスを作ると長い時間がかかります.一度インデックスを作成したら VACUUM ANALYZE を実行する必要があります. 詳しくは PostGIS ドキュメンテーション (POSTGIS-PROJECT 文献とWeb参照) を見て下さい.

以下はGISTインデックス作成の例です

[email protected]:~/current$ psql gis_data
Welcome to psql 8.3.0, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

gis_data=# CREATE INDEX sidx_alaska_lakes ON alaska_lakes
gis_data-# USING GIST (the_geom GIST_GEOMETRY_OPS);
CREATE INDEX
gis_data=# VACUUM ANALYZE alaska_lakes;
VACUUM
gis_data=# \q
[email protected]:~/current$

経度 180° をまたぐベクタレイヤ

多くのGISパッケージではジオグラフィックリファランスシステム(緯度/経度)で 経度180度をまたぐライン のベクタマップを含んでいません (http://postgis.refractions.net/documentation/manual-2.0/ST_Shift_Longitude.htm). ですからそのような地図を QGIS で開くと隣接しなければいけない場所が2個の離れた異なる領域で表示されます. Figure_vector_4 で地図キャンバスの左側の小さい点 (Chatham Islands)はニュージーランドの本島の右側にグリッドにあるべきです.

Figure Vector 4:

../../../_images/vectorNotWrapping.png

経度 180° をまたぐラインがある緯度/経度地図 nix

この問題の回避方法は経度の値を PostGIS の ST_Shift_Longitude 関数を使って変換することです この関数はジオメトリのそれぞれの地物のコンポーネント中の点/頂点を読んで,それの経度が < 0° の場合 360° を加算します. その結果は 0° - 360° の間になり 180° が中心の地図にプロットできます.

Figure Vector 5:

../../../_images/vectorWrapping.png

経度 180° をまたぐため ST_Shift_Longitude 関数の適用した結果

利用方法

  • DBマネージャプラグインを利用したPostGIS (PostgreSQLへのデータインポート) へのデータインポート例.

  • PostGISコマンドラインインターフェースを利用して以下のコマンドを発行して下さい (これは例で “TABLE” のところはあなたのPostGISテーブルの実際の名前にして下さい): gis_data=# update TABLE set the_geom=ST_Shift_Longitude(the_geom);

  • すべてがうまくいけば更新された地物の数についての確認を求められます,それから地図をロードして違いを見ることができるでしょう (Figure_vector_5).

SpatiaLite レイヤ

mActionAddSpatiaLiteLayer SpatiaLite データベースから最初にデータをロードする場合ツールバーの mActionAddSpatiaLiteLayer SpatiaLite レイヤの追加 ボタンをクリックするか レイヤ メニューの mActionAddSpatiaLiteLayer SpatiaLite レイヤの追加... を選択するか Ctrl+Shift+L をタイプして下さい. これによりウィンドウを開いて QGIS ですでに設定されているSpatiaLite データベースにドロップダウンメニューから選択して接続するか あたらしいデータベース接続定義を作ることができます. 新しい接続定義を作成する場合 [新規] をクリックしてファイルブラウザであなたのSpatialiteデータベースの .sqlite というエクステンションのファイルを指定して下さい.

ベクタレイヤをSpatiaLite形式で保存したい場合凡例でそのレイヤを右クリックして下さい. それから 名前をつけて保存.., を選択して出力ファイル名を指定して下さい, ‘SpatiaLite’ を形式として選択して CRSを指定して下さい. ‘SQLite’ を形式として選択することもできます, その場合 SPATIALITE=YES を OGR データソース作成オプションフィールドに指定して下さい. この指定で OGR に SpatiaLite データベースを作成することを伝えます. http://www.gdal.org/ogr/drv_sqlite.html も参照して下さい.

QGIS はまた、 SpatiaLiteでの編集可能なビューをサポートしています。

新規 SpatiaLite レイヤの作成

新しいSpatiaLiteレイヤを作成したい場合は 新規Spatialiteレイヤの作成. を参照して下さい.

ちなみに

SpatiaLite データ管理プラグイン

SpatiaLiteのデータ管理には多くのPython plugins: QSpatiaLite, SpatiaLite Manager または DB Manager (コアプラグイン, 推奨)を利用できます. これらはプラグインインストーラでダウンロード,インストールできます.

MSSQL Spatial レイヤ

mActionAddMssqlLayer QGIS はネイティブでMS SQL 2008 をサポートしています. 初めて MSSQL 空間データをロードする時は ツールバーの mActionAddMssqlLayer Add MSSQL Spatial Layer ボタンをクリックするか Layer メニューの mActionAddMssqlLayer Add MSSQL Spatial Layer... オプションを選択するかキーボードで Ctrl+Shift+M とタイプしてください.

Oracle Spatial レイヤ

Oracle Spatial の空間機能はユーザがOracleデータベースのネイティブ型を使って地理情報や位置情報を管理することを助けます. QGIS は現在そのようなレイヤをサポートします.

ストアドコネクションの作成

mActionAddOracleLayer ORACLE Spatial データソースを最初に利用する場合, 利用したいデータが含まれているデータベースへのコネクションを作成しなければなりません. ツールバーボタンの mActionAddOracleLayer Add ORACLE Spatial Layer をクリックするか Layer メニューの Add ORACLE Spatial Layer... オプションを選択するかキーボードで Ctrl+Shift+O とタイプしてください. コネクションマネージャを利用する場合は [新規] ボタンをクリックして Create a New ORACLE Spatial Connection ダイアログを表示して下さい. コネクション作成には次のパラメータが必要です:

  • Name: このコネクションの名前. Database と同じにすることも可能.

  • Database OracleインスタンスのSID または SERVICE_NAME.

  • Host: データベースホストの名前. この名前はtelnet接続やホストへのpingを行うときと同じようにシステムから理解される名前でなければいけません. もしデータベースが QGIS と同じコンピュータにある場合は単純に ‘localhost’ とここに記述して下さい.

  • Port: PostgreSQLデータベースサーバがリスンするポート番号.デフォルトポートは1521です.

  • Username: データベースにログインするユーザー名.

  • Password: データベースに接続するために Username と一緒に利用するパスワード.

オプションで以下のチェックボックスをアクティブにできます:

  • checkbox Save Username は接続構成にデータベースユーザ名を保存するかどうかを示しています.

  • checkbox Save Password は接続構成にデータベースパスワードを保存するかどうかを示しています.

  • checkbox Only look in meta data table は all_sdo_geom_metadata ビューに存在するテーブルのみ表示するように制限を行います. これをチェックすると空間情報テーブルの初期表示を高速化します.

  • checkbox Only look for user’s tables 空間テーブルを検索する場合に指定ユーザが所有するテーブルのみを検索する制約.

  • checkbox Also list tables with no geometry デフォルトでジオメトリを持たないテーブルもリストすることを示します.

  • checkbox Use estimated table statistics for the layer metadata Oracleテーブルのレイヤ設定するときに様々なメタデータが必要です.ここにはテーブルの行数,ジオメトリタイプ,空間の領域等のデータが含まれます .テーブルの行数がとても多い場合このメタデータ作成に時間がかかります. このオプションを有効にすると以下の高速メタデータ操作が実行されます: 行数はall_tables.num_rows から取得されます. テーブルの領域はフィルターが適用されていても常に SDO_TUNE.EXTENTS_OF 関数で取得されます. テーブルのジオメトリは先頭のNULLでない100行のデータで判定されます.

  • checkbox Only existing geometry types 存在しているジオメトリタイプのみリストを行い他の型の追加は行いません.

すべてのパラメータとオプションを設定した後で [接続テスト] ボタンをクリックして接続テストを行うことができます.

ちなみに

QGISユーザ設定とセキュリティ

あなたのコンピュータの環境に依存しますが, パスワードをあなたの QGIS 設定に保存することにはセキュリティリスクが存在します. パスワードはクリアテキストでシステム設定に格納されプロジェクトファイルに保存されます! あなたの QGIS カスタム設定はオペレーティングシステムにもとずいた方法で保存されます:

  • nix The settings are stored in your home directory in .config/QGIS/QGIS2.conf.
  • win 設定はレジストリに格納されます.

ORACLE Spatial レイヤの読み込み

mActionAddOracleLayer 1本以上の接続を定義した後はORACLE データベースからレイヤをロードできます. もちろんORACLEにデータが格納されている必要があります.

ORACLE Spatialからレイヤをロードするには、以下のステップを実行してください:

  • If the Add Oracle Spatial layers dialog is not already open, click on the mActionAddOracleLayer Add Oracle Spatial Layer toolbar button.
  • ドロップダウンリストから接続を選択して [Connect] をクリックして下さい.

  • checkbox ジオメトリを持たないテーブルもリストする を選択または非選択にできます

  • オプションで checkbox Search Options 使うとレイヤからどの地物をロードするか定義できます,また [Build query] ボタンを使うと Query builder ダイアログを開始できます.

  • 有効なレイヤリストからあなたが利用したいレイヤを探してください.

  • クリックするとそれを選択できます. Shift キーを押しながらクリックすると複数のレイヤを選択することができます. PostgreSQLクエリビルダを使ってレイヤを高度に利用する方法についてはセクション クエリビルダー を参照して下さい.

  • [追加] ボタンをクリックし、マップにレイヤを追加します。

ちなみに

Oracle Spatial レイヤ

通常 ORACLE Spatial レイヤは USER_SDO_METADATA テーブルのエントリで定義されています.