谷歌地图地图类型界面中maxZoom属性的用途
Purpose of maxZoom property in Google Maps MapType interface?
Google maps API Guide 详细介绍了 MapTypes 接口,对"必需"属性进行了以下说明:
maxZoom(必需)指定最大缩放级别 显示此地图类型的磁贴。
但是,在谷歌给出的例子中:
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>
发现这隐藏在 Google 地图文档中标题为"MapType 对象规范"的部分中......
最大变焦类型:数字
显示此地图类型时地图的最大缩放级别。 对于基本映射类型是必需的,对于覆盖映射类型忽略。
因此,覆盖 MapType 不需要 maxZoom 属性;这与我的原始代码示例中的行为相对应。
如果您更改了mapType
对象的属性(maxZoom
,minZoom
等...),则只有在地图类型更改为该mapType
之后,更改的效果才会出现。
例如,如果当前mapType
是TERRAIN
,并且您更改了TERRAIN's
maxZoom, maxZoom
只有在将mapType
更改为另一种类型(例如 ROADMAP,HYBRID,etc..)
,回到TERRAIN
。
不要设置mapType的maxZoom选项,而是使用核心map的maxZoom选项。为"maptypeid_changed"
事件添加监听器,当事件发生时,更改map maxZoom
选项:
google.maps.event.addListener(map, 'maptypeid_changed', function(event){
if( map.getMapTypeId() === google.maps.MapTypeId.TERRAIN ){
map.setOptions({maxZoom:/*For example*/5});
}else
if( map.getMapTypeId() === google.maps.MapTypeId.ROADMAP ){
map.setOptions({maxZoom:/*For example*/8});
}//Etc...
else{
map.setOptions({maxZoom:/*For example*/21});
}
});
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- jQuery最近父级的数据属性选择器
- 谷歌地图地图类型界面中maxZoom属性的用途