2010-10-26 45 views
3

我有兩個點在谷歌地圖上,我想使用平滑動畫在它們之間轉換。使用map.panTo()方法我可以平移到它們,但只有第二個點小於地圖的寬度/高度時,動畫才起作用。如何獲得一個光滑的谷歌地圖panTo()當目的地很遠

這樣的想法我想出了是向上突破轉型成類似:

var destination = next point 
get center 

check if the destination is in bounds 
if so 
    panTo it 
else 
    get the midpoint between center and point 
    if midpoint in bounds pan 
    else get midpoint etc.... 

所以這裏的旅遊被分解成儘可能少的步驟成爲可能。 問題是,我不知道如何在代碼中實現這一點(遞歸中點檢查是)任何幫助將是偉大的。

有這個問題的網頁IM是http://amishh4cker.com/geocaching.html

+1

如果您保持縮小狀態直到下一個點位於邊界內,然後執行panTo然後放大回來,該怎麼辦? – Detect 2010-10-26 14:31:39

+0

有這個想法,但我寧願不先縮小。正在尋找一種不放大的方式。 – kyassuru 2010-10-26 14:47:34

回答

0
 
if (end - start) > width and (end - start) < maxpandistance then 
    midpoint = start + (end - start) * .5 
    while midpoint is not on screen 
    midpoint = start + (midpoint - start) * .5 
    loop 

    panto midpoint 
else 
    panto end 

類似的東西,雖然我可以看到相當大的距離,導致速度的下降,特別是隨着窗口變小。