Google地图:为两个不同的地图设置不同的缩放级别

时间:2009-08-07 02:51:44

标签: google-maps

我在页面上有两张地图,一张是世界地图,另一张是他们在世界地图上选择的当前地点的特写。我想为每张地图设置不同的缩放最小/最大级别,但是:

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

似乎为两个地图设置相同的最小/最大值,我无法将它们设置为不同的等级。

3 个答案:

答案 0 :(得分: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);    

答案 1 :(得分:0)

您需要2张不同的地图吗?您可以使用Map2.showMapBlowup()函数显示一个子区域,该子区域将是当前地图上的放大部分。

对不起,我不知道你是否真的可以用2张不同的地图来做。

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

答案 2 :(得分:0)

您可以使用自定义地图类型并使用Prototype等库复制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);

不知道这是否有效,只是脑风暴......