検索/絞り込み検索の記述方法

概要

KsGMap では、データを検索して表示することができます。
検索エンジンのような文字入力の他に、さまざまな条件を予め指定しておく絞り込み検索など、高度にデータの表示/非表示を切り替えることができます。

検索の種類

KsGMap ではアイテム名の検索(以下検索)と絞り込み検索の2種類の検索があります。

検索は、通常の検索エンジンや、サイト内検索と同じようにテキストフィールドで検索語を入力して検索を行ないます。検索文字を含むものが見つかればアイテムナビゲーションに表示します。

絞り込み検索はチェックボックス、ラジオボタン、セレクトボックスで条件を選択していき、条件に当てはまるものをアイテムナビゲーションに表示します。
絞込検索は柔軟に設定することができ、データさえあれば、ほとんどの条件で検索することができます。
条件は、JavaScript の if構文の条件部分と同じです。

検索の記述方法

検索のフォームと検索メッセージ

検索のフォーム部分は、HTML部分に下記のHTMLを挿入して下さい。

KsGMap Ver 1.01以降:
○×検索:
<input id="search-textfield" type="text" onkeydown="KsGMapFunc.search.itemName.keydown( event , this );" value="" />
<input type="button" onclick="KsGMapFunc.search.itemName.submit( event , this );" value="検索" />
<input type="button" onclick="KsGMapFunc.search.itemName.clear( event , this );" value="クリア" />
KsGMap Ver 1.00:
○×検索:
<input id="search-textfield" type="text" value="" />
<input type="button" onclick="KsGMapFunc.search.itemName.submit( event , this );" value="検索" />
<input type="button" onclick="KsGMapFunc.search.itemName.clear( event , this );" value="クリア" />

KsGMap Ver1.01以降では、テキストフィールドでエンターキーを押しても検索が実行されます。
○×検索の○×にはアイテムの名称を入れてください。例:映画館検索

また、検索メッセージを表示するエリアとして下記のHTMLを挿入して下さい。
なお、検索メッセージは絞り込み検索と共用ですので、2つ設置する必要はありません。
<div id="search-message"></div>

設定値の ksgmap_html_search_itemName_textFieldksgmap_html_search_message で、上記の id の search-textfieldsearch-message を変更することもできます。

類義語辞書

検索には類義語辞書機能が用意されており、予め登録しておくことで異なる文字でも検索することができます。例えば「四ッ谷」の類義語として「四ツ谷」を登録しておくことで、どちらでもマッチさせることができます。
類義語辞書はJavaScript部分に設定値として指定します。詳しくは『設定値 - ksgmap_search_dic_synonym』をご覧下さい。

絞り込み検索の記述方法

絞り込み検索は JavaScript部分とHTML部分両方に記述する必要があります。

JavaScript部分

下記の形式で記述して下さい。
KsGMapDataNarrowCondition( "【絞り込み条件ID】:〔フォームの値〕" , "【絞り込み条件】" );
例:
KsGMapDataNarrowCondition( "seatqty:1" , " %seatqty% >= 400 " );
【絞り込み条件ID】 条件IDはHTML記述の際に区別の為に用います。任意の半角英数字及び-(ハイフン)が使えます(但し先頭は英字)。〔フォームの値〕の値が異なれば重複することができます。
〔フォームの値〕 フォームの value値 です。1以上の整数で記述して下さい。省略時は1となります。なお、0は絞り込み検索オフなので指定することはできません。
【絞り込み条件】 絞り込み条件は、if( ~ ) の~にあたる部分の比較演算子や正規表現を表記できます。
比較する内容として、データキーを % で囲んで指定します。例: %seatqty%
また、AND(&&) や OR(||) も用いることができます。

HTML部分

絞り込み検索は、チェックボックス、ラジオボタン、セレクトボックスが使えます。

チェックボックス、ラジオボタン
<input type="checkbox" name="【絞り込み条件ID】" value="【フォームの値】" onclick="KsGMapFunc.search.narrow.change( event , this )">
※ラジオボタンは type="radio" で以降は同様

セレクトボックス
<select name="【絞り込み条件ID】" onchange="KsGMapFunc.search.narrow.change( event , this );">
<option value="【フォームの値】">~</option>
</select>
【絞り込み条件ID】【フォームの値】はJavaScript部分で記述したものとなります。


なお、チェックボックスはチェック時に値が適用、チェックを解除で0となりますが、フォームの値の前に ! を付けることで、逆転することができます。その際、予めHTMLで checked を付けておいて下さい。
例:
<input type="checkbox" name="…" value="!1" onclick="…" checked>イタリアン
また、検索メッセージを表示するエリアとして下記のHTMLを挿入して下さい。
なお、検索メッセージは絞り込み検索と共用ですので、2つ設置する必要はありません。
<div id="search-message"></div>

設定値の ksgmap_html_search_message で、上記の id の search-message を変更することもできます。

住所検索Ver 1.10~

住所検索は KsGMap の通常の検索とシームレスに接続しています。
検索後にアイテム名でマッチしない場合は、自動的に住所検索に移行します。
(アイテム名でマッチした場合でも、検索中はカテゴリに「住所検索結果」が加わります)

設定値の ksgmap_search_geocoding で、住所検索を無効にすることができます。
設定値の ksgmap_search_geocoding_joinPrefix で、プレフィックスを指定することができます。