QGIS プロバイダプラグインその1:概要

プロバイダプラグインとは

QGISでは、ファイルやデータベースからデータを読み込んだり編集したりするときにプロバイダクラスを通してデータをやり取りします。
各データ形式に対応したプロバイダが用意されており、それぞれプラグイン形式で実装されています(※)。
QGISが対応していないデータ形式のデータを読み込ませたい場合は、その独自の形式に対応したプロバイダプラグインを作成することで、
QGISが読み込むことができるようになります。

ラスタデータの場合も同様にプロバイダプラグインを介してデータを読み込むことはできますが、
GDALがサポートするファイルの場合はプロバイダクラスを通さずにQgsRasterLayerクラスが直接読み込みを担当します。
QgsRasterDataProviderを利用するプロバイダプラグインは、
2010年4月時点の公式リリースの中ではwmsproviderプラグインだけのようです。
一方ベクタデータは全てプロバイダプラグインを介してデータを読み込みます。

ただし、ユーザが作成したプロバイダプラグインを呼び出すためには、
通常のGUIプラグインからプロバイダプラグインを利用するように設定する必要があります。
したがって、プロバイダプラグインを作成したら、それを利用するGUIプラグインも同時に作成する必要があります。

プロバイダプラグインの作成例

プロバイダプラグインはC++で作成する必要があります(たぶん?)。
なので、QtとQGISをソースコードからコンパイルする必要があります。
筆者の場合はVC2008を使用していますので、どちらもVC2008でコンパイルする必要があります。

QtおよびQGISのコンパイルについては以下のリンクを参照してください。

ここでは例として、コンパス測量の観測主簿から平面図を展開するプラグインを作成してみます。
観測主簿は以下のような形式で作成されているものとし、CSV形式でファイルに保存されているものとします。

No.01
27451.266-154644.720
14.884270.69021.100
3.41234.50917.800
4.846319.734-5.600
21.06448.7471.400
4.42822.620-10.800
5.30786.309-11.700
4.5944.2369.600
13.75049.160-18.400
5.9236.5205.700
4.91383.88416.500
4.36432.471-1.700
12.4586.34013.400
3.685309.472-1.400
10.14487.039-16.700
4.10920.854-23.800
11.14084.726-11.400
10.81039.9208.600
7.45480.9610.700
14.5068.79711.400
13.31232.0826.400
3.82752.125-4.500
3.236356.98710.400
7.33350.711-13.400
11.73330.789-11.700
7.797282.487-7.100
end
No.02
27365.277-154748.776
15.70573.361-14.700
14.29050.281-8.400
7.443350.754-11.700
14.00567.4335.100
13.40234.31517.800
17.64411.76821.600
10.960349.77818.900
8.262288.03423.700
19.446273.70821.400
12.54548.302-10.800
8.83367.557-19.500
18.341344.597-22.000
17.7458.130-0.700
7.88048.576-15.700
13.00514.421-21.600
4.507324.46216.700
end

1行目は測線番号、2行目が基準点座標、3行目以降が観測データで、”end”の文字までで1測線のデータです。
観測データは1列目から斜距離、方位角、高低角としています。
磁気偏角や座標系情報は持っていません。なお、各観測データは架空のものです。

それでは、このデータに対応したプロバイダプラグインを実際作成してみます。

QGIS プロバイダプラグイン その他のページ

アーカイブ