2016-12-08 4 views
0

私は体のマップを作成するためにopenlayersを使用しています。それはそこに人のmriスキャンが多くのマーカーがあることを示しています。openlayers 3:画像の外側を拡大しないでください

完全にズームアウトされています(または、私の場合は黒い背景が黒です)。私はエクステンションパラメータでopenlayersを設定しました。そのため、ユーザーはイメージが大きくて。 ユーザーがその周りの空白を移動してズームすると、画像はカーソルの位置に基づいてズームされ、ボディは表示されません。ユーザーが再度パンニングを開始すると、エクステントが再生され、画像の端にジャンプします。

カーソルがエクステント外にあるときにズームイン/ズームアウトを無効にする方法はありますか?それが不可能な場合は、画像の端に自動的にジャンプするように移動/パンをトリガーするにはどうすればよいですか?

編集14/12/2016:問題を説明するためにJSFiddleを作成しました。

そして、そこで実行されるコード:

var pbm = {}; 
pbm.vars = {}; 

pbm.vars.extent = [0, 0, 1536, 5120]; 
pbm.vars.projection = new ol.proj.Projection({ 
    code: 'xkcd-image', 
    units: 'pixels', 
    extent: pbm.vars.extent 
}); 

/** 
* initMap 
* -------- 
* triggered by pbm.parseCases! 
* outputs the bodymap to the #body-div 
* this functions needs all the other ol-elements to work! 
*/ 
pbm.initMap = function(){ 
    pbm.map = new ol.Map({ 
    layers: [ 
     new ol.layer.Image({ 
     source: new ol.source.ImageStatic({ 
      url: 'https://s3-eu-west-1.amazonaws.com/norvell-philips/bodymap-static-hiress.jpg', 
      projection: pbm.vars.projection, 
      imageExtent: pbm.vars.extent 
     }) 
     }) 
    ], 
    target: 'body',//Div#body 
    view: new ol.View({ 
     projection: pbm.vars.projection, 
     center: ol.extent.getCenter(pbm.vars.extent), 
     zoom: 2, 
     maxZoom: 5, 
     minZoom: 1, 
     extent: pbm.vars.extent 
    }), 
    renderer: 'canvas', 
    controls: ol.control.defaults({attribution:false, rotate: false, zoom:false}), 
    interactions: pbm.vars.interactions 
    }); 
} 

$(document).ready(function(){ 
    pbm.initMap(); 
}); 
+0

プランカの例を作成します。あなたの問題を解決するのに役立ちますか? –

+0

いくつかのコードとjsfiddleの例を追加しました –

答えて

0

これは最近修正されたバグです。修正を含む最初のリリースはv3.21.0になります。修正プログラムへのリンクを含むチケットは#5824です。

関連する問題