2009-08-07 46 views
0

我在頁面上有兩張地圖,一張是世界地圖,另一張是他們在世界地圖上挑選的當前地點的特寫。我想爲每個地圖設置不同的縮放最小/最大級別,但是:谷歌地圖:爲兩張不同的地圖設置不同的縮放級別

G_NORMAL_MAP.getMinimumResolution = function(){return 11};

似乎爲這兩個地圖設置了相同的最小/最大值,我無法將它們設置爲不同的等級。

回答

2

我認爲這個問題可能是在其他地方在你的代碼 - 我不確定你是如何使用該功能的。

這是一種可行的方法。您可以重新編寫它以減少重複。

map1 = new GMap2(document.getElementById("map1")); 
map1.addControl(new GLargeMapControl3D()); 
map1.addControl(new GMenuMapTypeControl()); 

var mt = map1.getMapTypes(); 
// Overwrite the getMinimumResolution() and getMaximumResolution() methods 
for (var i=0; i<mt.length; i++) { 
    mt[i].getMinimumResolution = function() {return 7;} 
    mt[i].getMaximumResolution = function() {return 11;} 
} 
map1.setCenter(new GLatLng(40,-100), 8);  


map2 = new GMap2(document.getElementById("map2")); 
map2.addControl(new GLargeMapControl3D()); 
map2.addControl(new GMenuMapTypeControl()); 

var mt = map2.getMapTypes(); 
// Overwrite the getMinimumResolution() and getMaximumResolution() methods 
for (var i=0; i<mt.length; i++) { 
    mt[i].getMinimumResolution = function() {return 2;} 
    mt[i].getMaximumResolution = function() {return 6;} 
} 

map2.setCenter(new GLatLng(40,-100), 4);  
0

你需要2個不同的地圖嗎?您可以使用Map2.showMapBlowup()函數來顯示將在當前地圖上放大的分區。

對不起,我不知道你是否可以用兩張不同的地圖做到這一點。

http://code.google.com/apis/maps/documentation/reference.html#GMap2.showMapBlowup

+0

是的,我們需要映射。基本上我們有一個網格,我們繪製一些覆蓋,如果你縮小太多,覆蓋太多。所以我們製作了一個沒有覆蓋的小世界地圖,這樣您就可以快速導航到另一個地點,「細節」地圖會通過覆蓋圖向您顯示該地區。 – Codezy 2009-08-07 03:56:32

0

您可以使用自定義地圖類型和複製使用像原型庫的G_NORMAL_MAP成員。

var G_MY_MAP = Class.create(G_NORMAL_MAP, { 
    getMinimumResolution: function() 
    { 
     return 11; 
    } 
}); 

然後在你的第二個地圖:

secondMap.addMapType(G_MY_MAP); 
secondMap.setMapType(G_MY_MAP); 

不知道這是否會工作,只是一個頭腦風暴.....

相關問題