MS RFC 14:内联特性的相对坐标¶
- 日期
2006/04/10
- 作者
史蒂夫·莱姆
- 联系方式
明尼苏达州第纳尔的史蒂夫·莱姆
- 状态
完成
- 版本
MAPServer 4.10
描述:当前可以使用像素坐标绘制特征,并通过在图层定义中设置“转换为假”来绘制这些特征。但是,坐标是相对于图像(0,0)的左上角的,这使得如果图像大小可以改变(例如,通过WMS),则无法将版权声明等内容锚定到图像的其他角。
所提出的解决方案扩展了图层转换参数的行为,该参数将告诉MapServer使用图像的ul角的替代原点。
C结构变化¶
一个也没有。将使用现有结构、成员和常量。可能应该给位置枚举一个不同的起始值,以避免与ms_true和ms_false等变量发生冲突。
Mapfile 更改¶
这个功能实际上是面向内联特性的。但是,我希望保持门户打开,以支持来自任何数据源的功能。建议的更改将扩展层转换参数的使用。当前它采用值true或false(默认值为true)。我建议扩展到也采用任何标准的显式位置值。因此,对于典型的内联特性,您将看到一个类似以下的层:
LAYER
NAME 'copyright'
TYPE POINT
TRANSFORM LL
FEATURE
POINTS 10 -10 END
TEXT 'Copyright © MNDNR'
END
CLASS
...
END
END
在mapscript中,语法也同样简单:
$layer->{transform} = $mapscript::MS_LL;
... draw as normal ...
受影响的文件¶
map.h=>更改位置枚举的起始值
mapfile.c=>添加对附加转换值的检测
mapprimitive.c=>添加一个新的偏移形状函数,该函数将以map hight、width和shapeobj作为输入。
mapdraw.c=>更新形状绘图代码以使用新函数(基本上是所有if(layer->transform)检查的一个else条件)。
测试¶
python套件:不需要
MSAutoTest套件:将开发一个测试所有9个位置的 Mapfile
向后兼容性问题¶
不适用,新功能。“假”转换的值表示ul…应该注意的是,通过更改位置枚举的起始值,可能会破坏用整数引用位置的脚本(编程实践不佳)。我希望这是一个遥远的可能性,值得冒险。
投票历史¶
通过