Итак, у меня есть диалоговое окно Jquery и холст Google Maps v3. Диалоговое окно открывается при нажатии на ссылку, и карта центрируется относительно маркера, связанного со ссылкой. Теперь все работает нормально с ПЕРВОГО раза. карта отображается и центрируется по положению маркера. Когда я закрываю диалог и нажимаю на другую ссылку. Карта отображается, но маркер находится за пределами области карты, в хорошо известном верхнем левом углу. Мне нужно немного перетащить карту, чтобы появился маркер. Итак, я добавил в код несколько изменений размеров и setCenter, но это все равно не работает.
Что идет не так???
Вот карта переменных кода;
$(document).ready(function() {
$("#map_container").dialog({
autoOpen : false,
resizable : false,
resizeStop : function(event, ui) {
google.maps.event.trigger(map, 'resize')
},
open : function(event, ui) {
google.maps.event.trigger(map, 'resize');
},
close : function(event, ui) {
map = null;
}
});
$(".show_on_map").click(function(e) {
alert("click");
var lat = $(this).attr('lat');
var lng = $(this).attr('lng');
var placeName = $(this).attr('placeName');
var placeAddress = $(this).attr('placeAddress');
initialize(lat, lng);
plotPoint(lat, lng, placeName, '<span class="gBubble"><b>' + placeName + '</b><br>' + placeAddress + '</span>');
$("#map_container").dialog("open");
});
function plotPoint(srcLat, srcLon, title, popUpContent, markerIcon) {
var myLatlng = new google.maps.LatLng(srcLat, srcLon);
var marker = new google.maps.Marker({
position : myLatlng,
map : map,
title : title,
icon : markerIcon
});
var infowindow = new google.maps.InfoWindow({
content : popUpContent
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
google.maps.event.trigger(map, 'resize');
map.setCenter(myLatlng);
}
function initialize(lat, lng) {
var latlng = new google.maps.LatLng(lat, lng);
var myOptions = {
zoom : 13,
center : latlng,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
google.maps.event.trigger(map, 'resize');
map.setCenter(latlng);
}
</script>
Вот ДИВ.
<div id="map_container" style="width:300px;height:300px;">
<div id="map_canvas" style="width:250px;height:250px;"></div>
</div>
Любая помощь приветствуется. Коэн