2016-10-18 2 views
0

私の目的は、それがロックする必要がある後に(正確にGoogleマップのように)それをドラッグすると、ある限界まで地図をパンすることです。このサポートは、Openlayerバージョン2.0にBoundsを使用しています。しかし、バージョン3では、ビューを初期化するときにエクステントプロパティを設定する必要があります。私はこの段階で立ち往生しています。地図を初期化した後に表示が設定されません。openlayer3を使用してマップを初期化した後に、表示するエクステントプロパティを設定するにはどうすればよいですか?

var map = new ol.Map({ 
    target: 'map', 
    layers: [ 
     new ol.layer.Tile({ 
     source: new ol.source.OSM() 
     }) 
    ], 
    view: new ol.View({ 
     center: ol.proj.fromLonLat([73.8, 18.5]), 
     zoom: 12 
    }) 
    }); 

は、今私は、ビューこのコードは動作していない

map.setView(new ol.View({ 
    center: ol.proj.fromLonLat([73.8, 18.5]), 
    extent: map.getView().calculateExtent(map.getSize()), 
    zoom : 12 
    })); 

に '範囲' プロパティを設定します。それを行う他の方法はありますか、私は間違って何かをしていますか? コンソールにエラーはありません。しかし地図は表示されません。

+0

https://jsfiddle.net/nh9fs74k/ – Anudeep

答えて

0

代わりの現在の範囲外のマップをドラッグすることを防止するには、マップのinit

..... 
var myExtent = [xmin,ymin,xmax,ymax]; 
map.getView().fit(myExtent , map.getSize()); 
........ 

UPDATEmap.setView(new ol.View({...........

利用コードのこの作品は、次のようにします。

map.setView(
new ol.View({ 
    center: ol.proj.fromLonLat([73.8, 18.5]), 
    extent: map.getView().calculateExtent(map.getSize()), 
    zoom: 12 
    }) 
); 

ここにあるのはfiddle

です
+0

応答Pavlosに感謝します。 Yaaそれは問題ありません。実際には、 "map.getView()。calculateExtent(map.getSize())"からこれらの値(xmin、ymin、xmaz、ymax)を取得しています。コードの一部は絶対に正しいですが、目的は解決していません。特定の領域の後に領域がロックされる必要があります。もし私がハード・コードの値をマップの 'エクステント'プロパティ・ビュー・イニシャライザに直接記述すると、それは機能します。しかしそれは実現可能ではありません。 – Anudeep

+0

あなたは何をしようとしていますか?あなたはロックを意味しますか?範囲外に移動するのを防ぐ。あなたの問題を実証するために、詳しく説明してください。 – pavlos

+0

はい。範囲外に移動するのを防ぐ。 – Anudeep

関連する問題