2009-08-07 43 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); 

不知道这是否会工作,只是一个头脑风暴.....

相关问题