此页面显示了将侧边栏链接连接到标记的一种方法
http://www.wolfpil.de/v3/toggle-cats.html
将此页面的模式复制到您的案例中,您需要一个gmarkers 全局变量
//<![CDATA[
var map = null;
var gmarkers = [];
function initialize() {
添加标记的顺序很重要,它们应该与侧边栏中的业务顺序相匹配。 gmarkers 将在createMarker 中更新。
var point = new google.maps.LatLng(37.984798,-121.312094);
var marker = createMarker(point,'<div style="width:205px"><center><img src="images/sampleuopsign.jpg" /></center><h2>University of the Pacific</h2>3601 Pacific Avenue<br>Stockton, California 95211<br>209.946.2011<br><small>On the web visit: <a href="http://www.pacific.edu">www.Pacific.edu<\/a></small><\/div>')
...
function createMarker(latlng, html) {
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
zIndex: Math.round(latlng.lat()*-100000)<<5
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map,marker);
});
gmarkers.push(marker);
}
有了数组,我们可以通过索引来寻址它们。 Wolfpil 只是在单击侧边栏条目(链接)时触发单击事件:
function triggerClick(i) {
google.maps.event.trigger(gmarkers[i],"click");
}
每个链接都可以这样写,将 0 和 1 替换为每个标记的添加顺序:
<a href="javascript:triggerClick(0)">Bank of America</a>
<a href="javascript:triggerClick(1)">Bank of Stockton</a>
关于显示标题的标记悬停,最简单的方法是在创建标记时添加title 选项,但这意味着向 createMarkers 函数添加一个新参数:
function createMarker(latlng, storeName, html) {
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: storeName,
zIndex: Math.round(latlng.lat()*-100000)<<5
});
从长远来看,更好的选择是使用gmarkers 的对象而不是数组,因为在列表中间添加一个项目会打乱 HTML 中的现有项目。
然后,可以通过字符串 ID 调用地点,例如 gmarkers['safeway']。我们没有将标记推送到 createMarker 中的数组,而是将 id 分配给标记:
gmarkers[id] = marker;
如果您遇到麻烦,请在下面写 cmets!上面的代码我没有测试。