在使用google map api時使用標記並且搭配滑鼠的觸發事件,在製作單一標記與觸發事件時皆無問題,但用一樣的方法套用在多標記當中,標記的傾聽器都沒有被觸發到,請問我是不是哪邊寫錯需要更正的,請高手指點。
單一標記
function initMap() {
//初始map
map = new google.maps.Map(document.getElementById('map'), {
center: myLatLng,
zoom: 7
});
//單一點marker
var marker = new google.maps.Marker({
position:locat,
map:map,
title:'Test'
});
//單一marker滑鼠點擊出現彈跳視窗
var infowindow = new google.maps.InfoWindow({
content:st
});
marker.addListener('click',function () {
a = a*-1;
if(a>0){
infowindow.open(map,marker);
}else{
infowindow.close();
}
});
}
多標記,標記是有出現但傾聽器無反應。
<script>
var map;
var mysite = {lat:24.046027, lng:120.687038};
//控制標記文字出現隱藏
var a = -1;
//多標記經緯度
var markers = new Array();
var loct = [
{lat:24.045513,lng:120.685724,label:'資訊工程大樓'},
{lat:24.046209,lng:120.685504,label:'健康大樓'},
{lat:24.047110,lng:120.686700,label:'管理學院大樓'},
{lat:24.045484,lng:120.687269,label:'創設學院大樓'}
];
function initMap() {
//初始map
map = new google.maps.Map(document.getElementById('map'), {
center: mysite,
zoom: 17
});
//多點標記
for(var i = 0;i<loct.length;i++){
markers[i] = new google.maps.Marker({
position:{
lat:loct[i].lat,
lng:loct[i].lng
},
map:map,
});
var infowin = new google.maps.InfoWindow({
content:loct[i].label
});
markers[i].addListener('click',function () {
a = a*-1;
if(a>0){
infowin.open(map,markers[i]);
}else{
infowin.close();
}
});
}
}
</script>