2016-04-14 23 views
1

Sunucudan bir kullanıcı konumu aldığım ve harita üzerinde görüntülediğim bir uygulama geliştiriyorum.Openlayers 3 pan map her zaman sola doğru

Ayrıca bir açı ile sağlandığım için kullanıcının aradığı yönde görüntüleyebiliyorum.

Ayrıca, daha fazla bilgi için yan bölme açma olasılığı vardır. Bu durumda, bu şekilde yaptığım harita merkezini sola kaydırmalıyım.

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

Bu, kullanıcı kuzeyde "bakarken", ancak haritayı bir açıyla döndürdüğüm sırada değilken harika çalışıyor. Haritanın her zaman belirli bir miktarda açıyla görülebilmesi için hızlı bir yol var mı?

cevap

3

Sen piksel koordinatlara merkezini dönüştürmek için hesaplama yapacak ve ardından ol.Map.html#getCoordinateFromPixel gerçek koordinatlarına geri dönüştürmek için ol.Map.html#getPixelFromCoordinate kullanabilirsiniz:

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

Bu harika çalışıyor! –

İlgili konular