Открыть хинт нажатием по ссылке вне карты:
Полный рабочий пример:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var markers=[];
function initialize(){
var hLatlng=new google.maps.LatLng(59.939095,30.315868);
var hOptions={
zoom:10,
center:hLatlng,
panControl:false,
zoomControl:true,
scalecontrol:true,
scrollwheel:false,
mapTypeId:google.maps.MapTypeId.ROADMAP
}
var map=new google.maps.Map(document.getElementById("map_canvas"),hOptions);
var contentString='<div class="info_content" id="info_content_1"><p>Адрес 1</p></div>';
var iLatlng=new google.maps.LatLng(59.939095,30.315868);
var infowindow_1=new google.maps.InfoWindow({
content:contentString
});
var marker_1=new google.maps.Marker({
position:iLatlng,
map:map,
title:'Адрес 1'
});
markers.push(marker_1);
google.maps.event.addListener(marker_1,'click',function(){
infowindow_2.close();
infowindow_1.open(map,marker_1);
});
var contentString='<div class="info_content" id="info_content_2"><p>Адрес 2</p></div>';
var iLatlng=new google.maps.LatLng(59.90825,30.362823);
var infowindow_2=new google.maps.InfoWindow({
content:contentString
});
var marker_2=new google.maps.Marker({
position:iLatlng,
map:map,
title:'Адрес 2'
});
markers.push(marker_2);
google.maps.event.addListener(marker_2,'click',function(){
infowindow_1.close();
infowindow_2.open(map,marker_2);
});
}
$(window).load(function(){
initialize();
})
</script>
<div class="addr_item">
<p>Адрес 1 <a href="javascript:google.maps.event.trigger(markers[0],'click');">Показать на карте</a></p>
</div>
<div class="addr_item">
<p>Адрес 2 <a href="javascript:google.maps.event.trigger(markers[1],'click');">Показать на карте</a></p>
</div>
<div id="map_canvas" style="width:640px;height:480px;"></div>
Для дополнительного функционала добавлено:
var markers=[];
markers.push(marker_1);
javascript:google.maps.event.trigger(markers[0],'click');
Предполагается, что адреса внутри foreach и порядок их инициализации на карте, и порядок ссылок совпадает.
infowindow_1.close(); — здесь нужно закрыть все остальные infowindow — также foreach тот же массив