WebAPI Document - GUIソリューション - プラクティス#7

経路探索機能を追加

今回のプラクティスでは、前回設置した経路表示パーツを利用して経路探索を行います。

  1. 探索用のスクリプトを追加します。
function search(){
    var searchWord = "";
    // 発着地リストを作成
    searchWord +="viaList="+ stationApp1.getStation() +":"+ stationApp2.getStation();
    // 探索種別
    searchWord += '&searchType='+ dateTimeApp.getSearchType();
    // 日時設定
    searchWord += '&date='+ dateTimeApp.getDate();
    if(dateTimeApp.getSearchType()==dateTimeApp.SEARCHTYPE_DEPARTURE || dateTimeApp.getSearchType()==dateTimeApp.SEARCHTYPE_ARRIVAL){
      searchWord += '&time='+ dateTimeApp.getTime();
    }
    // ソート
    searchWord += '&sort='+ conditonApp.getSortType();
    // 探索結果数
    searchWord += '&answerCount='+ conditonApp.getAnswerCount();
    // 探索条件
    searchWord += '&conditionDetail='+ conditonApp.getConditionDetail();
    // 探索を実行
    resultApp.search(searchWord,conditonApp.getPriceType());
}
  1. 探索文字列用の変数を用意します。
  2. viaListに駅名入力パーツから取得した発着駅名をセットします。
  3. searchTypeに日付入力パーツから取得した探索種別をセットします。
  4. dateに日付入力パーツから取得した探索日付をセットします。
  5. searchTypeが出発指定、もしくは、到着指定の場合は時間をセットします。
  6. sortに探索条件パーツから取得したソート順をセットします。
  7. answerCountに探索条件パーツから取得した探索結果数をセットします。
  8. conditionDetailに探索条件パーツから取得した探索条件をセットします。
  9. 探索を実行します。
  1. 探索用のスクリプトを実行するためのリンクを追加します。
<a href="Javascript:search();">このリンクをクリックすることで経路が表示されます</a><br>

サンプル

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
    <title>
    Webサービスサンプル
    </title>
    <!-- ヘッダ部分 -->
    <link class="css" rel="stylesheet" type="text/css" href="expCss/expGuiDateTime.css">
    <link class="css" rel="stylesheet" type="text/css" href="expCss/expGuiStation.css">
    <link class="css" rel="stylesheet" type="text/css" href="expCss/expGuiCondition.css">
    <link class="css" rel="stylesheet" type="text/css" href="expCss/expGuiCourse.css">
    <script type="text/javascript" src="expGuiDateTime.js?key=rnwfzKX4rvNVZYat"></script>
    <script type="text/javascript" src="expGuiStation.js?key=rnwfzKX4rvNVZYat"></script>
    <script type="text/javascript" src="expGuiCondition.js?key=rnwfzKX4rvNVZYat"></script>
    <script type="text/javascript" src="expGuiCourse.js?key=rnwfzKX4rvNVZYat"></script>
    <!-- 初期化スクリプト部分 -->
    <script type="text/javascript">
      <!--
var dateTimeApp;// 日付入力パーツ
var stationApp1;// 駅名入力パーツ#1
var stationApp2;// 駅名入力パーツ#2
var conditonApp;// 探索条件パーツ
var resultApp;// 経路表示パーツ
/*
 * パーツを初期化
 */
function init(){
  // 日付入力パーツ初期化
  dateTimeApp = new expGuiDateTime(document.getElementById("dateTime"));
  dateTimeApp.dispDateTime();
  // 駅名入力パーツ#1初期化
  stationApp1 = new expGuiStation(document.getElementById("station1"));
  stationApp1.dispStation();
  // 駅名入力パーツ#2初期化
  stationApp2 = new expGuiStation(document.getElementById("station2"));
  stationApp2.dispStation();
  // 探索条件パーツ初期化
  conditonApp = new expGuiCondition(document.getElementById("condition"));
  conditonApp.dispCondition();
  // 経路表示パーツ初期化
  resultApp = new expGuiCourse(document.getElementById("result"));
}

function search(){
    var searchWord = "";
    // 発着地リストを作成
    searchWord +="viaList="+ stationApp1.getStation() +":"+ stationApp2.getStation();
    // 探索種別
    searchWord += '&searchType='+ dateTimeApp.getSearchType();
    // 日時設定
    searchWord += '&date='+ dateTimeApp.getDate();
    if(dateTimeApp.getSearchType()==dateTimeApp.SEARCHTYPE_DEPARTURE || dateTimeApp.getSearchType()==dateTimeApp.SEARCHTYPE_ARRIVAL){
      searchWord += '&time='+ dateTimeApp.getTime();
    }
    // ソート
    searchWord += '&sort='+ conditonApp.getSortType();
    // 探索結果数
    searchWord += '&answerCount='+ conditonApp.getAnswerCount();
    // 探索条件
    searchWord += '&conditionDetail='+ conditonApp.getConditionDetail();
    // 探索を実行
    resultApp.search(searchWord,conditonApp.getPriceType());
}
// -->
    </script>
  </head>
  <body onLoad="Javascript:init();">
    <!-- パーツ表示部分 -->
    <div id="dateTime"></div>
    出発地
    <div id="station1" style="width:100%;"></div>
    目的地
    <div id="station2" style="width:100%;"></div>
    <div id="condition"></div>
    <a href="Javascript:search();">このリンクをクリックすることで経路が表示されます</a><br>
    <div id="result"></div>
  </body>
</html>

次のプラクティスへ

Indexへ戻る
Val Laboratory