3

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

1 に答える 1

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();
}});
于 2012-09-20T07:19:40.277 に答える