我是谷歌地图新手 我想在地图中显示三种不同地图类型(地图,卫星,混合)的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下显示标签选项。
答案 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/
我刚刚在Google群组中发现了一些新内容。
当您将google.maps.MapTypeId.HYBRID
添加到mapTypeIds
,并且您已经拥有google.maps.MapTypeId.SATELLITE
时,谷歌地图现在会在鼠标悬停“卫星”时添加名为“标签”的选项,而不是同时显示这两个选项。
效果与v2中的“混合”选项相同。
检查更新的jsfiddle:http://jsfiddle.net/RASG/vDLfs/6/
答案 2 :(得分:0)
在显示屏上添加Google地球地图类型会禁用ROADMAP下的TERRAIN选项和SATELLITE下的HYBRID选项。