是非に及ばず

プログラミングに関する話題などを書いていきます(主にRailsやAndroidアプリ開発について)

オープンiエリアメモ

オープンiエリアというサービスについてのメモ。
これは、GPSに対応していない端末でもおおまかな位置(エリア)を取得できるDoCoMoのサービス。
内容的には、外接情報から中心の緯度経度を求める方法について。

やりたい事

エリアから緯度経度への変換。
ここでいうエリアは、外接情報の事で、形としては四角形です。

本当にやりたい事は、今いる所の近くの○○を探すという事。
だから、現在地の緯度経度をピンポイントでもらいたい。
しかし、オープンiエリアではおおまかな範囲しか分からない。
という事で、エリアの中心座標の緯度経度をとりあえず使う事にする。

中心座標の緯度経度はどう求めるのか?

iエリアデータファイル(CSV形式)の4〜7項目目に
西端経度、南端緯度、東端経度、北端緯度が入っているのでこれを利用する。
エリアを表す四角形の領域(=外接情報)をこの4つのデータで表現している。
座標でいうと、左下の点(西端経度,南端緯度)と右上の点(東端経度,北端緯度)になる。

中心座標の緯度経度の計算方法は簡単。

中心経度 = (西端経度 + 東端経度) / 2
中心緯度 = (南端経度 + 北端経度) / 2

方法としては、これで良いが事はそう単純ではなかったorz
自社システムは世界測地系を使っているのだが、iエリアのデータは日本測地系というオチ。
さらにミリ秒で緯度経度を表してるからさらに面倒。

とりあえず、こんな事をした。

iエリアを利用するには?

作ろうiモードコンテンツ:オープンiエリア
http://www.nttdocomo.co.jp/service/imode/make/content/iarea/

ここの2つのファイルをダウンロード。
「オープンiエリア説明書5.2版(PDF)」
iエリアデータファイル(lzh)」

iエリアデータファイルにエリア情報などが入っていて、説明書のほうでデータフォーマット
についての説明がある。
あとはプログラムに組み込むだけ。
そこが難しいんだけど。

参考になりそうなサイト

勝手にリンクしちゃってすみませんm(_ _)m