Openlayers 仅缩放到某个坐标,而不考虑指针位置

Openlayers 仅缩放到某个坐标,而不考虑指针位置,openlayers,openlayers-3,Openlayers,Openlayers 3,我需要地图只放大和缩小到某个坐标,而不管我的指针位于何处。例如,如果我希望地图缩放到伦敦,即使我的指针在海洋或其他地方,地图也会缩放到伦敦。我该如何实现这一点?OpenLayers中没有完全实现这一点的交互。以下是给你的一些建议: A) 您可以尝试约束地图的范围和缩放,以便只能导航所需的部分。请参见示例:,以及API about,更具体地说,请参见范围 这样,您就可以控制用户可以看到/浏览的内容。这并不像“你只能放大到伦敦”那样完美,但这是可以接受的 B) 如果您想更具攻击性,并且在导航时更严格

我需要地图只放大和缩小到某个坐标,而不管我的指针位于何处。例如,如果我希望地图缩放到伦敦,即使我的指针在海洋或其他地方,地图也会缩放到伦敦。我该如何实现这一点?

OpenLayers中没有完全实现这一点的交互。以下是给你的一些建议:

A) 您可以尝试约束地图的范围和缩放,以便只能导航所需的部分。请参见示例:,以及API about,更具体地说,请参见
范围

这样,您就可以控制用户可以看到/浏览的内容。这并不像“你只能放大到伦敦”那样完美,但这是可以接受的

B) 如果您想更具攻击性,并且在导航时更严格地限制用户可以做什么,您可以创建自己的交互,这将完全满足您的需求。我想您需要不止一个,即一个用于“鼠标滚动”,一个用于“双击”(两者都允许放大或缩小)


请参见如何在OpenLayers中创建。你可以从OL中现有的地图中获得一些灵感,但是使用tweeks可以让他们做你想做的事情。

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

var centerCoordinate = [0,0];
var view = map.getView();
view.setCenter (centerCoordinate);
这将移动该贴图,使贴图以(0,0)为中心。
如果需要,可以通过调用
view.animate
来设置动画。在。

上有一个例子,如果有人感兴趣,我只需删除zoom iteraction并向本机鼠标滚轮事件添加一个侦听器即可实现这一点,该事件会在触发时更改贴图的分辨率。一定有更好的解决方案,但对我来说效果很好。

谢谢你的回答!我必须找到解决这个问题的方法。谢谢,但我已经这么做了。当DragAndPan交互被禁用时,我的地图以某个对象为中心,我的任务是在用户滚动时使其缩放到中心对象。虽然地图居中,但用户可以随时在视图中缩放。