8

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

为此,我正在编写类似的代码

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 。所以我不想在卫星下显示标签选项。

4

3 回答 3

8

Maps v3 将始终将四个可用的 mapTypeIds(HYBRID、ROADMAP、SATELLITE、TERRAIN)压缩为两个按钮以及每个按钮的复选框。所以 SATELLITE + HYBRID 会给你一个带有标签复选框的卫星按钮,而 ROADMAP + TERRAIN 会给你一个带有地形复选框的地图按钮。

请注意,该复选框仅在您将鼠标悬停在活动按钮上时显示,因此您必须处于地图模式才能看到按钮下方的地形复选框,并且您必须处于卫星模式才能看到标签复选框!

有趣的是,实际上一个 Hybrid 按钮,但它只有在您将 HYBRID 添加到 mapTypeIds而不添加 SATELLITE 时才可见。Terrain 按钮也是如此,它仅在您将 TERRAIN 添加到列表时才可见,而不是ROADMAP。

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

于 2013-01-31T11:47:44.573 回答
5

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

但您可以hybrid通过设置强制地图

map.setMapTypeId(google.maps.MapTypeId.HYBRID)

在任何时候,无论是用户点击链接、按钮、计时器、代码末尾等。

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

ddd


我刚刚在 google 群组中发现了一些新东西。

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

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

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

eee

于 2012-10-12T15:52:56.173 回答
0

将 Google 地球地图类型添加到显示器会禁用 ROADMAP 下的 TERRAIN 选项和 SATELLITE 下的 HYBRID 选项。

于 2013-12-09T23:49:30.033 回答