前回、実際に実装したという話をした。
場所によっては地球が丸いからか地図データが違うからかはさておき、やはりずれているのが気になる部分がある。
とはいえ橋などの一番重要な部分に問題がないのが幸いだろう。
国道?のような大きな通りでもずれが出ている部分があるが、道路の形と線の形が似ているため、目分量で修正することもできる。
2008年8月31日日曜日
2008年8月30日土曜日
GoogleMapsを使ってみる6
今までの話を総合して下のような形でGoogleMapsを使った最短路オンラインソルバーを実際に作ってみた。
・入力ページは今までと同じ(2点をクリックしてSubmit)
・計算時に画像の作成、結合処理が不要なので削除。
・上記の代わりに到達点までのルートを出力。
・出力ページはシンプルにGoogleMapsが出力されるのみ。
実際に動作させてみるとおおむね問題なく動作。
心配されていた処理の遅さも気になることはない。(ナローバンド環境下ではわからないが)
地図データの違いからか地球が丸いからかはわからないが、道のずれも多少はあるもののそこまで致命的ではない。
・入力ページは今までと同じ(2点をクリックしてSubmit)
・計算時に画像の作成、結合処理が不要なので削除。
・上記の代わりに到達点までのルートを出力。
・出力ページはシンプルにGoogleMapsが出力されるのみ。
実際に動作させてみるとおおむね問題なく動作。
心配されていた処理の遅さも気になることはない。(ナローバンド環境下ではわからないが)
地図データの違いからか地球が丸いからかはわからないが、道のずれも多少はあるもののそこまで致命的ではない。
2008年8月29日金曜日
GoogleMapsを使ってみる5
引き続き問題点を。
今回こちらで用いているデータは交差点から交差点への座標(緯度経度)である。
すなわち地図データがないためカーブはすべて直線で表されることになる。
大きな問題のようにも見えるが、実際はそこまでは1本道のはずなのでそれほどではないはず。(ただし、見た目が悪くなる可能性はある)
入力にGoogleMapsを用いた場合USAデータ以外に対応していない現在はそこをどうするかを考えなくてはならない。
マーカーのセット時にUSA内かを判断するなりしなければならない。
とりあえずは入力は今までのページでいいだろう。
今回こちらで用いているデータは交差点から交差点への座標(緯度経度)である。
すなわち地図データがないためカーブはすべて直線で表されることになる。
大きな問題のようにも見えるが、実際はそこまでは1本道のはずなのでそれほどではないはず。(ただし、見た目が悪くなる可能性はある)
入力にGoogleMapsを用いた場合USAデータ以外に対応していない現在はそこをどうするかを考えなくてはならない。
マーカーのセット時にUSA内かを判断するなりしなければならない。
とりあえずは入力は今までのページでいいだろう。
2008年8月28日木曜日
GoogleMapsを使ってみる4
実際に実装するときの問題点を確認。
・実行時間はどうか?
・グラフデータに違いがある。
・その他
実行時間についてはやってみないと分からないとしかいえません。
ただ、GoogleMaps自体がそんなに軽くないし動かしたりするとCPUががんばっちゃったりします。ラインを引くのは数本はやってみたけど大丈夫な予感。
グラフデータに違いがあるというのは今回の最大の問題点。
GoogleMapsで使用されているデータと使用しているTigerのデータでは少し違いがあること。
これが細かいところに影響してくるでしょう・・。
その他
微妙に規約に引っかかりそうだったけどセーフな部分。
リアルタイムルート案内を禁止しているみたいです。車両と通信するシステムについてだからとりあえず問題ないはずだけど。
・実行時間はどうか?
・グラフデータに違いがある。
・その他
実行時間についてはやってみないと分からないとしかいえません。
ただ、GoogleMaps自体がそんなに軽くないし動かしたりするとCPUががんばっちゃったりします。ラインを引くのは数本はやってみたけど大丈夫な予感。
グラフデータに違いがあるというのは今回の最大の問題点。
GoogleMapsで使用されているデータと使用しているTigerのデータでは少し違いがあること。
これが細かいところに影響してくるでしょう・・。
その他
微妙に規約に引っかかりそうだったけどセーフな部分。
リアルタイムルート案内を禁止しているみたいです。車両と通信するシステムについてだからとりあえず問題ないはずだけど。
2008年8月27日水曜日
GoogleMapsを使ってみる3
前回までの話を使うとそのまま、最短路問題に移行できる。
事前情報ではラインを引くのが遅いというものもあったがいかに・・。
事前操作としては、
1、座標の修正。
2、ページの作成。
座標の修正は、座標をGoogleMaps用に緯度経度に変換する作業。
元のグラフデータが緯度経度を元にして作られているのでそれほど大きな問題はない。
ページの作成。
出力ページは完全にGoogleMaps依存のページに変更。
比べるという意味で、今までの画面はあってもいいかともおもう。
入力ページは
1,今までと変わらず。
2,こっちもGoogleMaps使っちゃおう。
その2択かなぁと。
事前情報ではラインを引くのが遅いというものもあったがいかに・・。
事前操作としては、
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も楽に実装出来るのではないかと思い始める。
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());
で追加できる。
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で最短距離が示されれば説得力もあがるしなんとか導入してみたいところだ。
前持った情報では時間がかかるなど言われているが、最短路であればそれほど本数が増えないのではないかと考えている。
実際にやってみなければわからないが、GoogleMapsで最短距離が示されれば説得力もあがるしなんとか導入してみたいところだ。
2008年8月22日金曜日
2008年8月21日木曜日
内部処理
昨日Shortest Path Graphic において、座標処理を緯度経度に変更していると書いた。
とはいえ、表示している値は座標なのでその値を軸に考えなければならない。
場所によっては緯度経度で入力したモノをもう一度座標に戻しているものもあり、一長一短である。
将来Google Mapsを使うとして必要なある点における緯度経度取得はできるような状況である。
非公開のクエリ作成ページでは座標とともに、実際の緯度経度を表示するようにしている。
とはいえ、表示している値は座標なのでその値を軸に考えなければならない。
場所によっては緯度経度で入力したモノをもう一度座標に戻しているものもあり、一長一短である。
将来Google Mapsを使うとして必要なある点における緯度経度取得はできるような状況である。
非公開のクエリ作成ページでは座標とともに、実際の緯度経度を表示するようにしている。
2008年8月20日水曜日
緯度経度
現在のShortest Path Graphic の座標の計算を緯度経度を用いるように変更している。
将来的にGoogle Mapsなどと連携できるとおもしろいと考えているため、そちらの仕様にあわせる必要があるためだ。
ちなみに現時点では見た目も結果も何の変化もない。
将来的にGoogle Mapsなどと連携できるとおもしろいと考えているため、そちらの仕様にあわせる必要があるためだ。
ちなみに現時点では見た目も結果も何の変化もない。
2008年8月16日土曜日
2008年8月15日金曜日
2008年8月14日木曜日
2008年8月12日火曜日
2008年8月11日月曜日
2008年8月10日日曜日
2008年8月9日土曜日
2008年8月8日金曜日
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.
というのが出てきたんだけど、なんでしょうこれ。
変数の中に改行文字とか入ってるとまずいのかな??
最悪一旦ファイルに書き込み、それを読み込んでファイルを消すという方法もあるのでそこまで重要視してはいないがなんだかいろいろとしっくりこない。
というのをページ遷移によく使っている。
ural?hoge1=xxx&hoge2=yyy
というようにすれば変数もGETで渡せるので非常に便利。
それを利用していたら
Header may not contain more than a single header, new line detected.
というのが出てきたんだけど、なんでしょうこれ。
変数の中に改行文字とか入ってるとまずいのかな??
最悪一旦ファイルに書き込み、それを読み込んでファイルを消すという方法もあるのでそこまで重要視してはいないがなんだかいろいろとしっくりこない。
2008年8月6日水曜日
2008年8月5日火曜日
2008年8月4日月曜日
PHPからのプログラムの実行
PHPからプログラムやコマンドを実行するのにsystem、execなどが用意されている。また、shellの実行もshell_execなど別に用意されている。
Cでコンパイルしたバイナリで表示された値を取得したかったので何かいい方法がないか探したのだが直接はどうも読み出せなかった。
仕方がないので
binary.shにCでコンパイルしたファイルの実行を入れ、
ataigahosii = exec("sh ./binary.sh");
とやったら値を取得できた。本当はほかにいい方法があるのだろうけどとりあえずこれで行くことにする・・・。
Cでコンパイルしたバイナリで表示された値を取得したかったので何かいい方法がないか探したのだが直接はどうも読み出せなかった。
仕方がないので
binary.shにCでコンパイルしたファイルの実行を入れ、
ataigahosii = exec("sh ./binary.sh");
とやったら値を取得できた。本当はほかにいい方法があるのだろうけどとりあえずこれで行くことにする・・・。
2008年8月3日日曜日
クエリ仕様の公開に向けての作業
先日お伝えしたとおり、Shortest Path Graphic でクエリを直接入力できるようなバージョンを作成している。
全員が正しいクエリを入れてくれれば公開してもいいのだが、色々実験する人も出てくるであろうし世の中には悪い人もいるのでクエリのチェックをかけなくてはならない。
どんなファイルを入れてくるかわからないので色々テストもしなければならないので結構大変な作業になるかもしれない。
全員が正しいクエリを入れてくれれば公開してもいいのだが、色々実験する人も出てくるであろうし世の中には悪い人もいるのでクエリのチェックをかけなくてはならない。
どんなファイルを入れてくるかわからないので色々テストもしなければならないので結構大変な作業になるかもしれない。
2008年8月2日土曜日
クエリ仕様
Shortest Path Graphic に新たに、クエリを直接入力できるバージョンを作成している。
Dimacsのデータの一部を使用できるような設定になっているが、知らない人の方が多いであろう。
そこで、クエリ作成のページも作成し、設定した道順のクエリを出力できるようにした。
これは、実際にバイナリを配布することになった後でも使えるようにすることも目的にある。
Dimacsのデータの一部を使用できるような設定になっているが、知らない人の方が多いであろう。
そこで、クエリ作成のページも作成し、設定した道順のクエリを出力できるようにした。
これは、実際にバイナリを配布することになった後でも使えるようにすることも目的にある。
2008年8月1日金曜日
表示されないバグ
最近は少なかったが、Shortest Path Graphic で結果が表示されないことがあるバグが見つかっていたが、原因不明だった。
今回、超高解像度版だと頻繁に起こっていたので調べてみると表示できないのはブラウザやOSの問題ではないかという推測になっている。
Windowsだとほとんどのブラウザで表示できないがLinuxだと32ビット、64ビット関わらず、またFirefox2,3両方とも表示されている。
Shortest Path GraphicではLinux+Firefox(できればver.3)を推奨しているようだ。
今回、超高解像度版だと頻繁に起こっていたので調べてみると表示できないのはブラウザやOSの問題ではないかという推測になっている。
Windowsだとほとんどのブラウザで表示できないがLinuxだと32ビット、64ビット関わらず、またFirefox2,3両方とも表示されている。
Shortest Path GraphicではLinux+Firefox(できればver.3)を推奨しているようだ。
登録:
投稿 (Atom)