2008年8月31日日曜日

GoogleMapsを使ってみる7

前回、実際に実装したという話をした。

場所によっては地球が丸いからか地図データが違うからかはさておき、やはりずれているのが気になる部分がある。
とはいえ橋などの一番重要な部分に問題がないのが幸いだろう。
国道?のような大きな通りでもずれが出ている部分があるが、道路の形と線の形が似ているため、目分量で修正することもできる。

2008年8月30日土曜日

GoogleMapsを使ってみる6

今までの話を総合して下のような形でGoogleMapsを使った最短路オンラインソルバーを実際に作ってみた。

・入力ページは今までと同じ(2点をクリックしてSubmit)
・計算時に画像の作成、結合処理が不要なので削除。
・上記の代わりに到達点までのルートを出力。
・出力ページはシンプルにGoogleMapsが出力されるのみ。

実際に動作させてみるとおおむね問題なく動作。
心配されていた処理の遅さも気になることはない。(ナローバンド環境下ではわからないが)
地図データの違いからか地球が丸いからかはわからないが、道のずれも多少はあるもののそこまで致命的ではない。

2008年8月29日金曜日

GoogleMapsを使ってみる5

引き続き問題点を。

今回こちらで用いているデータは交差点から交差点への座標(緯度経度)である。
すなわち地図データがないためカーブはすべて直線で表されることになる。

大きな問題のようにも見えるが、実際はそこまでは1本道のはずなのでそれほどではないはず。(ただし、見た目が悪くなる可能性はある)


入力にGoogleMapsを用いた場合USAデータ以外に対応していない現在はそこをどうするかを考えなくてはならない。
マーカーのセット時にUSA内かを判断するなりしなければならない。
とりあえずは入力は今までのページでいいだろう。

2008年8月28日木曜日

GoogleMapsを使ってみる4

実際に実装するときの問題点を確認。

・実行時間はどうか?
・グラフデータに違いがある。
・その他

実行時間についてはやってみないと分からないとしかいえません。
ただ、GoogleMaps自体がそんなに軽くないし動かしたりするとCPUががんばっちゃったりします。ラインを引くのは数本はやってみたけど大丈夫な予感。

グラフデータに違いがあるというのは今回の最大の問題点。
GoogleMapsで使用されているデータと使用しているTigerのデータでは少し違いがあること。
これが細かいところに影響してくるでしょう・・。

その他
微妙に規約に引っかかりそうだったけどセーフな部分。
リアルタイムルート案内を禁止しているみたいです。車両と通信するシステムについてだからとりあえず問題ないはずだけど。

2008年8月27日水曜日

GoogleMapsを使ってみる3

前回までの話を使うとそのまま、最短路問題に移行できる。
事前情報ではラインを引くのが遅いというものもあったがいかに・・。

事前操作としては、
1、座標の修正。
2、ページの作成。

座標の修正は、座標をGoogleMaps用に緯度経度に変換する作業。
元のグラフデータが緯度経度を元にして作られているのでそれほど大きな問題はない。

ページの作成。

出力ページは完全にGoogleMaps依存のページに変更。
比べるという意味で、今までの画面はあってもいいかともおもう。

入力ページは
1,今までと変わらず。
2,こっちもGoogleMaps使っちゃおう。

その2択かなぁと。

2008年8月26日火曜日

GoogleMapsを使ってみる2

マーカーの設置方法。
var point = new GLatLng(33.613158, -117.640931);
var mk = new GMarker(point);
map.addOverlay(mk);

これだけでただのマーカーが出現する。

ラインの引き方。
point0 = new GLatLng(34.983939, -78.773673);
points.push(point0);
point1 = new GLatLng(34.984196, -78.775077);
points.push(point1);
point2 = new GLatLng(34.984277, -78.775519);
points.push(point2);
point3 = new GLatLng(34.984444, -78.775971);
points.push(point3);
map.addOverlay(new GPolyline(points,'red',1,1.0));
で、0->1->2->3のラインが引かれる。

ここまで来るとShortest Path Onlineも楽に実装出来るのではないかと思い始める。

2008年8月25日月曜日

GoogleMapsを使ってみる

実際にGoogleMapsがどんなものかと使ってみる。
APIキーを申し込んだらサンプルが表示されるのでそれをそのままコピペしたページは一応動作する。それを基準にちょこちょこ変えていくのが楽そうだ。

現時点でのバージョンは2がデフォルト。1を使って説明しているページもあるのでそこは注意。特に座標の設定が違う。

point = new GLatLng(34.983939, -78.773673);

のような感じ。

縮尺とか航空写真のボタン?はデフォルトでは出ないらしくオプション扱い。

map.addControl( new GSmallMapControl() );
map.addControl( new GMapTypeControl() );

SmallではなくLargeにすると縮尺?みたいなやつもでてくる。

右下に窓を表示して今の場所とかをみたいなら

map.addControl(new GOverviewMapControl());

で追加できる。

2008年8月23日土曜日

Google Maps

GoogleMapsを利用して最短路を表示しようというのは前々から議論されている。
前持った情報では時間がかかるなど言われているが、最短路であればそれほど本数が増えないのではないかと考えている。
実際にやってみなければわからないが、GoogleMapsで最短距離が示されれば説得力もあがるしなんとか導入してみたいところだ。

2008年8月22日金曜日

ソースファイル

現時点では中の計算をしているソースファイルの公開はしていないが、将来的には公開される予定だ。

バイナリを実行してもオンラインソルバーのように視覚的に表示されるわけではないので、バイナリ公開後もこちらの需要が減ることはないだろう。
また、今のようにグラフィカルに表示するだけでなくルートのみを示したものを出力するようなバージョンがあっても面白いかもしれない。

2008年8月21日木曜日

内部処理

昨日Shortest Path Graphic において、座標処理を緯度経度に変更していると書いた。
とはいえ、表示している値は座標なのでその値を軸に考えなければならない。
場所によっては緯度経度で入力したモノをもう一度座標に戻しているものもあり、一長一短である。

将来Google Mapsを使うとして必要なある点における緯度経度取得はできるような状況である。
非公開のクエリ作成ページでは座標とともに、実際の緯度経度を表示するようにしている。