GROUPのタイトルを日本語にします
Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja
の マップファイル設定 の Adding International character support for layer names レイヤー名に国際文字を使用するには をクリックします。
ここには、レイヤー名に国際文字を使用する方法が英語で書いてあります。
また、[ka-Map-user]メーリングリストも参考にしました。
(1) add a metadata which called "group_title" in each group in .map file(マップファイルのメタデータ metadata に group_title を追加)に書かれている設定でマップファイルに設定します。
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" "行政界" #追加
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
---
(2) in kamap.js file は、Adding International character support for layer nameではなく、メーリングリストを参考に次のように追加します。
(ka-map/htdocs/kaMap.js)
---
this.opacity = (typeof(o.opacity) != 'undefined') ? o.opacity : 100;
this.title = (typeof(o.title) != 'undefined') ? o.title : 'unnamed';
//この行を追加
this.imageformat = (typeof(o.imageformat) != 'undefined') ? o.imageformat : null;
---
(3) add the "title" attribute like... もメーリングリストを参考に次のように追加します。
init.php ファイルに
(ka-map/htdocs/init.php)
---
/* detect layer opacity (default 100% opaque) */
$opacity = $oLayer->getMetaData('opacity');
if ($opacity == '') {
$opacity = 100;
}
$title = $oLayer->getMetaData('group_title');
//この行を追加
/* detect tile source options (cache, redraw, nocache, or auto) */
$tileSource =
strtolower($oLayer->getMetaData('tile_source'));
if(($tileSource != 'cache') && ($tileSource != 'redraw') && ($tileSource != 'refresh') && ($tileSource != 'nocache')) {
$tileSource = 'auto';
}
---
"opacity:".$opacity.",".
"title:'".$title."',".
//この行を追加
"imageformat:'".$imageformat."',".
---
(4)in kaLegend.js file を次のように修正します。
(ka-map/htdocs/kaLegend.js
---
//td.innerHTML = name;
//この行のコメントアウト
td.innerHTML = oLayer.title;
//この行を追加
---
しかし、これでは、GROUPを設定していないものも含めたすべてのマップファイルのすべてのレイヤのメタデータ METADATA に "group_title" を設定しないと、Map info のレイヤ名が空欄になってしまいます。
そこで、独自に次のように修正してみました。
---
//td.innerHTML = name;
//この行のコメントアウト
if (oLayer.title != '') {
gtitle = oLayer.title;
} else {
gtitle = name;
}
td.innerHTML = gtitle;
//これらの行を追加
---
0 件のコメント:
コメントを投稿