Google 地图缩放滚动条不会出现在新版本中
Google maps zoom scrollbar does not appear on new version
我有一个网页 here。它使用 google 地图并且效果很好。最近发布了新版本的 google 地图,其中进行了一些更改。例如,应该使用 e.latLng.F
、e.latLng.lng
而不是 e.latLng.A
、e.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 而不是在我这边,因为:
- 示例和我的代码都使用了
div
- 属性以类似的方式初始化
- 地图以类似的方式初始化
- dom 侦听器以类似的方式初始化
他们从最新的 API 中删除了滚动条,但保留了 +
和 -
缩放控件。奇怪的是,我看到你的地图也没有。
This article 关于对地图控件所做的更改可能会有用
缩放控件始终显示,但页脚溢出了它。似乎缩放控件默认位于右下角,而早些时候它默认位于左上角。解决办法要么确保显示地图的div
完全显示,要么初始化缩放控件的位置,像这样:
var mapOptions = {
center: { lat: lat, lng: lon},
zoom: 14,
zoomControlOptions: {
position: google.maps.ControlPosition.LEFT_TOP
}
};
我有一个网页 here。它使用 google 地图并且效果很好。最近发布了新版本的 google 地图,其中进行了一些更改。例如,应该使用 e.latLng.F
、e.latLng.lng
而不是 e.latLng.A
、e.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 而不是在我这边,因为:
- 示例和我的代码都使用了
div
- 属性以类似的方式初始化
- 地图以类似的方式初始化
- dom 侦听器以类似的方式初始化
他们从最新的 API 中删除了滚动条,但保留了 +
和 -
缩放控件。奇怪的是,我看到你的地图也没有。
This article 关于对地图控件所做的更改可能会有用
缩放控件始终显示,但页脚溢出了它。似乎缩放控件默认位于右下角,而早些时候它默认位于左上角。解决办法要么确保显示地图的div
完全显示,要么初始化缩放控件的位置,像这样:
var mapOptions = {
center: { lat: lat, lng: lon},
zoom: 14,
zoomControlOptions: {
position: google.maps.ControlPosition.LEFT_TOP
}
};