2013-03-13 70 views
0

我创建的地图具有多边形轮廓的多个区域。当用户将鼠标悬停在某个部分上时,会弹出一个自定义标记,并在鼠标悬停时标记消失。我有一切工作,但无法弄清楚如何让标记消失在鼠标移出。下面的代码不是每个部分,但我希望只显示一个部分如何工作将提供足够的信息。我对地图API和JavaScript有点新鲜,所以我希望我将第一部分设置正确,但我很乐意提供任何建议。我想我需要以某种方式访问​​在noMarker功能标记...在鼠标移除时删除谷歌地图自定义标记

//Sets up the polygon  
    var mapWC = new google.maps.Polygon({ 
     paths: coordsWC, 
     strokeColor: "#14b400", 
     strokeOpacity: 0.5, 
     strokeWeight: 3, 
     fillColor: "#14b400", 
     sectionName: "West Cambridge", 
     markerImage: 'images/hood-marker.png', 
     markerLL: new google.maps.LatLng(42.3751819960975,-71.15445431301595), 
     fillOpacity: 0.33 
     }); 

    mapWC.setMap(map); 

//Mouse in and out 
    google.maps.event.addListener(mapWC, 'mouseover', showMarker); 
    google.maps.event.addListener(mapWC, 'mouseout', noMarker); 

//functions 
function showMarker(){ 
//var secName = this.sectionName; 
//console.log(secName); 
var image = this.markerImage; 
var myLatLng = this.markerLL; 
var themarker = new google.maps.Marker({ 
position: myLatLng, 
map: map, 
icon: image 
}); 
} // End showMarker 

function noMarker(){ 
//console.log("Moused Out");     
} 

回答

1

保持变量引用它们在JavaScript代码顶部声明标记,如var marker;

见我JS fiddle: Showing and hiding marker on mouse over and out

编辑:我注意到,我证明了这一点使用法线贴图,而不是多边形 - 但同样的代码,因为多边形应该工作,似乎在这里支持相同的事件,请参阅清单:google maps api polygon events

那么,这里是使用多边形的例子:JS fiddle polygon,诀窍是将标记存储到实际的多边形对象,因此它很容易访问,至少这是我认为:) - 也如果你想添加几个多边形尝试将它们全部存储在数组内,而不是一些全局多边形变量;)干杯!

+0

谢谢。这将有很大帮助。现在我只需要让所有部分工作。 – mToce 2013-03-13 16:42:29

+0

我会在一秒内更新我的答案,我也会提供这个多边形版本,但thnx到目前为止! :) – 2013-03-13 16:47:14

+0

是的,很高兴看到它在多边形中工作。 – mToce 2013-03-13 16:59:53