更新谷歌地图的缩放矩形
Update google maps rectangles on zoom
我试图使这个脚本中的矩形http://jsfiddle.net/uLd7H/更新每个缩放级别。
我试图让每个矩形只出现在选定的缩放级别上,并在级别改变时消失。
由于某种原因,它一直在画它们。
function initialize() {
var myLatLng = new google.maps.LatLng(30, 30);
var mapOptions = {
zoom: 4,
center: myLatLng
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
google.maps.event.addListener(map, 'zoom_changed', function() {
var zoomLevel = map.getZoom();
map.setCenter(myLatLng);
if (zoomLevel>=1 && zoomLevel<=5) {
var r1 = new google.maps.Rectangle({
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35,
map: map,
bounds: new google.maps.LatLngBounds(
new google.maps.LatLng(30, 29),
new google.maps.LatLng(29, 30))
});
} else if (zoomLevel>5 && zoomLevel<=10) {
var r2 = new google.maps.Rectangle({
strokeColor: '#FFF000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FFF000',
fillOpacity: 0.35,
map: map,
bounds: new google.maps.LatLngBounds(
new google.maps.LatLng(29, 28),
new google.maps.LatLng(28, 29))
});
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
您可以在事件侦听器之外创建没有映射集的矩形,因此它们不可见。在缩放改变设置地图属性:
google.maps.event.addListener(map, 'zoom_changed', function() {
var zoomLevel = map.getZoom();
console.log(zoomLevel);
map.setCenter(myLatLng);
if (zoomLevel>=1 && zoomLevel<=5) {
r1.setMap(map);
r2.setMap(null);
} else if (zoomLevel>5 && zoomLevel<=10) {
r1.setMap(null);
r2.setMap(map);
} else {
r1.setMap(null);
r2.setMap(null);
}
});
参见jsbin;
相关文章:
- 动态设置谷歌地图缩放
- 从结果集中自动设置谷歌地图缩放
- 谷歌地图 v3 缩放特定位置
- 使用缩放javascript触发谷歌地图点击事件
- 如何重新启用禁用的谷歌地图v3拖放、缩放等
- 谷歌地图漏洞?显示的标记会根据缩放级别而更改
- 谷歌地图API:当信息窗口关闭时,地图缩放回中心
- 谷歌地图Api v3,使用地方库时的动态缩放级别
- 如何在谷歌地图V3上居中和缩放多个标记
- 如何在谷歌地图v3中创建在所有缩放级别具有相同半径的圆
- 拖放谷歌地图标记
- 甚至放大&奇怪的缩放谷歌地图
- 设置缩放谷歌地图v3不工作的文件准备
- 限制缩放谷歌地图
- 平移/缩放谷歌地图搜索
- 如何保存"缩放&;谷歌街景图片
- 调整大小自定义图像标记与缩放-谷歌地图API v3
- 如何计算圆半径取决于缩放谷歌地图api
- JS库,用于图像拖动、滚动和缩放+谷歌地图等图片上的标记
- 允许用手指缩放谷歌地图- Android版PhoneGap