忍者ブログ
バナヤンの忍者風呂
忍者ブログのカスタマイズ、各種WEBツールのテストなど試行錯誤の日々。 VMLによる地図の作成を研究していましたが、一時中断して、今はPHPを勉強しているところです。
ニュース
この欄には、このブログの内容に関連するニュースを掲載する予定です。
お知らせ
この欄には管理人からのお知らせなどを掲載します。
[1] [2] [3]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

VMLで山手線路線図

前回調べた山手線の駅の経度と緯度。これを使って山手線の路線図を作りましょう。座標データを扱うには、VMLが良さそうです。VMLの勉強も兼ねて挑戦です。

この絵は、作成したVMLのスクリーンショットをPNGで保存し、縮小したものです。文字がつぶれている部分があるのは残念ですが、クリックするともっと大きなPNG画像が見れます。実際にVMLで記述したHTMLファイルは「VML山手線路線図」です。当然、元のVMLの方がきれいです。 山手線路線図01

数式等を工夫すれば、経度緯度のデータをそのまま利用できるのかもしれませんが、わかりやすくするために、座標を変換します。その理由は次の2つです。
・北緯の原点は南すなわち地図上では下になるが、ディスプレイの原点は上。
・緯度と経度では、距離の尺度が異なる。

まず左上隅を決めました。池袋の北西の適当な場所を基準とします。北緯35.74度、東経139.6975度を原点としました。

この原点と各駅の緯度、経度の差を求め、それぞれ3600倍すると秒差が出ます。東京での1秒の距離は、緯度は約30.8メートル、経度は約25.1メートルと言われています。これをそれぞれ緯度、経度の秒差にかけます。そうすると1メートルを1単位とした座標に変換できます。1メートルという単位は、直観的にわかりやすいものです。

たとえば、大崎の緯度経度は、北緯35.619772度 東経139.728439 度です。これを次のように変換しました。
 x=(139.728439-139.6975)×3600×25.1
  =2796
 y=(35.74-35.619772×3600×30.8
  =13331

各駅の新しい座標が計算できたら、これをVMLに落し込みます。まずshapeエレメントで線路を多角形で作ります。次にroundrectとtextboxで駅名を表示させます。

このようにしてできたのが「VML山手線路線図」です。駅の離れ具合がわかりますね。

今回の座標は駅だけですが、駅の間の座標も入れれば、線路の形はもっとリアルになるでしょう。

参考のためHTMLファイルのVML部分のソースの一部を下に記載しておきます。VMLを扱ったのは、今回がはじめてなので、おかしな部分、洗練されてない部分があると思います。けれども、VMLの初心者としては、このぐらいがわかりやすいだろうと思いますので、あえて掲載しましょう。

PR
QRコード
忍者ブログ [PR]
Copyright (C) 2006 banayan ALL RIGHTS RESERVED.