Iva*_*čić 1 rotation pan openlayers-3
我正在开发一个应用程序,我从服务器获取用户位置,并将其显示在地图上.
我也提供了一个角度,这样我就可以显示用户正在查看的方向.
还可以打开侧面板以获取更多信息.在这种情况下,我必须向左移动地图中心,我喜欢这样.
var center = map.getView().getCenter();
var pan = ol.animation.pan({
duration: 500,
source: (center)
});
if (isSidePanelVisible) {
center[0] += 1000;
} else {
center[0] -= 1000;
}
map.beforeRender(pan);
map.getView().setCenter(center);
Run Code Online (Sandbox Code Playgroud)
当用户"向北"看时,这种方法很有效,但是当我以一定角度旋转地图时却没有.是否有一种快速的方法来平移地图总是留下一定数量的角度?
您可以使用ol.Map.html#getPixelFromCoordinate将中心转换为像素坐标,进行计算,然后使用ol.Map.html#getCoordinateFromPixel转换回实际坐标:
var view = map.getView();
var center = view.getCenter();
var centerInPx = map.getPixelFromCoordinate(center);
var newCenterInPx = [centerInPx[0] - 100, centerInPx[1]];
var newCenter = map.getCoordinateFromPixel(newCenterInPx);
view.setCenter(newCenter);
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/6mh110xv/1/