2012-05-21 118 views
2

我可以限制縮放谷歌地圖API爲個人縮放? 我的意思是我可以只放大2和6而不是2-3-4-5-6 我看到我有最小變焦和最大變焦,但我不希望變焦只能在單一範圍內。放大谷歌地圖API

問候, 貝納

回答

3

你只能模仿這個。該API不允許你錯過縮放。

zoom_changed事件不再告訴你有關更改的任何信息。在版本2中,您可以知道舊的縮放級別和新的級別。

因此,你必須在第3版。

猜如果你在變焦2和用戶放大時,API會去放大3.所以,你可以攔截zoom_changed事件,檢驗地圖是否現在是3級,並把它給6級你可以做同樣在其他方向:如果地圖應在5級(6),使其2.

// Untested code 
google.maps.event.addListener(map,'zoom_changed',function() { 
    if (map.getZoom() == 3) map.setZoom(6); 
    if (map.getZoom() == 5) map.setZoom(2); 
}); 

注意,這將不會幫助如果用戶使用縮放滑塊並直接從2移動到5:事件處理程序將看到當前縮放爲5,a ssume只移動一步(從6開始)並將其設置回2.如果使用滑塊進行縮放,它也不會起作用。4.您需要決定在這些情況下會發生什麼。您可能想要使用一組沒有滑塊的地圖控件。

+0

剛剛添加了我的礦,但我會讓它就位,因爲我不需要移除縮放控件/仍然可以與其他縮放方法一起使用。 – ScottE

+0

@ScottE:我不能應付變焦滑塊;你的應付變焦按鈕。如果縮放事件像版本2一樣工作,那將會容易得多。 –

1

以及你可以點擊地圖上使用的功能getZoom()。檢查縮放級別是否改變。然後使用setZoom設置適當的縮放級別click here for help

1

您可以添加一個偵聽器ZOOM_CHANGED事件,檢查變焦,並設置取決於它是否接近2或接近6

(假設「地圖」變量保存的一個實例變焦地圖)

google.maps.event.addListener(map, 'zoom_changed', function() { 

    var currentZoom = map.getZoom(); 
    if (currentZoom !== 2 && currentZoom !==6) { 
    if (currentZoom <=4) { 
     map.setZoom(2); 
    } else { 
     map.setZoom(6); 
    } 
    } 

});