pgcon09jに参加しました - 「簡易逆ジオコーディングサービス」の作り方

逆ジオコーディング?

緯度経度→住所の変換 元データ

  1. 市区町村判定
  • 国土数値情報(行政区域)(無償)を利用 by 国土交通省
  • ポリゴンデータなのでクエリ一発で内外判定できる
  1. 丁目・番地判定
  • 街区レベル位置参照情報 by 国土交通省
  • 代表点データ(ポリゴンではない)
  • 代表点への距離を計算しないと内外判定できない →緯度経度から、クエリ2発で住所がフルでわかる。 (XeonX3210 Mem1GBで2~3msecくらい)

PostGIS

地理空間データを含んだデータを処理するもの。 http://postgis.refractions.net/ geometry型の地理空間データの管理・操作などを提供してくれる。 座標系の管理、空間インデックスなどなど。 市区町村判定まではクエリ1発でできる(ST_Within())。 ※インデックス張らないと遅い

幾何データではダメ?

  • 座標系が管理できないのでダメ
  • 地図を扱うなら必須
  • 座標変換ができないのはキツイ
  • 回転楕円体を扱うのが大変
  • 巨大データに対応していないのでキツイ →PostGISが便利でイイ!

ポイント

  • 座標系に注意
  • ベースの地図の記法に注意
  • 平面直角座標系は市区町村がわかれば系番号(1~19)がほぼわかる
  • 住所→座標は、住所表記の揺らぎがあってかなり難しい
  • 京都のような、内外で表しきれない住所は正確に表現するのがキツイ
  • どこから上る?下る?入る?などよーわからん
  • 海外も同じかも
Event 

See also