2017-08-10 264 views
0

好吧即时尝试做的是添加一个重置按钮到我的谷歌地图的顶部。它是如此,当你打电话的方向,并希望摆脱目前的方向,或者只是清除这里的出发点在地图和recenter是使用删除一个事件监听器

controlUI.addEventListener('click', function() { 
 
      map.setCenter(pyrmont), 
 
\t \t map.setZoom(14), 
 
\t \t directionsDisplay.setPanel(null), 
 
\t \t directionsDisplay.setMap(null); \t \t \t \t 
 
     });

和它所有的事件侦听器的IM工作正常,但按下'重置'按钮后,你不能再做任何的方向,我猜测这是因为我调用了我的两个方向var的.setPanel和.setMap,并将它们都设置为null,但它没有清除它们之后,问题是一个简单的删除事件侦听器的工作?!如果是这样,我怎么会写出来我曾尝试过几种方法,他们都没有正常工作。任何帮助或指针都会非常有帮助。

谢谢你在前进,

特拉维斯

哦,这里是我在这里呼吁

function CenterControl(controlDiv, map) { 
 

 
     // Set CSS for the control border. 
 
     var controlUI = document.createElement('div'); 
 
     controlUI.style.backgroundColor = '#fff'; 
 
     controlUI.style.border = '2px solid #fff'; 
 
     controlUI.style.borderRadius = '3px'; 
 
     controlUI.style.boxShadow = '0 2px 6px rgba(0,0,0,.3)'; 
 
     controlUI.style.cursor = 'pointer'; 
 
     controlUI.style.marginBottom = '22px'; 
 
     controlUI.style.textAlign = 'center'; 
 
     controlUI.title = 'Click to reset the map'; 
 
     controlDiv.appendChild(controlUI); 
 

 
     // Set CSS for the control interior. 
 
     var controlText = document.createElement('div'); 
 
     controlText.style.color = 'rgb(25,25,25)'; 
 
     controlText.style.fontFamily = 'Roboto,Arial,sans-serif'; 
 
     controlText.style.fontSize = '16px'; 
 
     controlText.style.lineHeight = '38px'; 
 
     controlText.style.paddingLeft = '5px'; 
 
     controlText.style.paddingRight = '5px'; 
 
     controlText.innerHTML = 'Reset Map'; 
 
     controlUI.appendChild(controlText); 
 

 
     // Setup the click event listeners: simply set the map to default. 
 
     controlUI.addEventListener('click', function() { 
 
      map.setCenter(pyrmont), 
 
\t \t map.setZoom(14), 
 
\t \t directionsDisplay.setPanel(null), 
 
\t \t directionsDisplay.setMap(null); \t \t \t \t 
 
     }); 
 
     }

回答

0

的controlUI功能是否有一个理由骂null和不只是将地图重置为您最初呈现的内容?我认为这个SO贴子会帮助你。

Google map reset to initial state

0

所以我做只是平了召回/重新复位功能本身的地方服务和方向渲染

controlUI.addEventListener('click', function() { 
 
\t \t \t map.setCenter(pyrmont), 
 
\t \t \t map.setZoom(14), 
 
\t \t \t directionsDisplay.setMap(null); 
 
\t \t \t directionsDisplay.setPanel(null); 
 
\t \t \t service = new google.maps.places.PlacesService(map); 
 
\t \t \t directionsDisplay = new google.maps.DirectionsRenderer; 
 
\t \t \t directionsDisplay.setMap(map); 
 
\t \t \t directionsDisplay.setPanel(document.getElementById('directionsPanel')); 
 
\t \t \t directionsService = new google.maps.DirectionsService; \t 
 
\t \t });

感谢您的帮助。