我有一个带有异步加载的 google maps api 的网站。但这会引发错误:找不到谷歌。 我的代码是:
<script>
function initialize() {
var mapOptions = {
zoom: 10,
center: new google.maps.LatLng(51.817116, 4.780616),
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: false,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
overviewMapControl: false,
rotateControl: false
};
var map = new google.maps.Map(document.getElementById('maps'),
mapOptions);
};
var customMarker = new google.maps.Marker({
position: new google.maps.LatLng(51.817116, 4.780616),
map: map
});
function loadScript() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3&sensor=false&' +
'callback=initialize';
document.body.appendChild(script);
}
addLoadEvent(loadScript);
</script>
当我删除标记时,代码可以正常工作。如果我按照某些示例中指定的方式添加标记,为什么它不起作用?
addLoad 是一个加载事件。这不是问题所在...任何人都可以帮助我完成这项工作吗?
最佳答案
在加载 Google Maps Javascript API v3 之前,您无法使用它。您的标记创建在加载 API 之前正在运行。您需要将其移动到初始化函数中,该函数在 API 可用之前不会执行。
<script>
function initialize() {
var mapOptions = {
zoom: 10,
center: new google.maps.LatLng(51.817116, 4.780616),
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: false,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
overviewMapControl: false,
rotateControl: false
};
var map = new google.maps.Map(document.getElementById('maps'),
mapOptions);
var customMarker = new google.maps.Marker({
position: new google.maps.LatLng(51.817116, 4.780616),
map: map
});
}; // end of initialize
function loadScript() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3&sensor=false&' +
'callback=initialize';
document.body.appendChild(script);
}
addLoadEvent(loadScript);
</script>
关于javascript - Google Maps Api v3 标记。谷歌未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20386782/