详细介绍MapTypes接口的Google Maps API指南针对“必需”属性规定了以下内容:
maxZoom(必需)指定要进行缩放的最大缩放级别
显示此地图类型的图块。
但是,在Google提供的示例中:
https://developers.google.com/maps/documentation/javascript/examples/maptype-base
甚至不包含maxZoom属性。
如果修改了代码以包含maxZoom属性(如下所示),则该属性无效-应该吗?一些澄清会很好...
<!DOCTYPE html>
<html>
<head>
<title>Overlay map types</title>
<style>
html, body, #map-canvas {
height: 100%;
margin: 0px;
padding: 0px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script>
/** @constructor */
function CoordMapType(tileSize) {
this.tileSize = tileSize;
this.maxZoom = 12; // <--- THIS HAS NO EFFECT ??
}
CoordMapType.prototype.getTile = function (coord, zoom, ownerDocument) {
var div = ownerDocument.createElement('div');
div.innerHTML = coord.toString() + '<br>zoom: ' + zoom.toString();
div.style.width = this.tileSize.width + 'px';
div.style.height = this.tileSize.height + 'px';
div.style.fontSize = '10';
div.style.borderStyle = 'solid';
div.style.borderWidth = '1px';
div.style.borderColor = '#AAAAAA';
return div;
};
var map;
var chicago = new google.maps.LatLng(41.850033, -87.6500523);
function initialize() {
var mapOptions = {
zoom: 10,
center: chicago
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
// Insert this overlay map type as the first overlay map type at
// position 0. Note that all overlay map types appear on top of
// their parent base map.
map.overlayMapTypes.insertAt( 0, new CoordMapType(new google.maps.Size(256, 256)));
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
最佳答案
在标题为“ MapType对象规范”的部分的Google地图文档中发现了此问题...
maxZoom类型:数字
显示此MapType时地图的最大缩放级别。
对于基本MapType,这是必需的;对于重叠MapType,则将其忽略。
因此,叠加层MapType不需要maxZoom属性;这与我原始代码示例中的行为相对应。