如何在Google Map API中覆盖或删除控件

时间:2010-03-01 11:46:36

标签: javascript google-maps

过去两天我一直在玩谷歌地图,并开始了解它的功能。

我正在使用大地图,即700 X 300分辨率地图大小,我正在尝试实现小地图中使用的控件。

例如。

var map = new GMap2(document.getElementById("map_canvas"));
 map.setCenter(new GLatLng(37.4419, -122.1419), 18);
 map.setMapType(G_HYBRID_MAP);
 **map.setUIToDefault();**
 map.enableContinuousZoom();

 var customUI = map.getDefaultUI();     
 customUI.controls.smallzoomcontrol3d=true;   //1. trying to override largezoomcontrol3d 
 customUI.controls.menumaptypecontrol=true;   //2. trying to override largezoomcontrol3d 
 map.setUI(customUI);

 map.enableRotation(); //3. Enabling rotation

这里是1(a)。在我删除行map.setUIToDefault()并再添加一行customUI.controls.largezoomcontrol3d=false之前,小缩放控件不可见。虽然我期望通过编写上面的代码,这些控件将被覆盖。

1(b)中。我试图使用map.removeControl(Control:GControl)我无法传递正确的参数。我想从地图中删除largezoomcontrol3d,但我无法弄清楚如何在当前地图中引用此控件。

  1. 这里也出现了同样的问题。这里唯一的区别是这两个控件都显示在menumaptypecontrolmaptypecontrol,此处menumaptypecontrol重叠在maptypecontrol

  2. 我正在尝试在地图上启用轮播,但它对我不起作用。

1 个答案:

答案 0 :(得分:1)

考虑map.removeControl你非常接近解决方案(如果我得到了你需要的东西)。看看这里:

Controls

所以,你需要使用map.addControl函数来准确添加你需要的东西,而不是你所做的。

抱歉,忘记了地图轮换。我认为以下简单的谷歌地图示例可以帮助你(我从来没有玩过轮换,但是从中学到的例子看起来很简单):
Google Map rotation example