我正试图检测我的地图中何时更改了缩放,我尝试使用这些:
Microsoft.Maps.Events.addHandler(map,"targetviewchanged",console.log('targetviewchanged')); Microsoft.Maps.Events.addHandler(map,"viewchangestart",console.log('viewchangestart'));
但只有在地图发生变化时才触发一次
如何仅检测变焦更改?
先感谢您
解决方法
请尝试以下方法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Event view change start</title> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script> <script type="text/javascript"> var map,lastZoomLevel = 0; function getMap() { map = new Microsoft.Maps.Map(document.getElementById('myMap'),{credentials: 'Your Bing Maps Key'}); lastZoomLevel = map.getZoom(); Microsoft.Maps.Events.addHandler(map,'viewchangeend',viewChanged); } function viewChanged(e) { if(lastZoomLevel != map.getZoom()){ lastZoomLevel = map.getZoom(); alert("Map Zoomed"); } } </script> </head> <body onload="getMap();"> <div id='myMap' style="; width:400px; height:400px;"></div> </body> </html>