如何限制OpenLayers地图中的区域?

时间:2015-04-06 10:16:13

标签: javascript openlayers-3

我试图使用openlayers v3.4.0来显示一些地理信息。 我的地图是这样创建的:

    var map = new ol.Map({
        target: 'map',
        layers: [
            new ol.layer.Tile({
                source: new ol.source.MapQuest({layer: 'osm'})
            })

        ],
        view: new ol.View({
          center: [0, 0],
          zoom: 1,
          minZoom: 1,
          projection: 'EPSG:3857'

        })
    });

var pl = new ol.layer.Vector({...});
map.addLayer(pl);

它显示我需要显示的信息,一切都会好,但是如果你滚动,你可以滚动不定数量到两侧并且标记的信息不被绘制。 例如,如果我标记伦敦(带点或多边形)并使用鼠标向右滚动地图直到另一个英国在地图上,则伦敦没有标记。

所以我想要做的是将预览区域限制为1个世界,这样你就无法滚动。我发现"范围"应该限制​​区域,但找不到如何正确使用它。

1 个答案:

答案 0 :(得分:0)

您可以使用view.fitExtent()方法应用给定范围。以下是一个示例:http://acanimal.github.io/thebookofopenlayers3/chapter01_03_fit_extent.html

这只是设置了一个新的范围,如果你想限制某个区域,你必须使用constrain*方法。您还可以使用min/maxZoommin/maxResolution禁止缩放。