我正在使用远程矩阵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
希望这有帮助!