Anu*_*eep 3 javascript maps openlayers openlayers-3
我的目的是当我们拖动地图时将地图平移到一定的限制(就像谷歌地图一样),然后它应该锁定。Openlayer 2.0 版中使用 Bounds 提供了这种支持。但在版本 3 中,我必须在初始化视图时设置范围属性。我就卡在这个阶段了。初始化地图后未设置视图。
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
})
});
Run Code Online (Sandbox Code Playgroud)
现在我想在视图中设置“范围”属性
map.setView(new ol.View({
center: ol.proj.fromLonLat([73.8, 18.5]),
extent: map.getView().calculateExtent(map.getSize()),
zoom : 12
}));
Run Code Online (Sandbox Code Playgroud)
该代码不起作用。还有其他方法可以做到这一点还是我做错了什么?控制台没有错误。但地图不显示。
代替map.setView(new ol.View({...........
在map init之后使用这段代码
.....
var myExtent = [xmin,ymin,xmax,ymax];
map.getView().fit(myExtent , map.getSize());
........
Run Code Online (Sandbox Code Playgroud)
更新 要防止将地图拖动到当前范围之外,请执行以下操作:
map.setView(
new ol.View({
center: ol.proj.fromLonLat([73.8, 18.5]),
extent: map.getView().calculateExtent(map.getSize()),
zoom: 12
})
);
Run Code Online (Sandbox Code Playgroud)
这是一个小提琴