2012-09-17 46 views
3

我想創建一個貼圖(使用小冊子)。當用戶點擊其中一個地圖時,地圖應該移動直到該地圖在水平中心的地圖底部。同時使用panTo和panBy

我的地圖是400個像素的身高,所以我用這個代碼:

map.panTo(new L.LatLng(lat, lng)); 
map.panBy(new L.Point(0, -200)); 

它的工作就像一個魅力 - 只有IE瀏覽器有一些問題吧:它開始朝的中心移動地圖(panTo),但只要它的狀態向下移動(panBy),它就會停止向中心移動。

我該如何結合這兩個動作?我不能等到panTo居中放置地圖,因爲如果地圖位於地圖的下半部分,會導致地圖上下跳動。

+1

調整lat/lng值以包含翻譯?儘管這可能過於複雜;您必須根據窗口小部件的當前縮放設置來計算結果值。 – Shmiddty

+0

這聽起來很複雜。你知道一個例子的網頁嗎? – Christopher

+0

從傳單文檔中,您可以使用:'latLngToPoint( latlng, zoom)'修改該值,然後將其轉換回經緯度值:'pointToLatLng(點,放大) '來源:http://leaflet.cloudmade.com/reference.html#icrs – Shmiddty

回答

6

從單張文檔,你可以用得到緯度/長點作爲像素:

latLngToPoint(<LatLng> latlng, <Number> zoom)

修改,然後將其轉換回拉/長與:

pointToLatLng(<Point> point, <Number> zoom)

來源:http://leaflet.cloudmade.com/reference.html#icrs

+7

這些函數可以通過'map.options.crs'('map = L.map('map')')來訪問 – Christopher