无论指针位置如何,都只能缩放到某个坐标

时间:2017-06-13 09:07:41

标签: openlayers openlayers-3

无论指针位于何处,我都需要将地图放大和缩小到某个坐标。例如,如果我希望地图缩放到伦敦,即使我的指针位于海洋或其他地方,地图也会缩放到伦敦。我该如何实现?

3 个答案:

答案 0 :(得分:0)

OpenLayers中没有完全相同的交互。这里有一些建议:

A)您可以尝试约束地图的范围和缩放,以便只导航您想要的部分。请参阅示例:Zoom constrained和关于ol.View的API,更具体地说,请参阅extent

有了这个,您可以控制用户可以看到/浏览的内容。这不会像&#34那样完美;你只能放大到伦敦",但可以接受恕我直言。

B)如果你想要更具侵略性并且限制用户在导航时可以做的更多事情,你可以创建你自己的交互,这将完全符合你的要求。我想你需要不止一个,即一个用于"鼠标滚动"一个用于"双击" (都允许放大或缩小)。

了解如何在OpenLayers中创建Custom Iteraction。你可以从OL中的现有灵感中获得灵感,但是通过tweek可以让它们做你想做的事。

答案 1 :(得分:0)

您可以将地图中心设置为某个坐标。您需要事先知道坐标。

var centerCoordinate = [0,0];
var view = map.getView();
view.setCenter (centerCoordinate);

这将移动该地图,使地图以(0,0)为中心。 如果需要,可以通过调用view.animate为其设置动画。 http://openlayers.org/en/latest/examples/animation.html有一个例子。

答案 2 :(得分:0)

如果有人感兴趣,我通过简单地删除缩放迭代并向本机鼠标事件添加侦听器来实现此目的,这会在触发时更改地图的分辨率。必须有一个更好的解决方案,但它对我来说很好。