【发布时间】:2016-04-20 09:48:49
【问题描述】:
我研究了 Google 的地图类,并指出我可以在我想要的位置上设置标记。我想让图标在“鼠标事件”上动态更新
var neighborhoods = [
[54.50266744485844, 18.540940856933616],
[54.49848076437959, 18.540254211425804],
[54.49190082846816, 18.518968200683616],
[54.4040671009359, 18.608918762207054],
];
var markers = [];
var map;
为了放置标记,我使用如下功能。
function setMarkers(map) {
var image = {
url: '/images/icon1.png',
anchor: new google.maps.Point(0, 32)
};
var shape = {
coords: [1, 1, 1, 20, 18, 20, 18, 1],
type: 'poly'
};
for (var i = 0; i < neighborhoods.length; i++)
{
var neighborhood = neighborhoods[i];
var marker_temp = new google.maps.Marker
({
position: {lat: neighborhood[0], lng: neighborhood[1]},
map: map,
icon: image,
shape: shape,
title: "",
visible:true,
zIndex: 3
});
marker_temp.addListener('mouseover', function()
{
marker_temp.setOptions({icon: "/images/icon1.png"});
});
marker_temp.addListener('mouseout', function()
{
marker_temp.setOptions({icon: "/images/icon2.png"});
});
marker_temp.addListener('click', function()
{
marker_temp.setOptions({icon: "/images/icon1.png"});
});
markers.push(marker_temp);
}// end of for loop ----------------------------------------------------
}// --- end of set markers function --------------------------------
放置标记可以正常工作,并且所有标记上的事件都会按预期触发,但只有将图标从 icon1.png 更改为 icon2.png 才能在最后一个标记上使用与所有标记相关的事件。谁能告诉我我的想法哪里出错了?
【问题讨论】:
-
addListener 必须设置为映射而不是标记