openlayers-3 - 在 OpenLayers3 中限制 WMS 范围外的平移

标签 openlayers-3

我有小面积的矩形 WMS,并希望限制 WMS 扩展外的平移,因此 map 外根本看不到白色或黑色区域。
添加 extentView对我不起作用,并且在有关此选项的文档中已写入

The extent that constrains the center, in other words, center cannot be set outside this extent.



但据我所知,如果中心在范围内,但在最角落,它会显示此范围之外的白色区域,但我根本不想看到白色区域。

用 OL3 可以实现吗?

最佳答案

这是我的解决方案。我刚刚写了它,所以它没有被广泛测试。例如,如果您开始旋转 map ,它可能会中断,如果您缩小得太远,它可能会出现故障。

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);

这需要变量 map , view (具有明显的含义)和 extent (您希望可见的 xmin、ymin、xmax、ymax)可用。

关于openlayers-3 - 在 OpenLayers3 中限制 WMS 范围外的平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27200086/

相关文章:

javascript - 基于函数结果的 Azure 条件数据驱动样式

javascript - openlayers3如何始终启用徒手绘制

javascript - 使用 openLayers 绘制多边形

javascript - 我们可以使用 html 标签和 css 来设置 openlayers 中的功能样式吗?

javascript - 即时更改绘图工具

javascript - 需要在OL3中克隆图层

javascript - Openlayers如何更新 map 移动事件上的叠加位置

html - Openlayer弹出位置是底部中心

geolocation - 关闭 Openlayers 3 地理定位

javascript - 如何偏移 ol.style.Circle 或 ol.style.RegularShape?