2004年08月30日
[GIS実験?-2]大圏コースと直交座標との差
前のGIS実験?を見てくれた元GIS系の知人から、球面を意識しているのが面白い、と感想をいただいた。
逆に、GISにそんな事大して必要ないだろうに、何をつまらん事やってんだか、と思われた方もいるのかなーとも思ったりする。
なんでこんな事やってるかっていうと、GISの世界が蓄積してきたノウハウ・資産を活かさないと、とは思っているものの、別にGISそのものをやろうとしているんじゃないからなんですよね。
俺のやる事(というか、正確にはうちの会社のやる事ですが。俺はむしろ、Googleでの地名検索→経緯度変換だって位置情報だと思ってるし、どんな発想にも縛られたくないので)としては、SpaceTagの概念を見てもらえば判るけれども、領域を持ってしかも自発的に動き回る位置情報なんですよね。
点情報で、固定あるいは動き回るにしても動態管理とか実世界で動く現実を仮想でトレースするような要件だったり、あるいは領域を持った情報であっても、動かずに固定で、地図との重ねあわせだけが問題であったり、といった要件なら、その固定点で現実との誤差が少なくなるようなポリゴンのポイント取りをしてやれば済むんだろうけど、
うちみたいに大きさを持ったものが自由自在に、自発的に動き回って、そのリアルタイムな衝突判定もしなければいけないとなると、単純に経緯度で領域管理してると、緯度が大きく変わるように動けば領域がひしゃげるし、正方形で領域設定したつもりがサイズが大きいと実は扇形だったり、大圏コースと直交座標系との誤差でぶつかってるはずなのにぶつかったと判定されなかったり、といった話になるので、どうしても直交座標系で扱った時と現実との誤差にセンシティブになってしまう。
というか、「どうしても…センシティブになってしまう」とか書いたけど、そう思ってるのは俺だけで、社内の他の連中は別に普通に経緯度管理でいいやー、って思ってるようなんだけど。
なんでそんなに楽観視できるのか判らん。というかそれならうちの技術は何よ、みたいな。
とはいえ、俺もGISとか地理技術とかは判らない事だらけなので、大圏コースと直交座標は誤差が出るんだよゴルァとか言ったって、その誤差が実際には対した事なくて、用いられる用途とかから考えて仕様誤差と言ってしまっていいレベルなら、議論する必要もなくなる。
だからまず誤差がどのくらいになるか、あたりの基礎情報をまずおさえないといけないわけだけど、今までノウハウもなくてどう調べていいかもよく判らなかったので、なおざりにして騒いできてた。
今回PostGISやGIS系ツールを覚え始めたのを機に、ちょっと試してみようと思い、やってみた。
方法は、Projを使って東経135°北緯35°から東経136°北緯35°までの距離と方位を正距方位図法で求め、その中間点の経緯度を求める。これが大圏コースでの中点になる。
次に東経135.5°北緯35°から上で求めた中点までの距離を求める。これが誤差になる。
実際に実行したコマンド。
> proj -f "%.10f" +proj=aeqd +ellps=GRS80 +lon_0=135e +lat_0=35n
↑東経135゚,北緯35゚を中心として正距方位図法投影
136 35 <-東経136゚,北緯35゚を投影
91286.6448507005 456.9376494165 <-東へ91km,北へ456m
> invproj -f "%.10f" +proj=aeqd +ellps=GRS80 +lon_0=135e +lat_0=35n
45643.32242535025 228.46882470825 <-大圏コース上中間点(東へ45.5km,北へ228m)を逆投影
135.5000000000 35.0010297009 <-東経135.5゚,北緯35.001...゚
> proj +proj=aeqd +ellps=GRS80 +lon_0=135.5e +lat_0=35n
↑直交座標上での中点との誤差計算
135.5000000000 35.0010297009
0.00 114.24 <-誤差114m
というわけで、同じ緯度上の1度分、大圏コースで91kmくらい離れた点において、それを結ぶ大圏コースと直交座標系上での直線コースとの間では、最大で114mくらいの誤差が出るという結論になった。
同様の実験を、同じ緯度上の0.2度分、大圏コースで18.2kmくらい離れた点において、それを結ぶ大圏コースと直交座標系上での直線コースとの間では、最大で4.5mくらいの誤差となった。
これを大きいと見るか小さいと見るかは、議論しないとよく判らない。(誰と?)
領域を持った仮想オブジェクトを空間に貼ると言っても、ポリゴンの1点間が10km以上にもなるようなものが貼られるのかどうかよく判らないし、現状、仮想位置情報とインタラクションする現実の人間の、位置を特定するデバイス(GPS等)の測定誤差が数〓数十mある以上、どうでもいい誤差なのかもしれないとも思う。
とはいえ、こんなレベルの話になってくると、数cmの誤差も許されなくなってくるわけなので、誤差をなくす技術をなんとかしないといけないとも思う。
まあ上のページ例なら、ほとんど「点」と言ってもいい大黒様の位置の話だから誤差は出ないけど、例えばバーチャルアイドルが仮想世界でマラソンして、それをユーザが見る場合、長い直線道路を両端だけ指定してバーチャルアイドルを動かそうとすると、実際には大圏コースで道路が延びているのに、移動計算は直交座標系上で計算して、その結果バーチャルアイドルが沿道の街路樹にめり込みながら走ったり、とかって事になるんじゃないかと思ったりする。
高空を飛ぶバーチャル飛行機の残す飛行機雲が、直線にならずにぐにーっと曲がって見えたりね。
とりあえず大圏コースと直交座標系間の誤差は、一応ある程度の情報としておさえたので、次回は緯度を移動する事による領域の形のゆがみ・面積の拡縮について調べてみようと思う。
うーん、細かいところに拘りすぎかなあ。
Posted with ecto
![[ここギコ!]](http://kokogiko.net/logo.png)



・コンピュータは2進法が効率的でとかいう話(XAGary)
・コンピュータは2進法が効率的でとかいう話(とおりすがり)
・ジオメディア忘年会行ってきました(宋さんへ:kokogiko)
・コンピュータは2進法が効率的でとかいう話(kokogiko)
・コンピュータは2進法が効率的でとかいう話(まぐろ)
・コンピュータは2進法が効率的でとかいう話(名無し)
・コンピュータは2進法が効率的でとかいう話(dokasen)
・コンピュータは2進法が効率的でとかいう話(dokasen)
・Google未オルソ衛星画像にぶった切られた我が母校(maeda)