我有一个小面积的矩形WMS,并希望限制在WMS扩展之外的平移,因此地图外部没有可见的白色或黑色区域.添加extent
到View
有关此选项写不为我和文档工作
限制中心的程度,换句话说,中心不能设置在这个范围之外.
但据我所知,如果中心位于范围区域,但在角落处,它将在此范围之外显示白色区域,但我不想看到白色区域.
用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你想成为可见的)可用.