我正在构建一个应用程序,其中包含显示附近餐馆的地图。
地图显示,但需要很长时间才能加载,而且实际上从未完全加载。
我正处于截止日期,我已经尝试了各种解决方案而没有运气。
有人请帮忙!
见下面的代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Food & Drink</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"
type="text/javascript"></script>
<body>
<div id="map" style="width: 360px; height: 300px;"></div>
<script type="text/javascript">
var locations = [
['Little Shebas', 39.833691, -84.892375, 1],
['Roscoes Coffee Bar & Tap Room', 39.833891, -84.892130, 2],
['Ullerys Homemade Icecream', 39.834401, -84.889190, 3],
['Firehouse BBQ and Blues', 39.833630, -84.891887, 4],
['Tin Lizzie Cafe', 39.829140, -84.890857, 6]
['Joes Pizza', 39.834409, -84.889822, 5],
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 25,
center: new google.maps.LatLng(39.830184, -84.893401),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
</script>
</body>
</html>
答案 0 :(得分:1)
我无法确认您描述的行为。一切似乎都运行良好,你的代码看起来应该可以工作。
查看代码的working example。我玩了初始缩放级别并调整了中心。您指定的中心并非真正靠近标记,并且缩放级别起初非常高,我认为地图没有加载。
var center = new google.maps.LatLng(39.833691, -84.892375);
google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
答案 1 :(得分:1)
我相信你阵中的问题。查看chrome dev工具中的代码,它显示的locations数组包含5个元素(不是6个),其中第五个元素是undefined
。您在第5个元素后缺少逗号,并在最后一个元素后面有一个尾随逗号。试图访问该未定义元素的属性是抛出在页面上停止执行的javascript异常。此外,在初始缩放时,您设置的任何内容都不可见。缩小显示带有标记的地图。将地图选项中的初始缩放设置为14。