Я пытаюсь настроить infoWindow для автоматической загрузки при загрузке карты, а затем, когда каждое местоположение выбрано из моего дополнительного меню.Open infoWindow on load API Google Maps v3
Вот мой главный 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>
То, что я не могу сделать загрузите информационное окно при загрузке карты или при нажатии ссылок. Я попытался выполнить несколько разных ответов, но чувствую, что я просто что-то упустил.
Заранее спасибо.
Какой маркер вы хотите открыть, когда карта нагрузок – geocodezip