无法在Google地图中显示3种地图类型

时间:2012-10-12 13:54:43

标签: javascript google-maps google-maps-api-3

我是谷歌地图新手 我想在地图中显示三种不同地图类型(地图,卫星,混合)的Google地图。

为此,我正在编写像

这样的代码
function initialize() {
  var mapOptions = {
    center: new google.maps.LatLng(35.02, 111.02),
    zoom: 8, mapTypeControlOptions: {
  mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.SATELLITE,google.maps.MapTypeId.HYBRID]
    },
    mapTypeId: google.maps.MapTypeId.ROADMAP,
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

但是使用上面的代码,我只能在地图中显示地图和卫星地图类型。第三个地图类型混合不会在地图中显示。 此外,当我点击类型卫星时,我得到像Label这样的选项。所以我不想在satellite下显示标签选项。

3 个答案:

答案 0 :(得分:6)

Maps v3将始终将四个可用的mapTypeIds(HYBRID,ROADMAP,SATELLITE,TERRAIN)压缩为两个按钮以及每个按钮的复选框。所以 SATELLITE + HYBRID将为您提供带有标签复选框的 Satellite 按钮,ROADMAP + TERRAIN将为您提供带有地形的地图按钮复选框。

请注意,仅当您将鼠标悬停在有效按钮上时,才会显示该复选框,因此您必须处于地图模式才能看到地形<按钮下的/ em>复选框,您必须处于 Satellite 模式才能看到标签复选框!

实际上混合按钮是有趣的,但只有当您将HYBRID添加到mapTypeIds 而不添加SATELLITE时,它才会显示。 “地形”按钮也是如此,只有在将TERRAIN添加到列表中时才会显示,但不是 ROADMAP。

将mapTypeControlOptions.style切换到下拉框(DROPDOWN_MENU)而不是按钮(HORIZONTAL_BAR)也不会在结果下拉框中显示两个以上的项目。就像按钮一样,最多会有两个下拉项目以及每个项目的复选框。

答案 1 :(得分:4)

看起来您的地图上只有4个MapTypeId标签中的2个。

但您可以通过设置

强制将地图设为hybrid
map.setMapTypeId(google.maps.MapTypeId.HYBRID)

随时都可以是用户点击代码末尾的链接,按钮,音色等等。

检查这个jsfiddle:http://jsfiddle.net/RASG/vDLfs/

ddd


我刚刚在Google群组中发现了一些新内容。

当您将google.maps.MapTypeId.HYBRID添加到mapTypeIds,并且您已经拥有google.maps.MapTypeId.SATELLITE时,谷歌地图现在会在鼠标悬停“卫星”时添加名为“标签”的选项,而不是同时显示这两个选项。

效果与v2中的“混合”选项相同。

检查更新的jsfiddle:http://jsfiddle.net/RASG/vDLfs/6/

eee

答案 2 :(得分:0)

在显示屏上添加Google地球地图类型会禁用ROADMAP下的TERRAIN选项和SATELLITE下的HYBRID选项。