GIS関連の備忘録

十数年前にPCを買ったのは、それで電子地図を見たり、地図上に情報を記録したりしたかったからだ。その当時は、インターネット上のサービスはおろか、地図ソフトというものもなくて、あまり精度の高くないカーナビのCDとそれを表示するためのシェアウェアで、さんざん苦労した記憶がある。

今では、個人向けGIS(地理情報システム)を自作して、散歩コースを記録したり、いくつかの地図メディア上で表示できるようになっている。もはやライフワークといってもいいかもしれない。最近もいくつかまとめて(個人的な)トピックがあったので、自分用の備忘録として書き留めておくことにする。

Flickrがgeotagに対応

写真共有サービスFlickrでそれぞれの写真に位置情報を付与できるようになった。もともと通常のタグの中に”geotagged geo:lat=35.659112 geo:lon=139.700860”形式の情報を埋め込むことでgoogle map等と連携するサードパーティー製のツールはあったのだが、それと同等なものをFlickrが自ら提供したのだ。ただし、使われている地図は日本付近の精度が極端に悪く、ほとんど「日本想像図」のレベルだ。現状は、従来通りGMiF(Google Maps in Flickr)などサードパーティのサービスを使ってタグ付けや表示をおこなった方がいいと思う。

とりあえず、ぼくの過去の写真ほとんどにタグ付けを行なった。記憶があやふやだったりもともと撮った位置をはっきり把握していなかった写真があったりしてかなり苦労した。

geotag表示ツール for プロアトラスSV2

ふだん使い慣れた地図ソフトプロアトラスSV2上でgeotagを得るために、VBSで以下のようなスクリプトを作成した。起動すると、自動的にプロアトラスSV2を立ち上げ、OKボタンを押す度に、そのときの地図の中央の位置の緯度経度をタグ形式に変換して表示してくれる。Cancelボタンを押すと、自らとプロアトラスSV2が終了する。

測地系の変換

たとえば(初期設定のままの)プロアトラスSV2で渋谷のハチ公前の緯度、経度を求めて、その座標値の場所をGoogle Mapsでみてみると新南口のあたりがでてくる。測地系(座標系)が異なるのだ。もともと日本では日本測地系(Tokyo Datum)という日本国内でのみ有効な測地系が使われていつつも、並行してGPSでは世界測地系(WGS84)が使われてきた。2002年4月から日本でも、ほぼWGS84と同等な日本測地系2000(JGD2000)が公的には採用されたが、いまだに地図メディアごとに測地系がまちまちなのが現状だ。

Google Mapsは2005年12月にWGS64に移行している。ぼくの個人向けGISではTokyo Datumでデータを保持しているので、変換をしなくてはいけないが、従来は試行錯誤で適当にずらしていた。せっかくPostGISというPostgreSQLに地理データを格納できるようにするための拡張を利用しているので、今回その機能で変換してみることにした。ところが変換してもほとんど値が変わらない。調べてみたら、PostGISにおけるTokyo Datumの定義がおかしいことがわかった(最新版でもなおっていない)。修正するには自分で定義を書き換えなくてはいけない。

KMLファイル

ついでに従来Google Maps向けには、自前でjavascriptを書いて、地図データは独自のJSON形式で出力していたのだが、それをGoogleEarthのファイル形式KMLにあらためた。KMLはGoogle Mapsで見ることもできるし、ダウンロードしてGoogleEarthで開くこともできる。現在このサイトで公開している散歩の地図データはすべてKMLに変換済みだ。

PostGISのバージョン

最近というわけでもないが、数ヶ月前にはまったPostGISのバージョン問題に触れておこう。現在のPostGISの最新バージョンは1.1.3だ。ところがぼくはまだPostgreSQL8.0のインストーラに同梱されていたPostGIS0.9.1を使っている(環境はWindowsネイティブ)。まず、PostgreSQLごとアップグレードしようとして、PostgreSQL8.1.4と同梱されているPostGIS1.0.5をインストールしたが、あるクエリーを実行すると確実にPostgreSQLが落ちてしまう。そこでPostGISを最新に入れ替えようと、ここから1.1.3のバイナリーを入手したが、エラーが発生してインストールできない。調べてみたら一部の日本語版WindowsXP SP2でだけ発生している問題で、対処の方法がないようだ。仕方なくすべてもとにもどしたというわけだ。