Google Map API 3 - 地图未显示完整/调整大小

时间:2013-08-21 14:16:40

标签: google-maps google-maps-api-3

我正在尝试在网站上获取自定义谷歌地图API,问题是地图未显示完整,只显示地图的一部分。 enter image description here

下面是代码:

js代码:

$(document).ready(function(){

var map=null; 
    function initialize() {
        var mapOptions = {
            center: new google.maps.LatLng(24.3573, 54.4636),
            zoom: 14,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

        var currCenter = map.getCenter();
        google.maps.event.trigger(map, 'resize');
        map.setCenter(currCenter);
        map.setZoom(14);

        var markerOptions = {
            position: new google.maps.LatLng(24.3573, 54.4636),
            map: map
        };
        var marker = new google.maps.Marker(markerOptions);
        marker.setMap(map);

        var infoWindowOptions = {
            content: '<b>Compnay Name</b><br> Is Here!'
        };
        var infoWindow = new google.maps.InfoWindow(infoWindowOptions);
        infoWindow.open(map, marker);

    };
    google.maps.event.addDomListener(window, 'load', initialize);
});

HTML代码:

<div class="container">
<h1>Location Map</h1>
<p></p>
 <div id="map-canvas"></div>
</div>

css代码:

.container {width: 100%; height: 100%;}
.container #map-canvas {
width: 500px;
height: 250px;
margin: 0;
border: 1px solid rgb(225, 225, 225);}
.map h2{
font-size: 16px;
font-weight: bold;
padding: 20px 0 6px 0;}

请告诉我我做错了什么?

我听说'google.maps.event.trigger(map,'resize');'通常做的伎俩,但在我的代码中它似乎不起作用,也许我不是在正确的地方..请帮助。

谢谢。

3 个答案:

答案 0 :(得分:2)

使用tab jQuery插件时遇到了同样的问题。我在文档就绪时调用initialize()函数($(document).ready(function(){initialize();}))。 当map标签处于活动状态并且问题消失时,我尝试调用initialize()函数。这只是我的经验。 祝你好运!

约翰尼

答案 1 :(得分:1)

@Bipin:我有解决方案来解决这个错误

在Js代码中添加以下功能

 function resizeMap(m) {
        x = m.getZoom();
        c = m.getCenter();
        google.maps.event.trigger(m, 'resize');
        m.setZoom(x);
        m.setCenter(c);
    };

//使用m是&#34; map&#34;

然后在

之后按下该功能
google.maps.event.addDomListener(window, 'load', initialize);
resizeMap(map);

希望解决方案可以提供帮助。

答案 2 :(得分:0)

我有同样的问题,但在我的情况下,地图应该弹出。 我通过使用setTimeout javascript函数来等待弹出动画完成,然后我调用了地图初始化函数来克服它。我希望这会有所帮助。

此外,您的地图看起来扭曲了。检查此问题的解决方案: Google Maps api v3 tools: visual distortions?