2017年03月27日

緯度経度データの世界地図表示には投影座標系を設定しよう

最近、2地点の緯度経度座標からラインを発生させて地図を作るという作業をしている。まずは緯度経度の座標はエクセルかなんかで、ID番号、始点X座標(経度)、始点Y座標(緯度)、終点X座標(経度)、終点Y座標(緯度)が一行に入っている表に準備しておく。

i17032601.PNG

あ、都市の緯度経度はかなり適当に取得したものなので信じないでください。はい。

表ができたら、ArcToolboxの 「データ管理>フィーチャ>XY 座標 →ライン(XY to Line)」を使って、ラインを発生させる。

i17032602.PNG

これで出来上がるのがこんなラインのデータだ。ArcMap立ち上げ直後にXY to Lineを実行したので、地図はXY to Lineツールを使うときに空間参照の項目で指定したGCS_WGS_1984で表示されている。

i17032603.PNG

なんだか少し気持ち悪くないだろうか。そう、背景の世界地図を超えてびよーんとでっばった線が2つほどあるのだ。1つは東京toサンフランシスコの緑色の線、もう一つはサンフランシスコto香港の青い線である。

どうやら、日付変更線を超える都市まで伸びる線は、本来の位置から360度回った位置まで伸ばして表示されるようなのだ。どちらから生えるかは、始点を基準にしているらしい。つまり、東京toサンフランシスコなら東京を起点に線を伸ばし、サンフランシスコto香港ならサンフランシスコを起点に伸ばすのだ。

ううむ、しかしできれば日付変更線を超えるときは、そこで一度線が切れて、逆側に線を回りこませたい。東京toサンフランシスコなら、一度ハワイのあたりで線が切れて、切れた残りの線が地図左側からまた伸びてきて欲しい。

当初これをやるには、180度のところで線を一度切って、360度足したり引いたりするという、手作業エディットが必要なのかなーと思っていた。んが、しかし、いつも経度0度を中心に地図を表示するわけではない。日本付近を中心にすることだってあるだろう。そのたびに、地図の端にあたる経度で線を切って360度移動、というのは、私がGISにこき使われるしもべ状態ではないか。

ま、実際その作業を何回かして、ある時ふと気づいた。データフレームの座標系を投影座標系に設定すると、線を切らなくてもきちんとそれが回り込むのだ。

上のXY to Line実行直後の地図は、緯度経度をそのままXY座標として表示している。それを例えば、ミラー図法(投影座標系>世界範囲の座標系(WGS 1984))を指定する。これはデータフレームのプロパティ>座標系タブで設定する。

i17032604.PNG

そうすると、これまでびよーんと伸びていた線がきちんと左右に回り込んでくれるのだ。

i17032605.PNG

ああ、素敵。ついでに、データフレームのプロパティ内では、中央子午線も指定できる。例えば、東経140度を真ん中にすると…。

i17032608.PNG

ちゃんと日本付近を中心に表示してくれる。それだけではなくて、今度はサンフランシスコからロンドンに伸びる線がきちんと地図の左右で回り込んでくれる。

i17032607.PNG

あのGISにこき使われていた時間はなんだったのか…、と思わなくもない。きっと知っている人は知っている話に違いない。まぁそれでもこれでその作業から解放されて、ひとまずはめでたしめでたしなのでした。
posted by たかはし at 10:15| Comment(0) | ArcGIS