2011年4月19日火曜日

9 マップデータ 6 - ka-Map 日本語の地図のQuery設定

9-4-5 日本語の地図のQuery設定

nippon_bmi_tokyo_pgis.map の tokyo_kukaku レイヤにクエリに必要な設定を追加します。

---
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"
LABELITEM "name"
  METADATA
   "group_title" "行政界"
   "queryable" "true" #ここを追加
   "fields" "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
---

name_template.htmlの内容は次のようになります。
nippon_bmi_tokyo_pgis.map と同じフォルダにおいてください。

<html>
 <head>
  <title>Name Template</title>
 </head>
 <body>
  <li>[name]
 </body>
</html>

■参考
シェイプファイルで地図表示するときは、結果が文字化けしてしまいます。
これは、ka-Map は文字エンコード utf-8 で処理するのですが、シェイプファイルのデータは Shift-JIS だからです。

シェイプファイルのデータの文字コードを ka-Map で表示できるように次のようにしました。
Search 機能の修正にも必要ですので、ここで設定しておきます。
まず、マップファイル nippon_bmi_tokyo_pgis.map の tokyo_kukaku レイヤのメタデータ(METADATA)にシェイプファイルのデータの文字コード SJIS を指定します。

---
METADATA
 "group_title" "行政界"
 "layer_encoding" "SJIS" #ここを追加
 "queryable" "true"
 "fields" "name:Name"
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"<td>$val</td>"; の前に次の行を追加します。

$val = iconv($layerencode, "UTF-8", $val);


すべて修正した後の画像です。

0 件のコメント: