Google 地图缩放滚动条不会出现在新版本中

Google maps zoom scrollbar does not appear on new version

我有一个网页 here。它使用 google 地图并且效果很好。最近发布了新版本的 google 地图,其中进行了一些更改。例如,应该使用 e.latLng.Fe.latLng.lng 而不是 e.latLng.Ae.latLng.lat。到目前为止,一切都很好。但是,由于某种原因,无法看到缩放滚动条。我知道人们仍然可以通过鼠标滚动进行缩放,但是,没有定义鼠标滚动的设备呢,比如带有触摸板的笔记本电脑?

这是初始化的一部分:

var mapOptions = {
    center: { lat: lat, lng: lon},
    zoom: 14
};

if (!administrator) {
    mapOptions.mapTypeId = google.maps.MapTypeId.HYBRID;
}

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

我想我应该为 mapOptions 定义一个属性,但我不知道应该在那里定义什么。当我在 google 上搜索这个时,我没有找到答案。有可能我很快就会找到答案,但无论如何,我在这里提出这个问题是为了确保其他人将来会有这个问题的答案。谢谢。

编辑:

this 页面我可以看到一个缩放控件。这是那里的代码:

<!DOCTYPE html>
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js">
</script>

<script>
function initialize()
{
  var mapProp = {
    center: new google.maps.LatLng(51.508742,-0.120850),
    zoom:7,
    zoomControl:true,
    zoomControlOptions: {
      style:google.maps.ZoomControlStyle.SMALL
    },
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>

如果我修改成这样:

<!DOCTYPE html>
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js">
</script>

<script>
function initialize()
{
  var mapProp = {
    center: { lat: 51.508742, lng: -0.120850},
    zoom:7,
  };
  var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>

缩放控件仍然显示。我想知道为什么缩放控件显示在 w3c 而不是在我这边,因为:

他们从最新的 API 中删除了滚动条,但保留了 +- 缩放控件。奇怪的是,我看到你的地图也没有。

This article 关于对地图控件所做的更改可能会有用

缩放控件始终显示,但页脚溢出了它。似乎缩放控件默认位于右下角,而早些时候它默认位于左上角。解决办法要么确保显示地图的div完全显​​示,要么初始化缩放控件的位置,像这样:

var mapOptions = {
    center: { lat: lat, lng: lon},
    zoom: 14,
    zoomControlOptions: {
        position: google.maps.ControlPosition.LEFT_TOP
    }
};