在OpenLayers3中限制在WMS范围之外的Pan

Anu*_*ket 15 openlayers-3

我有一个小面积的矩形WMS,并希望限制在WMS扩展之外的平移,因此地图外部没有可见的白色或黑色区域.添加extentView有关此选项写不为我和文档工作

限制中心的程度,换句话说,中心不能设置在这个范围之外.

但据我所知,如果中心位于范围区域,但在角落处,它将在此范围之外显示白色区域,但我不想看到白色区域.

用OL3可以实现这个目的吗?

tre*_*mby 12

这是我的解决方案.我刚刚写了它,因此没有经过广泛的测试.例如,如果你开始旋转地图,它可能会中断,如果你缩小得太远,它可能会出现故障.

var constrainPan = function() {
    var visible = view.calculateExtent(map.getSize());
    var centre = view.getCenter();
    var delta;
    var adjust = false;
    if ((delta = extent[0] - visible[0]) > 0) {
        adjust = true;
        centre[0] += delta;
    } else if ((delta = extent[2] - visible[2]) < 0) {
        adjust = true;
        centre[0] += delta;
    }
    if ((delta = extent[1] - visible[1]) > 0) {
        adjust = true;
        centre[1] += delta;
    } else if ((delta = extent[3] - visible[3]) < 0) {
        adjust = true;
        centre[1] += delta;
    }
    if (adjust) {
        view.setCenter(centre);
    }
};
view.on('change:resolution', constrainPan);
view.on('change:center', constrainPan);
Run Code Online (Sandbox Code Playgroud)

这预计变量map,view(有明显的意义)和extent(在XMIN,YMIN,XMAX,YMAX你想成为可见的)可用.