我对Openlayers很陌生,并且想知道是否存在返回缩放方向的方法或事件,例如onzoomin / onzoomout活动。我正在使用sproutcore 1.0并尝试根据缩放级别修改功能字体。我尝试使用规则,但根据应用程序结构,这不起作用。以下是我想要做的示例事件:
this.map.events.on({ "zoomend": function (e) {
var sub = 0;
if (ZOOMOUT){
sub = this.getZoom();
} else {
sub = this.getZoom() * -1;
}
var font = myFeature.layer.styleMap.styles['default'].defaultStyle.fontSize;
font = font + sub*10;
myFeature.layer.redraw();
}});
答案 0 :(得分:2)
使用几何边界找到一个解决方法,可以得到一个好的结果:
this.map.events.on({ "zoomend": function (e) {
var width = myFeature.geometry.bounds.right - myFeature.geometry.bounds.left;
var div = 0;
if (this.getZoom() > 12) {
div = 4;
} else {
div = 6;
}
myFeature.layer.styleMap.styles['default'].defaultStyle.fontSize = (width/((15 - this.getZoom())+1)) / div).toString() + "px";
myFeature.layer.redraw();
}});