2011-10-06 17 views

回答

1

有人會說一個錯誤,而其他人會說這是一個功能。公平地說,它看起來像是「正確的」行爲,但它並沒有給你任何有用的結果。

我相信越來越過去的這個「功能」的最常見的方式是,以確保你的價值不會低於-180 OG上方180到完成,這是始終撥打電話一個簡單的方法:

map.getCenter().lng() % 180; 

這將始終爲您提供模數180,這是您減去180後的餘數,直到數值在正確的範圍內。

+0

謝謝Kasper。我認爲gmaps應該提供兩種選擇,一種是看用戶滾動了多少次,另一種用數字來處理。有了你的建議,我想出了 – uguMark

+0

'var lngCenter = map.getCenter()。lng(); \t \t var rem = lngCenter%180; \t \t如果(!Math.abs(parseInt函數(lngCenter/180))%2 == 0) \t \t { \t \t \t如果(REM <0) \t \t \t \t REM + = 180; \t \t \t別的 \t \t \t \t REM - = 180; \t \t} \t \t lngCenter = rem;'我能做些什麼更有效率嗎? – uguMark

1

只是更新本從這裏添加一個答案:

http://code.google.com/p/gmaps-api-issues/issues/detail?id=3247

在上面的鏈接,你可以創建一個新的經緯度對象,將正確包裹經度。

var center = map.getCenter(); 

var wrapped = new google.maps.LatLng(center.lat(), center.lng()); 

我發現,用我自己的數學分我180,我還是會打一些人爲的情況下像素或周圍的本初子午線2個拖會導致不正確的測量來計算的 - 也許我的數學並沒有一鼓作氣上,但無論如何 - 上面在我看來是一個更好的解決方案。

相關問題