0

我创建的地图有多个用多边形勾勒的区域。当用户将鼠标悬停在某个部分上时,会弹出一个自定义标记,并且在鼠标移出时该标记消失。我已经让一切正常,但无法弄清楚如何让标记在鼠标移出时消失。下面的代码并不是每个部分,但我希望仅仅展示一个部分的工作方式就可以提供足够的信息。我对 Maps 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");                
}
4

1 回答 1

1

保留对在 javascript 顶部声明的标记的变量引用,例如var marker;

看我的JS 小提琴:在鼠标上下显示和隐藏标记

编辑:我注意到我使用法线贴图而不是多边形演示了这一点 - 但相同的代码应该可以工作,因为多边形似乎支持相同的事件,请参见此处的列表:google maps api polygon events

好吧,这是使用多边形时的示例:JS fiddle polygon,技巧是将标记存储到实际的多边形对象中,这样很容易访问,至少我是这么认为的:) - 如果你想添加几个多边形,请尝试存储它们都在数组中,而不是一些全局多边形变量;)干杯!

于 2013-03-13T16:18:37.977 回答