mapnik的TextSymbolizer类的功能缺陷
目录
本文来自李明子csdn博客(http://blog.csdn.net/free1985),商业转载请联系博主获得授权,非商业转载请注明出处!
本文编写于2010年10月,记述了mapnik的TextSymbolizer类的功能缺陷。
1 点符号
1.1 点符号大小
在mapnik中,如果点符号的大小设置大于图片资源的大小,则在渲染后仍保持资源大小,不会等比例放大;如果设置小于资源大小,渲染后会按照“左上-右下”的顺序对资源进行裁剪,不会等比例缩小(如图1-1所示)。此种情况也出现在其他类符号中,在此不再一一罗列。
图1-1 点符号图片资源与渲染后的效果对比
1.2 rule下点符号的个数
根据mapnik语法,rule下可以存在任意多个point,但实际上是无用的(出现多个无意义,mapnik不会去渲染)。
2 线符号
2.1 线宽
stroke-width(线宽)在mapnik中以像素为单位,是浮点型。对比线宽为1.0和0.1两种情况发现,线宽并没有差别都是1个像素,只是值为0.1时线的颜色会变浅。
3 文字符号
3.1 文字透明度
对地图和预览图的渲染分别采用xml文件和C++代码两种不同的方式对比发现,某些效果在不同模式渲染下是不同的。比如文字透明度,在xml渲染下有效果,但在C++代码渲染下是没有效果的
3.2 乱码
设置某些字体后,在某些字号大小下文字出现“乱码”的问题是mapnik对中文的支持有限造成的,无法预见且无法解决。
3.3 字体注册
因为mapnik对字体的注册包括获取字体的属性与API截然不同,故在不直接解析TTF字体文件的前提下,只能对相关字体在配置文件中进行一一配对写入以供查找。如果在产品开发时能够指定某些字体,排除其他,产品的运行将会稳定得多。
4 其他
4.1 中文路径
mapnik对中文的支持非常有限。XML路径,XML中引用的路径(无论相对路径还是绝对路径)都不支持中文,只有数据源是支持中文路径的。如果渲染时要载入的资源(XML中引用的资源)路径中包含中文,将导致出错。
转载自:https://blog.csdn.net/free1985/article/details/76038465