2012-04-27 130 views
1

我一直在Google中搜索今天的大部分內容,試圖弄清楚這一點 - 我的JavaScript技巧是非常基本的,所以很抱歉,如果這可以輕鬆排序。我正在使用Google Maps API v3使用超鏈接控制Google地圖縮放級別

我想要做的是用超鏈接控制Google Map的縮放級別。例如,我想要三個定義的等級(在英國,歐洲的英國,世界的歐洲)。點擊這些鏈接將顯示具有不同縮放級別的地圖。

這可以輕鬆實現嗎?

感謝 達倫

+0

你也想改變地圖的中心點嗎?同一時間?看起來你可能想要集中在英國的第一個縮放級別的位置,以整個英國爲中心的第二個縮放級別,以歐洲爲中心的第三個縮放級別。 – 2012-04-28 16:07:34

回答

5

這不應該是太困難的事。

當您創建地圖時,您將獲得對地圖對象的引用,例如,

var mapOptions = {mapTypeId: google.maps.MapTypeId.TERRAIN}; 
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 

一旦有了對象,你可以放大到一個特定的水平是這樣的:

function zoomToLevel() { 
    map.setZoom(8); 
} 

所以你只需要設置超鏈接來運行JavaScript函數的單擊事件:

<a href="#" onclick="zoomToLevel(); return false;">Zoom to level 8</a> 

對於你正在做的事情來說,最好是讓地圖根據區域選擇它自己的縮放級別。這個功能實際上是放大顯示比利牛斯山脈,但是這個想法可以用於任何地區,只要你的點位於對角線上:

function zoomPyrenees() { 
    var startPoint; 
    var endPoint; 
    var boundsPyrenees; 

    startPoint = new google.maps.LatLng(43.373403, -1.774107); 
    endPoint = new google.maps.LatLng(42.482463, 3.129875); 
    boundsPyrenees = new google.maps.LatLngBounds(); 
    boundsPyrenees.extend(startPoint); 
    boundsPyrenees.extend(endPoint); 

    map.fitBounds(boundsPyrenees); 
} 
+0

太好了,謝謝你。我想通了,但忘了發佈我的解決方案 - 非常類似於這個!再次感謝! – 2012-05-16 23:41:16