2012-09-19 172 views
3

我是Openlayers的新手,想知道是否有返回縮放方向的方法或事件, onzoomin/onzoomout事件。我使用的是sproutcore 1.0,並嘗試根據縮放級別修改功能字體。我嘗試過使用規則,但根據應用程序結構,這不起作用。這裏是什麼,我要盡我的樣本事件:Openlayers放大或縮小

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

找到一個解決辦法使用功能geomtery邊界 –

回答

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(); 
}});