tokyo_shp.mapのgyoseikaiレイヤにSearchに必要な設定を追加します。
---
LAYER
NAME gyoseikai
GROUP gyoseikai
TYPE POLYGON
STATUS ON
DATA "../mapdata/tokyo/N03-071001_13.shp"
LABELITEM "SHIKUCHOSO"
METADATA
"group_title" "行政界"
"layer_encoding" "SJIS"
"queryable" "true"
"searchfield" "SHIKUCHOSO" #ここを追加
"fields" "GUN_SEIREI:郡政令,SHIKUCHOSO:市区町村"
END
CLASS
NAME "City Boundaries"
STYLE
OUTLINECOLOR 153 153 153
END
LABEL
MINFEATURESIZE 40
TYPE TRUETYPE
FONT vl-gothic
ENCODING SJIS
SIZE 8
END
END
TEMPLATE temp_tokyo_shp.html
END
---
しかし、これだけでは結果が抽出されません。
これは、ka-Mapがutf-8でかかれているのですが、マップデータはShift-JISだからです。
マップデータの文字コードをka-Mapで表示できるように変換するようにしました。
htdocs/tools/search/kaSearch.phpファイルの次の行を修正します。
//iconv("UTF-8", "ISO-8859-13", $_REQUEST['searchstring']);
//$psearch = $searchstring; //Kumar version
(この行をコメントアウト。"ISO-8859-3"を"sjis"に変えると他の文字コードのデータが使えなくなる。)
次の行の下に//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"
$val = iconv($layerencode, "UTF-8", $val);
0 件のコメント:
コメントを投稿