星期二, 10月 11, 2005

Mapserver , BIG5 Encoding - 顯示Big5的圖資

從download的source code的 HISTORY看到從4.4.0開始支援ENCODING 這個 label parameter.
- Implement the ENCODING label parameter to support internationalization.
Note this require the iconv library (Bug 858).
但是找不到library中有libiconv這一個library, 用apt-cache search 也沒有出現這一個libray name,只有一個recode : convertion package...
這一篇中 說明,Linux 把libiconv包入libc,所以不用另外安裝。(Really ?)
..... 到/usr/include下的確看到 iconv.h

所以應該直接可以用。
修改 .map 檔,在LAYER的LABEL加一項ENCODING BIG5. 結果map中 中文字部分變成亂碼。
猜測是不是attrib寫錯,改成TW_BIG,結果連亂碼都沒了,Manual說: if the format is not supported, then the label won't be drawn. 所以猜測一開始的BIG5應該是正確的。
猜測是字型檔的問題...
#apt-cache search big5 font
看看有哪些中文字型,裝一個truetype的中文字型
#apt-get install ttf-arphic-bkai00mp
...結果連Xserver也一並裝進去@_@....
找找font裝在 /usr/share/fonts/truetype/arphic,所以寫一個fontset.txt
bkai  /usr/share/fonts/truetype/arphic/bkai00mp.ttf
放在/var/www/htdocs (其實就是documentroot)
最後的 *.map是:

# This is the first mapfile
NAME FIRST
SIZE 500 400
IMAGECOLOR 255 255 255
IMAGETYPE JPEG
SHAPEPATH "/home/mapdata/"
EXTENT 121.400 25.030 121.600 25.100
FONTSET "/var/www/htdocs/fontset.txt"
WEB
TEMPLATE '/var/www/htdocs/first.html'
IMAGEPATH '/var/www/htdocs/tmp'
IMAGEURL '/tmp/'
END
LAYER
NAME "TOWN"
STATUS default
TYPE line
DATA "test_town"
LABELITEM "TOWNNAME"
CLASS
STYLE
COLOR 0 0 0
END
LABEL
COLOR 240 0 0
ENCODING BIG5
SIZE large
TYPE TRUETYPE
FONT bkai
END
END
END
END

沒有留言:

網誌存檔