Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google API V3:如果还定义了groundOverlay,则多边形鼠标悬停事件存在问题_Javascript_Google Maps_Google Maps Api 3_Google Api - Fatal编程技术网

Javascript Google API V3:如果还定义了groundOverlay,则多边形鼠标悬停事件存在问题

Javascript Google API V3:如果还定义了groundOverlay,则多边形鼠标悬停事件存在问题,javascript,google-maps,google-maps-api-3,google-api,Javascript,Google Maps,Google Maps Api 3,Google Api,我正在使用谷歌API V3,我想有一个地面覆盖,在这个覆盖上的多边形改变鼠标上方的颜色。只要未定义地面覆盖,鼠标悬停事件就可以正常工作。但是,如果地面覆盖层存在,鼠标悬停时颜色不会改变 有什么建议吗 以下是一个例子: var newark = new google.maps.LatLng(40.740, -74.18); var imageBounds = new google.maps.LatLngBounds( new google.maps.LatLng(40.716216,-74.213

我正在使用谷歌API V3,我想有一个地面覆盖,在这个覆盖上的多边形改变鼠标上方的颜色。只要未定义地面覆盖,鼠标悬停事件就可以正常工作。但是,如果地面覆盖层存在,鼠标悬停时颜色不会改变

有什么建议吗

以下是一个例子:

var newark = new google.maps.LatLng(40.740, -74.18);
var imageBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(40.716216,-74.213393),
new google.maps.LatLng(40.765641,-74.139235));

var myOptions = {
zoom: 13,
center: newark,
mapTypeId: google.maps.MapTypeId.ROADMAP
}

var map = new google.maps.Map(document.getElementById("map"), myOptions);

var oldmap = new google.maps.GroundOverlay(
"http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg",
imageBounds);
oldmap.setMap(map);

//Points to create polygon
var points = [
new google.maps.LatLng(40.735657,-74.172367),
new google.maps.LatLng(40.743588,-74.179498),
new google.maps.LatLng(40.732878,-74.182777)
]
//Create Polygon
var poly = new google.maps.Polygon({
    path: points,
    map: map,
    strokeColor: '#ff0000',
    strokeOpacity: 1,
    strokeWeight: 1,
    fillColor: '#ff0000',
    fillOpacity: 1
});

//poly changes color on mouseover
google.maps.event.addListener(poly, 'mouseover', function() {
    poly.setOptions({
        strokeColor: '#0000ff',
        fillColor: '#0000ff'
    });
});

//poly changes color back on mouseout
google.maps.event.addListener(poly, 'mouseout', function() {
    poly.setOptions({
        strokeColor: '#ff0000',
        fillColor: '#ff0000'
    });
});

可能您必须为背景创建自定义覆盖,因为您可以更好地控制地面覆盖所在的地图层

这不一定是问题所在,因为我还没有尝试过您的代码,但一个好的策略是使用Firebug的html检查器查看形状是如何标记的,以查看您是否可以使用css/javascript更改它们的优先级