tokyo_shp.mapのgyoseikaiレイヤにクエリに必要な設定を追加します。
---
LAYER
NAME gyoseikai
GROUP gyoseikai
TYPE POLYGON
STATUS ON
DATA "../mapdata/tokyo/N03-071001_13.shp"
LABELITEM "SHIKUCHOSO"
METADATA
"group_title" "行政界"
"queryable" "true" #ここを追加
"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
---
TEMPLATE temp_tokyo_shp.htmlの内容は次のようになります。
<html>
<head>
<title>Tokyo shp Template</title>
</head>
<body>
<li>[GUN_SEIREI]
<li>[SHIKUCHOSO]
</body>
</html>
しかし、これだけでは結果が文字化けしてしまいます。
これは、ka-Mapがutf-8でかかれている文字エンコードutf-8で表示されるのですが、マップデータはShift-JISだからです。
ちなみに、クエリの結果のタイトルにあたるエイリアスはマップファイルの文字はが読み込まれていますが、Debianのlocateがutf-8になっているので文字化けしません。
マップデータの文字コードをka-Mapで表示できるように変換するようにしました。
まず、マップファイルtokyo_shp.mapのgyoseikaiレイヤのメタデータMETADATAにマップデータの文字コードSJISを指定します。
---
METADATA
"group_title" "行政界"
"layer_encoding" "SJIS" #ここを追加
"queryable" "true"
"fields" "GUN_SEIREI:郡政令,SHIKUCHOSO:市区町村"
END
---
htdocs/map_query_float.phpファイルの すべての//END METADATA の前につぎのように追加します。
---
//get LAYERENCODING
$szLayerEncode = $oLayer->getMetaData("layer_encoding");
if ($szLayerEncode != '') {
$layerencode = $szLayerEncode;
} else {
$layerencode = 'utf-8';
}
//END METADATA
---
すべてのecho"$val";の前に次の行を追加します。
(2009.7.18現在 コードが変わったようです。echo"<td>$val</td>";の前に追加してください。)
$val = iconv($layerencode, "UTF-8", $val);
0 件のコメント:
コメントを投稿