y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

HTML5のGeolocationAPI

HTML5で実装されているGeolocation APIを使って、Webアプリ(ローカル)のGPSによる位置取得と、緯度経度範囲指定検索をテストしている。
GeolocationAPIの実装状況は、Android2.2、Android3.1の標準ブラウザでもバッチリ使える。
緯度経度付きの情報として、国交省がリリースしている街区レベル位置参照情報の町丁目レベルのCSVを使う。
先に開発していたJavascriptDatabaseで、検索機能はOKなので、これに検索条件としてlat,lonを代入するようにした。
GeolocationAPIのトリガーイベントで緯度経度がリフレッシュされる。
刻々と変化する緯度経度の情報を元に、現在地を中心とした緯度経度範囲内のポイント情報を検索したいのだが、楕円の角度を計算して・・なんていう全うなやり方が難しい(空間演算なんていう便利なものはJavascriptの世界には無いのだ)。
そこで、The Web KANZAKIさんの情報を元に、百分率緯度経度0.01秒は=1kmの超簡易的な解釈で実装。
中心緯度経度のプラスマイナスで範囲指定検索を行った。
lat0、lon0:現在の緯度経度
lat1,lon1:始点 = lat0-0.01,lon1-0.01 //1kmの範囲を指定する場合
lat2,lon2:終点 = lat0+0.01,lon0+0.01 //1kmの範囲を指定する場合

(n_lat >= lat1 AND n_lat <= lat2 ) AND (n_lon >= lon1 AND n_lon <= lon2)

※厳密には、0.01秒は、緯度方向で1.11km、経度方向では0.91kmと200mの開きがあるようだ