Javascript Google 地图 - 未捕获的 InvalidValueError:初始化不是函数

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/38369151/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 21:23:16  来源:igfitidea点击:

Google Maps - Uncaught InvalidValueError: initialise is not a function

javascriptjquerygoogle-mapsgoogle-maps-api-3

提问by Lee

When I load the page that my Google Maps is displayed, I always see the following error in the console:

当我加载显示我的 Google 地图的页面时,我总是在控制台中看到以下错误:

Uncaught InvalidValueError: initialise is not a function js?sensor=false&callback=initialise:94

未捕获的 InvalidValueError:初始化不是函数js?sensor=false&callback=initialise:94

When hovering over the filename, this is showing as originating from https://maps.googleapis.com/maps/api/js?sensor=false&callback=initialise

将鼠标悬停在文件名上时,显示为源自https://maps.googleapis.com/maps/api/js?sensor=false&callback=initialise

The Google Maps window and map displays absolutely fine though and has full functionality. Strangely, I couldn't find any hits on Google regarding this, they all seem to be about setLong and setLat.

谷歌地图窗口和地图显示非常好,并且具有完整的功能。奇怪的是,我在谷歌上找不到任何关于此的点击,它们似乎都是关于 setLong 和 setLat。

If I change the order of loading between the API call, and the JS file, the error message changes between initialiseand google. But in both cases, the map still continues to load fine.

如果我更改 API 调用和 JS 文件之间的加载顺序,错误消息会在initialise和之间更改google。但是在这两种情况下,地图仍然可以正常加载。

Why is the error occuring, and how do I resolve it properly? Here's my google-map.js file:

为什么会发生错误,我该如何正确解决?这是我的 google-map.js 文件:

function initialise() {
    var myLatlng = new google.maps.LatLng(51.126500, 0.257595); // Add the coordinates
    var mapOptions = {
        zoom: 15, // The initial zoom level when your map loads (0-20)
        disableDefaultUI: true, // Disable the map UI
        center: myLatlng, // Centre the Map to our coordinates variable
        mapTypeId: google.maps.MapTypeId.ROADMAP, // Set the type of Map
        scrollwheel: false, // Disable Mouse Scroll zooming (Essential for responsive sites!)
    // All of the below are set to true by default, so simply remove if set to true:
    panControl:false, // Set to false to disable
    mapTypeControl:false, // Disable Map/Satellite switch
    scaleControl:false, // Set to false to hide scale
    streetViewControl:false, // Set to disable to hide street view
    overviewMapControl:false, // Set to false to remove overview control
    rotateControl:false // Set to false to disable rotate control
    }
    var map = new google.maps.Map(document.getElementById('map'), mapOptions); // Render our map within the empty div
    var image = new google.maps.MarkerImage('/wp-content/themes/bellavou/img/marker2.png', null, null, null, new google.maps.Size(70,70)); // Create a variable for our marker image.             
    var marker = new google.maps.Marker({ // Set the marker
        position: new google.maps.LatLng(51.125887, 0.258075), // Position marker to coordinates
        icon:image, //use our image as the marker
        map: map, // assign the market to our map variable
        title: 'Bella Vou at The Pantiles' // Marker ALT Text
    });
}
google.maps.event.addDomListener(window, 'load', initialise); // Execute our 'initialise' function once the page has loaded.

回答by MrUpsidown

First, you define a callback on the API call:

首先,您在 API 调用上定义回调:

https://maps.googleapis.com/maps/api/js?sensor=false&callback=initialise

https://maps.googleapis.com/maps/api/js?sensor=false&callback=initialise

then you add a listener

然后你添加一个监听器

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

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

that basically does the same.

这基本上是一样的。



You should removethe callback=initialisefrom the API call orthe above mentioned addDomListenerline from your JS file and it should work.

您应该删除callback=initialise由API上述addDomListener从您的JS文件行,它应该工作。