【发布时间】:2014-12-15 21:33:46
【问题描述】:
我正在尝试将 infoWindow 设置为在地图加载时自动加载,然后在从我的二级菜单中选择每个位置时自动加载。
这是我的主要 JavaScript:
// set up variables
var map;
var marker;
var infowindow;
// List out cities, coord, addy and phone
var cityList = [
['Atlanta, GA', 33.840644, -84.238972],
['Austin, TX', 30.402887, -97.721606],
['Boston, MA', 42.364247, -71.078575]
];
startCenter = new google.maps.LatLng(cityList[0][1], cityList[0][2]); // Atlanta Location
function initialize() {
map = new google.maps.Map(document.getElementById('map_canvas'), {
center: startCenter,
zoom: 18,
disableDefaultUI:true,
mapTypeId: google.maps.MapTypeId.ROADMAP,
scrollwheel: false
});
map.set('styles', [
{
stylers: [{ saturation: -100 }]
},
{
"elementType": "labels.icon",
"stylers": [
{ "visibility": "off" }
]
}
]);
addMarkers();
} // end initialize()
var boxList = [];
function addMarkers(){
var marker, i;
var infowindow = new google.maps.InfoWindow();
for (var i = 0; i < cityList.length; i++)
{
marker = new google.maps.Marker({
position: new google.maps.LatLng(cityList[i][1], cityList[i][2]),
map: map,
id: i,
animation: google.maps.Animation.DROP
});
var boxText = document.createElement("div");
boxText.id = i;
boxText.style.textAlign = 'left';
boxText.className = 'boxText';
boxText.innerHTML = '<p class="maptitle">Business Name in '+cityList[i][0]+’</span></p>'+cityList[i][0]+’<p><a href="'+cityList[i][4]+'" target="_blank">View this Campus</a></p>' ;
boxList.push(boxText);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(boxList[this.id]);
infowindow.open(map, marker);
}
})(marker, i)); //end add marker listener
google.maps.event.addDomListener(boxList[i],'click',(function(marker, i) {
})(marker, i));
} //endfor
}//end function
google.maps.event.addDomListener(window, 'load', initialize);
然后,在二级菜单上,我有以下链接来加载每个位置:
<div class="mapmenu">
<ul>
<script type="text/javascript">
for (var i = 0; i < cityList.length; i++)
{
document.write('<li><a onclick="map.setCenter(new google.maps.LatLng('+cityList[i][1]+', '+cityList[i][2]+')); return false">'+cityList[i][0]+'</a></li>');
}
</script>
</ul>
</div>
我似乎无法做的是在地图加载或点击链接时加载 infoWindow。我尝试了许多不同的答案,但感觉我只是错过了一些东西。
提前致谢。
【问题讨论】:
-
地图加载时要打开哪个标记?
标签: javascript google-maps google-maps-api-3