【问题标题】:Google maps api v3 map not displaying completlyGoogle maps api v3 地图未完全显示
【发布时间】:2014-07-03 11:36:45
【问题描述】:

我正在使用jquery-ui-map 插件向我的应用程序添加地图。

问题是当我加载地图时它只加载了一半(见下面的 PS)。

(我发现如果我打开 Chrome 开发工具,它会完全加载地图)。

这就是我创建地图的方式:

HTML:
<div>
    <div id="map_canvas"></div>
</div>

JavaScript:
$(window).load(function() {
    var mainNode = document.getElementById("map_canvas");
    var height = $(window).height() - $("#headerDiv").height() - $("#footerDiv").height();
    var width = window.screen.width;
    mainNode.style.height = height + "px";
    mainNode.style.width = width + "px";
});

$(function() {   
    //Create map and zoom to corrent position
    $('#map_canvas').gmap().bind('init', function(event, map) {
        zoomToCurrentPosition();                                                                                                                                                                                   
    });
});

function zoomToCurrentPosition() {
    $('#map_canvas').gmap('getCurrentPosition', function(position, status) {
        if (status === 'OK') {
            var clientPosition = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            if (currentPositionMarker !== undefined) {
                currentPositionMarker.setMap(null);
            }

            currentPositionMarker = new google.maps.Marker({
                'position': clientPosition,
                'bounds': true
            });

            $('#map_canvas').gmap('addMarker', currentPositionMarker);

            $('#map_canvas').gmap({
                'center': clientPosition,
                'zoom': 7
            });

            $('#map_canvas').gmap('get', 'map').panTo(clientPosition);
        }
    });
}

【问题讨论】:

  • 您的“map_canvas_2” div 没有高度。
  • 对不起,我有这个函数会根据屏幕高度添加高度: $(window).load(function() { var mainNode = document.getElementById("map_canvas_2"); var height = $(window).height() - $("#headerDiv").height() - $("#footerDiv").height(); var width = window.screen.width; mainNode.style.height = height + "px"; mainNode.style.width = width + "px"; });
  • 我更新了问题并添加了我使用的 HTML 代码

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


【解决方案1】:

初始化地图的函数将在DOMReady上执行,但设置高度的函数将在onload上执行( DOMReady之后会发生什么)。

在您初始化地图的那一刻,#map_canvas 的大小尚未设置。

设置高度后执行初始化地图的函数。

【讨论】:

  • 太好了,成功了,我开玩笑的把 $(window).load(function()) 改成了 $(function())
猜你喜欢
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
相关资源
最近更新 更多