ありそうでなかなかない...最短経路探索用APi。あってもたいがい有料だったりして。
       Googleに期待してずいぶんたちますが、まだ出ない(2009/4/1現在)。
       トランジットだけでなく、駅から我が家までのルートがほしかったりして。
       オークニーさんのサービスもなんか使いづらい。
       で、待っててもしかたがないので、作ってみました。

最短経路探索エンジン(Dijkstra_Engine)



       元はただのダイクストラ・アルゴリズムの検証用アプリです。
       これに道路情報を食わせてやると..........
       最短経路探索用アプリになるというわけです。

       スナップショットはこんな感じ

       ただし、細かい処理をやってませんので、おかしな結果を表示する場合が
       多々あります。

       こんな感じです

       Dijkstra_Engineダウンロード

▲TOP

Dijkstra_Engineを使ってみる



     ダウンロードしたものをデスクトップで解凍して、インストーラを起動してください。
     SPFフォルダー内のDijkstra_Engine.exeを起動してください。
     GoogleMapとメニュが表示されます。詳しくはヘルプを参照してください。

▲TOP

Dijkstra_Engineをローカルで運用する場合



     最短経路探索エンジンは、デフォルトではwisteriahillのサーバーを使っています

     最短経路探索を行うには、このままで十分ですが、サーバーが遅かったりダウン
     していて使えないこともあります。
     自前サーバーを立てると自分だけのシステムにすることができます。
     何が便利かというと、
     データ構造に手を加えて自分好みの「最適ルート探索エンジン」を作ることも可能
     ...かもしれない。というわけで、自前サーバーの立て方です。

       サイト構築の詳細はこちらをごらんください。 サイト構築

     手順は以下のとおり。

       1:サーバーをインストールする

             サーバーのインストールにおいては、xamppliteを推奨します。
             xampplite は、XAMPP for Windowsのページの1/3あたりにあります。
             ただ、xamppliteは簡易にサーバーを立てるには最適ですが、
             初期設定ではセキュリティに難があります。
             ローカルでのみ運用するように必ず設定変更を行ってください。

                   httpd.conf内の
                   Allow from all を
                   Allow from localhost 127.0.0.1 にする

       2:ドメインを取得する

             本システムを運用するには、GoogleAPIキーが必要です。
             このキーを取得するには、ドメイン名が必要です。
             有料で取得するのもいいいですが、無料でも問題ありません。

             このサイトをおすすめします。ddo.jp

       3:GoogleAPIキーを取得する

             キーはIPアドレスでは取得できません。

             取得サイトはこちらです。Sign Up for the Google Maps API

       4:初期ファイルにデータを書き込む

             対象ファイルは2つです。

             ini_spfinder.php、ini_spfinder.txt

             ini_spfinder.phpはサーバー、ini_spfinder.txtはクライアント用です。

             必要項目を書き込んでください。

             XML形式になっています(同梱のサンプル参照)。
                   domain (取得したドメイン名)
                   port (ポート番号、通常80)
                   googlekey (取得したGoogleAPIキー)
                   ini_mapinfo (地図の初期位置 緯度10進,経度10進)
                   db_user (データベースユーザー名 rootでいいです)
                   db_id (データベースユーザーのパスワード)

       5:データをダウンロードして、データベースに登録する

             データベースは2つです。

             roaddb
                   wisteriahillからダウンロードしてください
                   解凍後、readdb に展開してください。

             nodedb
                   wisteriahillから各都道府県のテーブルデータを取得して
                   nodedb に展開してください。

       6:SP_SRVフォルダーをサーバーのルートに置いてください。

             通常ルートディレクトリーは、xampplite\htdocsです。


       以上の手順で運用環境を構築できます。
       サーバーをレンタルする場合もこの手順を参考にしてください。
       ください。

       サイト構築の詳細はこちらをごらんください。 サイト構築

       Dijkstra_Engineを起動して、実行してみてください。

▲TOP

データベースに関する覚書



       道路情報は、国土地理院さんご提供の数値地図2500。
       (ちょっと前まで、無償でダウンロードできていた頃のもの)

       「生」のままでは、箸にも棒にもかからないので、「調理」します。

       ちなみにデータベースはこんな感じ

▲TOP

参考資料



      ダイクストラ アルゴリズム(1)

      ダイクストラ アルゴリズム(2)

      A* アルゴリズム


▲TOP