我的目的是将地图平移到某个限制,当我们拖动它时(就像谷歌地图一样)它应该锁定。使用Bounds在Openlayer 2.0版中提供此支持。但在版本3中,我必须在初始化视图时设置extent属性。我陷入了这个阶段。初始化地图后未设置视图。
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
})
});
现在我想在视图中设置'extent'属性
map.setView(new ol.View({
center: ol.proj.fromLonLat([73.8, 18.5]),
extent: map.getView().calculateExtent(map.getSize()),
zoom : 12
}));
此代码无效。有没有其他方法可以做到这一点,还是我做错了什么? 控制台中没有错误。但地图不显示。
答案 0 :(得分:2)
而不是map.setView(new ol.View({...........
在map init
之后使用这段代码.....
var myExtent = [xmin,ymin,xmax,ymax];
map.getView().fit(myExtent , map.getSize());
........
<强>更新强> 要防止在当前范围之外拖动地图,请执行以下操作:
map.setView(
new ol.View({
center: ol.proj.fromLonLat([73.8, 18.5]),
extent: map.getView().calculateExtent(map.getSize()),
zoom: 12
})
);
这是一个Koloboke