【发布时间】:2011-10-11 06:51:13
【问题描述】:
我设置了一个谷歌地图来查找用户的当前位置,并将地图的中心放在离他们位置最近的标记处。单击标记时,会打开一个信息框(注意这与信息窗口有点不同 - http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/examples.html)。但是,我想要做的是自动打开最近的标记,而无需用户实际点击。这是触发标记打开的代码:
//loop through all locations to add a marker:
addMarker = function(loc) {
var markerLoc = new google.maps.LatLng(loc.Lat, loc.Long);
var marker = new google.maps.Marker({
map: map,
position: markerLoc
});
google.maps.event.addListener(marker, "mousedown", function() {
var infoOpts = {
content: loc.markerText,
boxStyle: { background: "none transparent", width: "180px"},
pixelOffset: new google.maps.Size(-90, 0),
closeBoxMargin: "5px"
};
var ib = new InfoBox(infoOpts);
ib.open(map, marker);
});
markers.push(marker);
};
所以我必须以某种方式触发相应标记的 mouseDown 函数,但必须在此函数之外的函数中完成。我将引用数组中的相应标记(markers[closestmarker])。
【问题讨论】: