On my map, I have it so that a node/circle is drawn at a certain location, and when this node is clicked, other related nodes appear nearby. However, I'd like to have them fade in after about one second instead of just appearing suddenly. I already had a look at this solution, but I couldn't really understand how it would translate over to my code. Is there an easy way to do this?
...
function initialize()
{
for(var num = 0; num < lat.length; num++)
{
nodeInfo[num] =
{
center: new google.maps.LatLng(lat[num], lon[num])
}
}
// Styles
var styles = [
{
stylers: [
{
hue: "#2222EE"
},
{
saturation: -40
}
]
},
{
featureType: "road",
elementType: "geometry",
stylers: [
{
lightness: 100
},
{
visibility: "simplified"
}
]
},
{
featureType: "road",
elementType: "labels",
stylers: [
{
visibility: "off"
}
]
},
{
featureType: "transit.station.bus",
elementType: "labels.icon",
stylers: [
{
visibility: "off"
}
]
}
];
var styledMap = new google.maps.StyledMapType(styles,
{name: "Styled Map"});
// Options for map
var mapOptions =
{
center: new google.maps.LatLng(42.35791, -71.063157),
zoom: 17,
mapTypeControlOptions:
{
mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style']
}
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
map.mapTypes.set('map_style', styledMap);
map.setMapTypeId('map_style');
nodeDisplay();
}
function nodeDisplay()
{
var drawNode;
for(var i in nodeInfo)
{
if(i >= 1)
{
if(nodeSelect == true)
{
drawNode = {
strokeColor: '#0000FF',
fillColor: '#0000FF',
strokeWeight: 2,
fillOpacity: 1,
map: map,
center: nodeInfo[i].center,
radius: 4,
visible: true
};
}
else
{
drawNode = {
strokeColor: '#0000FF',
fillColor: '#0000FF',
strokeWeight: 2,
fillOpacity: 1,
map: map,
center: nodeInfo[i].center,
radius: 4,
visible: false
};
}
}
else
{
drawNode = {
strokeColor: '#FF0000',
fillColor: '#FF0000',
strokeWeight: 2,
fillOpacity: 1,
map: map,
center: nodeInfo[i].center,
radius: 6
};
}
node[i] = new google.maps.Circle(drawNode);
attachMessage(i);
}
}
function clearOverlays()
{
for(var i in nodeInfo)
{
if(i > 0)
{
node[i].setMap(null);
}
}
}
function attachMessage(number)
{
var message = "Hello. This is node number " + number + ".";
var infowindow = new google.maps.InfoWindow({
size: new google.maps.Size(50, 50)
});
infowindow.content = message;
google.maps.event.addListener(node[number], 'click', function()
{
//infowindow.open(map, node[number]);
clearOverlays();
nodeSelect = !nodeSelect;
nodeDisplay();
});
}
google.maps.event.addDomListener(window, 'load', initialize);