Query は、結果を日本語で表示できます。
Search は、抽出がうまくできず、すべてのデータが表示されます。
コードに修正が必要です。
nippon_bmi_tokyo_pgis.mapのgyoseikaiレイヤにSearchに必要な設定を追加します。
---
LAYER
NAME tokyo_kukaku
GROUP tokyo_kukaku
TYPE LINE
STATUS ON
CONNECTIONTYPE POSTGIS
CONNECTION "dbname=nippon_bmi host=localhost user=user password=password"
DATA "the_geom from tokyo_kukaku"
# DATA "../mapdata/tokyo_bmi/AdmArea.shp"
METADATA
"group_title" "行政区画"
"queryable" "true"
"searchfield" "name"
"fields" "name:Name"
END
CLASS
NAME "kukaku"
STYLE
COLOR 255 255 204
OUTLINECOLOR 204 204 204
END
LABEL
MINFEATURESIZE 40
TYPE TRUETYPE
FONT vl-gothic
ENCODING utf-8
SIZE 8
END
END
TEMPLATE name_template.html
END
---
しかし、これだけでは結果が抽出されません。
これは、ka-Map が utf-8 で入力した文字と、ISO-8859-13 の文字コードのマップデータの比較に限定しているからのようです。
マップデータの文字コードを ka-Map で表示できるように変換するようにしました。
htdocs/tools/search/kaSearch.php ファイルの次の行を修正します。
//iconv("UTF-8", "ISO-8859-13", $_REQUEST['searchstring']);
//$psearch = $searchstring; //Kumar version
次の行の下に//get LAYERENCODING以下を追加
$szSearchfield = $oLayer->getMetaData('searchfield'); //140行あたり
//PRINTING STUFF
//get LAYERENCODING ここから追加
$oLayer = $oMap->getLayer($i);
$szLayerEncode = $oLayer->getMetaData("layer_encoding");
if ($szLayerEncode != '') {
$layerencode = $szLayerEncode;
} else {
$layerencode = 'utf-8';
}
//END get LAYERENCODING ここまで
// コメントアウトした行をここへ
$searchstring = iconv("utf-8", $layerencode, $_REQUEST['searchstring']);
$psearch = $searchstring; //Kumar version
---
すべてのecho <td>"$val"</td>;の前に次の行を追加します。(275行あたり)
$val = iconv($layerencode, "UTF-8", $val);
すべて修正した後の画像です。
0 件のコメント:
コメントを投稿