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

2008年8月20日水曜日

緯度経度

現在のShortest Path Graphic の座標の計算を緯度経度を用いるように変更している。
将来的にGoogle Mapsなどと連携できるとおもしろいと考えているため、そちらの仕様にあわせる必要があるためだ。
ちなみに現時点では見た目も結果も何の変化もない。

2008年8月19日火曜日

すっかりと

すっかりとお盆休みから放置してしまったのでぼちぼち更新します・・。

2008年8月16日土曜日

最短路

先日の関西での出来事だがカーナビが10kmの距離を2時間と言い始めた。

普通に歩いてもそのくらいの速度で歩けるものだが、実際は高速を降りて下道にはいればもっと早く着いた。
今のカーナビがどんなシステムなのかはよくわからないが再探索や、いわゆる裏道も入っていると非常に便利であろう。
経験則では目的地が近ければバスについて行くのが早い気がする。いくらかかるかわかりませんが・・。

2008年8月15日金曜日

高速道路

この季節になると渋滞の情報をよく聞く。

先頭の車が速度を落とすとそれが後ろに影響していき渋滞を引き起こすわけだが、速度が落ちるのは本来料金所くらいなはずだ。
気づかないような上り坂で少し速度が落ちたり、速度違反取締機直前で速度違反の車が速度を落としたりが影響しているのであろう。
後者はさておき、前者は普段から運転慣れしていればある程度は回避できると思うのだが・・。

2008年8月14日木曜日

実家

一人暮らしを始めてしまうとなかなか家族がそろうこともない。
久々に母方の実家に家族そろって行った気がする。

大家族が減った現代ではこういった現象が増えているんでしょうね・・。

2008年8月13日水曜日

関西 その5

それにしても京都付近には歴史的建造物が多い。

ただ、関東もそうだが、暑いにかわりはない・・。

2008年8月12日火曜日

関西 その4

阪神大震災から結構な年数が過ぎたが、それにしても神戸の復興は早い。

しばらく大地震も来ないだろうし、神戸は数十年間住みやすいところなのではないだろうか。
神戸の人には失礼だが、意外に都会でした・・。

2008年8月11日月曜日

関西 その3

比叡山から見える琵琶湖は綺麗でした。

延暦寺に行くには山道を行かなければならないので車で来ないとなかなか行きにくいところだった。
山道が続くため酔いやすい人は注意した方がいいだろう。

それにしてもよくもあんな山の上に色々立てたものだ・・。

2008年8月10日日曜日

関西 その2

関西大学の建築系の研究室におじゃまさせていただいた。
建築系の分野とは全然関わったことがないのでなんだかスケールが大きい感じがしました。

他分野を見るというのも重要なことだと思います。
関西人はほんとに人当たりのいい人がおおいですね。

2008年8月9日土曜日

関西

6日から関西の方に来ている。

来る途中覆面がいたり雷雨があったりとなかなかスリルのある移動であった。
最初から最後まで運転した先生には感謝感謝です。。

京都は焼きそば一つとってもおいしいです。

2008年8月8日金曜日

scanf

先日scanfの返り値で取得した変数の個数をカウントできる話を書いた。

取得した変数の個数をちょうどにしたい場合は、多めに1つ%sを取得しておいて返り値で調整すれば良い。

2008年8月7日木曜日

PHP

header(location:"url");
というのをページ遷移によく使っている。
ural?hoge1=xxx&hoge2=yyy
というようにすれば変数もGETで渡せるので非常に便利。

それを利用していたら
Header may not contain more than a single header, new line detected.

というのが出てきたんだけど、なんでしょうこれ。
変数の中に改行文字とか入ってるとまずいのかな??

最悪一旦ファイルに書き込み、それを読み込んでファイルを消すという方法もあるのでそこまで重要視してはいないがなんだかいろいろとしっくりこない。

2008年8月6日水曜日

C言語

最近全然C言語を作っていなかったのでチェックプログラムを作成したときのC言語はだいぶ久々であった。
それなりには組めるがやはり基本的事項を忘れていたりするのはまずい。こういうのはやはり反復が大事なのだろう。

不覚にも、scanfの返り値が取ってきた変数の個数というのは知らなかった。
セグメンテーション違反とかにはならないので色々使い道がある。得にチェックプログラムでは1文字ずつ読まなくてもすむため、非常にありがたい。

2008年8月5日火曜日

クエリのチェック

クエリのチェックプログラムは一応完成して、よほどの場合でない限りは正しいものかどうか判断できる(と思う)
非公開で動かしているものでも今のところ問題はないようだ。

チェック時にエラーが起きたときはエラーしか表示しないようにしているため、どのラインにエラーがあったのかくらいは書くべきであろう。

すでに公開できなくはない状態だが、需要があるのだろうか・・?

2008年8月4日月曜日

PHPからのプログラムの実行

PHPからプログラムやコマンドを実行するのにsystem、execなどが用意されている。また、shellの実行もshell_execなど別に用意されている。

Cでコンパイルしたバイナリで表示された値を取得したかったので何かいい方法がないか探したのだが直接はどうも読み出せなかった。

仕方がないので
binary.shにCでコンパイルしたファイルの実行を入れ、

ataigahosii = exec("sh ./binary.sh");

とやったら値を取得できた。本当はほかにいい方法があるのだろうけどとりあえずこれで行くことにする・・・。

2008年8月3日日曜日

クエリ仕様の公開に向けての作業

先日お伝えしたとおり、Shortest Path Graphic でクエリを直接入力できるようなバージョンを作成している。
全員が正しいクエリを入れてくれれば公開してもいいのだが、色々実験する人も出てくるであろうし世の中には悪い人もいるのでクエリのチェックをかけなくてはならない。

どんなファイルを入れてくるかわからないので色々テストもしなければならないので結構大変な作業になるかもしれない。

2008年8月2日土曜日

クエリ仕様

Shortest Path Graphic に新たに、クエリを直接入力できるバージョンを作成している。

Dimacsのデータの一部を使用できるような設定になっているが、知らない人の方が多いであろう。
そこで、クエリ作成のページも作成し、設定した道順のクエリを出力できるようにした。

これは、実際にバイナリを配布することになった後でも使えるようにすることも目的にある。

2008年8月1日金曜日

表示されないバグ

最近は少なかったが、Shortest Path Graphic で結果が表示されないことがあるバグが見つかっていたが、原因不明だった。

今回、超高解像度版だと頻繁に起こっていたので調べてみると表示できないのはブラウザやOSの問題ではないかという推測になっている。
Windowsだとほとんどのブラウザで表示できないがLinuxだと32ビット、64ビット関わらず、またFirefox2,3両方とも表示されている。

Shortest Path GraphicではLinux+Firefox(できればver.3)を推奨しているようだ。