RからWFSを利用する(2)

(承前)

ogr2ogr で保存した GMLファイルを R 上に読み込んでみよう。 それには readOGR を用いる。

R の GIS データ用クラスはジオメトリ型ごとに異なっているらしい。 型ごとに別のオブジェクトに格納する。

> library(gdalUtils)
> library(rgdal)
> pnt <- readOGR("test.gml", "mylayer", require_geomType="wkbPoint")
> lines <- readOGR("test.gml", "mylayer", require_geomType="wkbLineString")
> poly <- readOGR("test.gml", "mylayer", require_geomType="wkbPolygon")
> plot(pnt)

R オブジェクトのクラス名はそれぞれ SpatialPointsDataFrame, SpatialLinesDataFrame, SpatialPolygonsDataFrame のようだ。 plot() に渡すと点や線が表示される。

ローカルファイルに保存せずに R に取り込む

readOGR のデータソースに WFS の URL を指定すれば、WFS サーバから データを直接 R 上に取り込むこともできる。

> mypoints <- readOGR("WFS:http://hogehoge/wfs?version=1.0.0&request=getfeature&typename=mylayer&srsname=EPSG:4326", "mylayer", require_geomType="wkbPoint")
> plot(mypoint)

SpatialPointsDataFrame 等のクラスがどの程度汎用的なのかは 今の私には判らない。ただローカルに GML形式で保存できさえすれば 後はなんとでもなるだろう。