有没有办法修复此错误"谷歌未定义"



我正在使用远程矩阵API来计算地点和建议之间的距离。我在索引边栏选项卡上使用了一个脚本来提示'google is not defined'.

代码片段:

function initialize() {
var input = document.getElementById('searchloc');
var options = {
types: ['geocode'], // this should work!
componentRestrictions: {country: "ae"}
};
var autocomplete = new google.maps.places.Autocomplete(input, options);     
}
google.maps.event.addDomListener(window, 'load', initialize);

我在使用 Gmap3 时遇到了同样的错误"谷歌未定义"。问题是我在包含"google"之前包含"gmap3",所以我颠倒了顺序:

<script src="https://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script src="/assets/gmap3.js?body=1" type="text/javascript"></script>

还可以在窗口加载函数中调用您的函数,

$(function(){
$(window).load(function(){
//Here is my logic now
});
});

你应该添加这一行

<脚本 src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&libraries=places&callback=initialize">

删除此行 google.maps.event.addDomListener(window, 'load', initialize(;

你不需要谷歌API来计算距离。如果你有经纬度,你可以用数学来做——

访问:

https://www.geodatasource.com/developers/javascript

我能够通过删除以下内容来做到这一点:

  • google.maps.event.addDomListener(window, 'load', initialize(;
  • &回调=初始化">
  • 异步延迟

然后添加

  • &图书馆=地点
  • onload="initialize((">

所以整个代码看起来像这样:

<body onload="initialize()">
<input type="text" id="searchloc" />
<script>
var map;
function initialize() {
var input = document.getElementById('searchloc');
var options = {
types: ['geocode'], // this should work!
componentRestrictions: {country: "ae"}
};
var autocomplete = new google.maps.places.Autocomplete(input, options); 
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBJSAn2t5Aosg0yhwXxbf6tRvQXmS8vDKU&libraries=places"></script>
</body>

演示链接:https://jsbin.com/dutewup/edit?html,output

希望这有帮助!

最新更新