2016-04-14 74 views
1

我正在開發一個應用程序,從服務器獲取用戶位置,並將其顯示在地圖上。Openlayers 3泛地圖總是在左邊

我還提供了一個角度,所以我可以顯示用戶正在尋找的方向。

也有可能打開一個sidepanel的一些更多的信息。在這種情況下,我必須將地圖中心向左移動,我喜歡這樣做。

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

這個偉大的工程在用戶「看」北,但不是我的角度旋轉地圖。有沒有一種快速的方法來平移總是留下一定角度的地圖?

回答

3

你可以使用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); 

http://jsfiddle.net/6mh110xv/1/

+0

這個偉大的工程! –