2004年08月24日
PostGISの実験[1] 球面上での領域内/領域外判定ができるか
昨日のエントリーで書いた実験
東経135度北緯35度〓東経136度北緯35度間を線分で結んだとして、実際の地球上では、大圏コースを通るから東経135度30分北緯35度よりちょっと北、の地点は、この線分の南側にくるはずだけど、直交座標系で計算するとこの点は線分より北側になってしまう。
PostGISはどう判定するんだろうか(おそらく後者だと思うけど)。
また実験してみないといけないですね。
をやってみた。
結果は、PostGISが直交座標系で扱ってると判った以上当たり前っちゃあ当たり前だけど、後者でした。
実験詳細。
昨日と同じテーブル上に、東経135度、北緯35.00000000001度の点を設定してやる。
これだけ微妙な値ならば、大圏コースで判定すれば領域内に入るだろう。
その上で、以下のクエリを実行。
select within(point,GeomFromText('POLYGON((134.5 34,134.5 35,135.5 35,135.5 34,134.5 34))',4326)) FROM gis_test
すると見事に領域外と判定。
やっぱりね。
実際にはポリゴンの方も判定点の方も、色々微妙に変更して試してみたけど、やっぱり結論は同じ。
という事は、設定されたポリゴン中に、球面上でも正確に領域内/領域外である事を保証する判定を行うには、ポリゴン及び判定点を直交座標系に再投影してやって、その上で判定しなきゃいけないって事か。
直交座標系に再投影するって事は、どこを原点とする座標系を選ぶか、座標系を横断するサイズのオブジェクトの場合どうするか…とか、そんなノウハウが入りそうで、ああ、厳密にやろうとすると思ったよりややこしいシステムだなー。
Posted with ecto
Related query words in Google & Yahoo
Related Books from Amazon
Trackback to this entry
TrackBack URL :
Trackbacks
トラックバックはありません。
コメントはありません。
Post a comment
![[ここギコ!]](http://kokogiko.net/logo.png)



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