2012-06-20 66 views
1

我試圖想出一個辦法來限制谷歌地圖的拖拽選項,使得:谷歌地圖:避免顯示海

  • 地圖視圖限制爲只顯示某些國家。
  • 但是在更高的縮放級別下,用戶可以以只有大海在視圖中的方式拖動地圖。

我的要求是儘管用戶在什麼縮放級別,他不應該能夠拖動地圖有海景。只有當試圖進入大海時應該顯示的土地應該被限制(防止拖延)。

我已經定義了邊界來成功限制地圖視圖。 但問題是在更高的縮放級別,用戶可以拖動地圖,仍然在邊界內,但只顯示大海,我想要阻止。

但我還是無法想出一個辦法來完成這項任務。任何人都可以請建議一種方法/機制嗎?

謝謝...

回答

1

我對你的問題有點困惑。

你說

「在更高的縮放級別,用戶可以拖動地圖的方式,只有海在視圖中」

,然後你說

「儘管什麼變焦用戶所在的級別,他不應該能夠拖動地圖以獲得海景「

無論如何,我有一個解決方案,您可以使地圖不可拖動,然後在縮放時,您可以更改值。

例如:

function intialize{ 

    map = new google.maps.Map(document.getElementById("map_canvas"); 
    map.setOptions({ draggable : true }); 

} 

google.maps.event.addListener(map,'zoom_changed',function() { 
    if (map.getZoom() >= 4) { 
    map.setOptions({ draggable : false}); 
    } 
}); 

編輯:我想我開始明白你在說什麼,但。我相信你想要的是允許用戶放大和探索一個國家,但不要把地圖拖到水上。如果你縮小,你不能拖動了。我不太確定你是否可以完全實現這一點,但你可以根據縮放級別確定地圖是否可拖動。

+0

是的,那正是我的意思。但我認爲如果我可以得到國家的邊界​​座標(這意味着它的邊界),那麼它應該是可能的?因爲那樣我們可以隨時比較國家邊界與可拖動(視圖)區域。 – KTB

+0

然後我相信這是你正在尋找的。 https://developers.google.com/maps/documentation/javascript/reference#MouseEvent 鼠標事件阻止鼠標繼續前進。然後向下滾動幾個條目,即可獲得經緯度範圍。 – krikara

1

這起初似乎很辛苦。如果有一小塊土地可見,你會怎麼做,是嗎?

但是,您可以防止用戶拖動地圖。在MapOptions中設置可拖動:false。

+0

是的,沒關係。謝謝... – KTB