使用API V3的主要Google Maps故障
编辑:现在已经解决了,请参阅下面的答案
情况:
- 用户点击地图图片
- 谷歌地图API V3通过ajax加载
- 地图显示在对话框窗口/灯箱中
怎么了:
地图显示并且所有function都有效,但是地图的左上角“正方形”会出现故障。
我被卡住了!
编辑:现在使用代码:
$(function() { var latlng = new google.maps.LatLng(51.448359,-2.590559); var options = { zoom: 13, center: latlng, mapTypeControl: false, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById('map_canvas'), options); var marker = new google.maps.Marker({ position: new google.maps.LatLng(51.448359,-2.590559), map: map }); })
感谢Alphonso指出我正确的方向。
问题出在map div的维度上,即使#map_canvas
的高度和宽度通过文档顶部的css应用,看起来google maps API在应用样式之前初始化(这个理论可以测试与dynatrace)。
*简易解决方案:
1)宽度和高度的内联样式*
2)使用setTimeout()
延迟加载地图
我认为问题是地图在resize动画完成之前初始化,所以它认为它更小。
在加载效果完成后尝试调整其大小:
google.maps.event.trigger(map, 'resize');
(你必须保持对“地图”对象的引用