Geopaparazziの活用(2)

この記事は1年以上前に書かれました。
内容が古くなっている可能性がありますのでご注意下さい。

地理空間情報データベースをフィールドワークに持って行く

趣味の寺社巡りで得た情報を用いて、古地図で寺社巡り七福神マップというアプリを作成してGoogle Playで無償配布しています。
古地図で寺社巡りアプリの寺社の座標データは、以下の手順で作成しています。

  1. 神奈川県の宗教法人名簿から、対象地域のアドレス付き寺社リストを作成
  2. CSVアドレスマッチングサービスを利用して、アドレスから緯度経度を取得
  3. 現地調査にもとづき、寺院は本堂、神社は拝殿の位置に緯度経度を修正

フィールドワークでGeopaparazziを活用するために、手順2の段階のデータをGeopaparazziに格納しようと思います。

Spatialiteデータベースの作成
GeopaparazziはSpatialiteデータベースを取り扱うことができますが、現在のところ、QGISで作成したSpatialiteデータベースは使用できません。Spatialite-guiというツールでデータベースを作成する必要があります。64ビットWindows版のSpatialite-guiはこちらからダウンロードすることができます。

Spatialite-guiを起動し、「Files」メニューの「Creating a New (empty) SQLite DB」を選択して新規データベースを作成します。

次に、「Files」メニューの「Advanced」→「Load CSV/TXT」を選択し、ジオコーディングして緯度経度の入ったCSVファイルをデータベースにロードします。セパレータやエンコーディングは使用するCSVファイルに合わせて適宜指定します。今回は、横浜市青葉区の寺社リストのaoba.csvファイルを、aobaという名前のテーブルにロードします。

この時点では、緯度経度の情報は通常のカラムに入っており、そのままではGeopaparazziで位置情報として扱われません。そこで、以下のSQLコマンドを実行し、ジオメトリ型のカラムを作成して緯度経度の値をセットします。今回の例では、fXという名前の列に経度が、fYという名前の列に緯度が入っています。

SELECT AddGeometryColumn('aoba','geometry',4326,'POINT',2);
UPDATE aoba SET geometry = GeomFromText('POINT('||"fX"||' '||"fY"||')',4326);

SQLコマンドはSpatialite-gui上で実行することができます。

Spatialiteデータベースの格納と利用
作成したSpatialiteデータベースを、GeopaparazziをインストールしたAndroid端末のmapsフォルダにコピーします。

新しいSpatialiteデータベースを認識させるために、メイン画面のメニューから「設定」を選択し、

「Spatialite設定」を選択し、

「Spatialite復元モード」にチェックを付けて、

Geopaparazziを再起動します。
地図画面のメニューから「Spatialiteデータリスト」を選択すると、

コピーしたSpatialiteテータベースのテーブル(この例ではaoba)が表示されるのでチェックを付けます。

テーブルのリスト内にあるボタンをタップして、アイコンの色や大きさを変えたり、

ラベル表示に使用するフィールドを選択し、サイズを変えることもできます。

地図画面に戻ると、以下のように、横浜市青葉区の寺社が地図上に表示されます。

実際に現地に行くと、ジオコーディングされた位置と実際がズレていることがあります。

この例は、杉山神社の拝殿のすぐ前でキャプチャした画面です。水色の円はGPSによる現在位置を表し、正確に地図上の拝殿のすぐ前にあります。しかし、ジオコーディングによる位置は、少し北東方向にズレていました。

背景地図
上のキャプチャ画像では、背景地図は地理院タイルになっています。
Geopaparazziに地図タイルを認識させるためにはmapurlファイルが必要になります。地理院タイル用のmapurlファイルは、GitHubで公開されたものがあります。

Geopaparazziの活用 12