プロバイダプラグインとは
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.884 | 270.690 | 21.100 |
| 3.412 | 34.509 | 17.800 |
| 4.846 | 319.734 | -5.600 |
| 21.064 | 48.747 | 1.400 |
| 4.428 | 22.620 | -10.800 |
| 5.307 | 86.309 | -11.700 |
| 4.594 | 4.236 | 9.600 |
| 13.750 | 49.160 | -18.400 |
| 5.923 | 6.520 | 5.700 |
| 4.913 | 83.884 | 16.500 |
| 4.364 | 32.471 | -1.700 |
| 12.458 | 6.340 | 13.400 |
| 3.685 | 309.472 | -1.400 |
| 10.144 | 87.039 | -16.700 |
| 4.109 | 20.854 | -23.800 |
| 11.140 | 84.726 | -11.400 |
| 10.810 | 39.920 | 8.600 |
| 7.454 | 80.961 | 0.700 |
| 14.506 | 8.797 | 11.400 |
| 13.312 | 32.082 | 6.400 |
| 3.827 | 52.125 | -4.500 |
| 3.236 | 356.987 | 10.400 |
| 7.333 | 50.711 | -13.400 |
| 11.733 | 30.789 | -11.700 |
| 7.797 | 282.487 | -7.100 |
| end | ||
| No.02 | ||
| 27365.277 | -154748.776 | |
| 15.705 | 73.361 | -14.700 |
| 14.290 | 50.281 | -8.400 |
| 7.443 | 350.754 | -11.700 |
| 14.005 | 67.433 | 5.100 |
| 13.402 | 34.315 | 17.800 |
| 17.644 | 11.768 | 21.600 |
| 10.960 | 349.778 | 18.900 |
| 8.262 | 288.034 | 23.700 |
| 19.446 | 273.708 | 21.400 |
| 12.545 | 48.302 | -10.800 |
| 8.833 | 67.557 | -19.500 |
| 18.341 | 344.597 | -22.000 |
| 17.745 | 8.130 | -0.700 |
| 7.880 | 48.576 | -15.700 |
| 13.005 | 14.421 | -21.600 |
| 4.507 | 324.462 | 16.700 |
| end |
1行目は測線番号、2行目が基準点座標、3行目以降が観測データで、”end”の文字までで1測線のデータです。
観測データは1列目から斜距離、方位角、高低角としています。
磁気偏角や座標系情報は持っていません。なお、各観測データは架空のものです。
それでは、このデータに対応したプロバイダプラグインを実際作成してみます。