当前位置:  开发笔记 > 编程语言 > 正文

GoogleMaps不会在页面加载时加载

如何解决《GoogleMaps不会在页面加载时加载》经验,为你挑选了2个好方法。

我无法使用GoogleMaps API V3运行我的地图.地图无法加载.我希望地图显示在带有ID的div中,gisMap但在Chrome调试器中,我收到消息:

Uncaught InvalidValueError: initMap is not a function

使用Javascript

var map;

function initMap() {
    // Enabling new cartography and themes
    google.maps.visualRefresh = true;

    // Setting starting options
    var mapOptions = {
        center: new google.maps.LatLng(39.9078, 32.8252),
        zoom: 10,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    // Getting Map DOM Element
    var mapElement = document.getElementById('gisMap');

    // Creating a map with DOM element
    map = new google.maps.Map(mapElement, mapOptions);
}

Bundle.js(摘录)

(...)
module.exports = Vue;
}).call(this,require('_process'))
},{"_process":1}],3:[function(require,module,exports){
'use strict';

var map;

function initMap() {
    // Enabling new cartography and themes
    google.maps.visualRefresh = true;

    // Setting starting options
    var mapOptions = {
        center: new google.maps.LatLng(39.9078, 32.8252),
        zoom: 10,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    // Getting Map DOM Element
    var mapElement = document.getElementById('gisMap');

    // Creating a map with DOM element
    map = new google.maps.Map(mapElement, mapOptions);
}

},{}],4:[function(require,module,exports){
'use strict';

var Vue = require('vue');

new Vue({});
(...)

HTML




    
    
    MFServer Test

    

    

    
        

SCSS

@import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
@import "partials/forms";

html, body {
  height: 100%;
  padding-top: 25px;
}

.pageWrapper {
  background-color: red;
  height:100%;
  width: 100%;
}

#gisMap {
  height: 100%;
  width: 50%;
  background-color: green;
}

Marcin Zablo.. 33

确保initMap函数在全局范围内可见,或者作为回调传递给google maps.js的参数是正确命名空间的.在您的情况下,最快的解决方案将取代:

function initMap(){
//..
}

至:

window.initMap = function(){
//...
}

或命名空间版本:


//编辑:

我在你的代码片段中看到你使用了一些异步模块加载(require.js?),并且除非你调用包含这个声明的模块,否则你创建window.initMap函数的代码不会被执行.所以你还没有完成我提到的第一个条件 - 在调用google maps.js之前,initMap必须在全局范围内可见.



1> Marcin Zablo..:

确保initMap函数在全局范围内可见,或者作为回调传递给google maps.js的参数是正确命名空间的.在您的情况下,最快的解决方案将取代:

function initMap(){
//..
}

至:

window.initMap = function(){
//...
}

或命名空间版本:


//编辑:

我在你的代码片段中看到你使用了一些异步模块加载(require.js?),并且除非你调用包含这个声明的模块,否则你创建window.initMap函数的代码不会被执行.所以你还没有完成我提到的第一个条件 - 在调用google maps.js之前,initMap必须在全局范围内可见.



2> Ron Royston..:

只需确保其中包含initMap函数的script元素位于HTML中的google maps api脚本元素之前.此外,Google示例中包含的异步延迟属性可能会导致问题.只需删除这些属性.



推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有