内容が古くなっている可能性がありますのでご注意下さい。
地理空間情報データベースをフィールドワークに持って行く
趣味の寺社巡りで得た情報を用いて、古地図で寺社巡りや七福神マップというアプリを作成してGoogle Playで無償配布しています。
古地図で寺社巡りアプリの寺社の座標データは、以下の手順で作成しています。
- 神奈川県の宗教法人名簿から、対象地域のアドレス付き寺社リストを作成
- CSVアドレスマッチングサービスを利用して、アドレスから緯度経度を取得
- 現地調査にもとづき、寺院は本堂、神社は拝殿の位置に緯度経度を修正
フィールドワークで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で公開されたものがあります。