本文來自李明子csdn博客(http://blog.csdn.net/free1985),商業轉載請聯繫博主獲得授權,非商業轉載請註明出處!
本文編寫於2010年9月,記述了mapnik的TextSymbolizer類的各屬性說明及使用預研情況。
TextSymbolizer共有25個在XML中可用的屬性。現已將其分別試用總結。
名稱 | 值 | 意義 | 試用結果 | 默認值 |
avoid_edges | Bool,true/false | 是否避免文字出現在地圖邊緣 | 可用 | true |
allow_overlap | Bool,true/false | 是否允許文字重疊 | 可用 | false |
character_spacing | Int(非負整形數字) | 兩個字符間的距離,默認0 | 可用但無明顯效果 | 0 |
dx | Int(整形數字) | 字符的水平位移,以像素爲單位 | 可用 | 0 |
dy | Int(整形數字) | 字符的垂直位移,以像素爲單位 | 可用 | 0 |
face_name | Cstring(字符串) | 字體名稱,環境中已註冊的字體。不能與fontset_name 同時使用 | 可用 | 宋體 |
fontset_name | Cstring(字符串) | 自注冊字體名稱,需要與FontSet結合使用,不能與face_name同時使用 | 可用 | |
fill | RGB(顏色值) | 文字填充顏色 | 可用 | 黑色 |
halo_fill | RGB(顏色值) | 文字光暈(描邊)顏色 | 可用 | 黃色 |
halo_radius | Int(非負整形數字) | 文字光暈(描邊)寬度,以像素爲單位 | 可用 | 0 |
horizontal_alignment | Enum(枚舉),left/middle/right | 水平校正方式,對準基準點的文字位置 | 可用 | |
justify_alignment | Enum(枚舉),left/middle/right | 對齊方式(多行文字時有效果) | 可用,但缺乏多行文字數據無法測試效果 | |
line_spacing | Int(非負整形數字) | 行間距 | 可用,但缺乏多行文字數據無法測試效果 | |
max_char_angle_delta | Int(整形數字) | 最大字符角度值 | 可用,但無明顯效果 | |
min_distance | Int(非負整形數字) | 字符串(標籤)間的最小距離 | 可用 | 0 |
name | Cstring(字符串) | 域名稱,來源於數據庫。SymbolizerText使用的一種方式,參考青島數據,建議不使用 | 缺乏合適的DATASOURCE,未作測試 | |
opacity | Float 0.0-1.0,軟件中映射爲0-100的整數 | 文字的透明度 | 可用 | 不透明 |
placement | Enum(枚舉),point/line | 文字放置方式,point爲放置在點的位置上;line爲根據線形渲染文字 | 可用,但可能與線形文件有關,測試時當選用line時文字消失 | 中心 |
size | Int(非負整形數字) | 文字大小 | 可用 | 9 |
spacing | Int(非負整形數字) | 一條線中重複文字間的空格,以像素爲單位 | 可用,但可能與線形文件有關,測試時未見效果 | 256 |
text_convert | Enum(枚舉),none/toupper/tolower | 字符轉換。三個選項分別爲“不轉換”,“轉爲大寫字符”,“轉爲小寫字符” | 可用,但可能與字符集有關,測試時未見效果 | |
vertical_alignment | Enum(枚舉),top/middle/bottom | 垂直校正方式,對準基準點的文字位置 | 可用 |
wrap_before,wrap_character和wrap_width三個屬性爲一組,從介紹來看是設置環繞字符的。即以某個字符爲中心,環繞渲染某個字符串。經過測試這個屬性是可用的。但是,測試結果沒有規律可循,效果不是介紹中的樣式,並且字符串被渲染後的位置會有很大的改變,建議謹慎使用。