Проблема заключается в том, что вы пытаетесь инициализировать карту Google внутри тега DIV с помощью style.visibility = 'hidden'
, чтобы решить эту проблему, вы должны объявить div map_canvas внутри видимого DIV, например:
<div id="MapWindow">
<div id="map_canvas" style="width:390px; height:390px; border-color: black"></div>
</div>
Теперь, если вы используете jQuery, в $ (function ()) вы должны установить видимость MapWindow в скрытом (если вы хотите, чтобы GMap запускался скрытым).
<script type="text/javascript">
var map;
var marker;
$(function () {
initGoogleMap();
document.getElementById("MapWindow").style.visibility = 'hidden';
});
function initGoogleMap() {
var latlng = new google.maps.LatLng(-30, -60);
var options = { zoom: 14, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP};
map = new google.maps.Map(document.getElementById("map_canvas"), options);
marker = new google.maps.Marker({
draggable: false,
position: latlng,
map: map,
title: ''
});
}
function OpenPopupWindow()
document.getElementById("MapWindow").style.visibility = 'visible';
$('#MapWindow').data('tWindow').center().open();
}
</script>
Наконец, когда вы хотите показать de DIV (или всплывающее окно, например), прежде чем показывать его, вы должны установить видимость DIV в 'visible'
;)