我试图让它运行这个jquery函数,但没有任何结果。就这个。它从setmap(servlet)接收一个以json格式化的列表。我完全相信我会得到这份清单,但不幸的是我没有看到地图出现在屏幕上。
$(document).ready(function(){
$("#airports").click(function(){
$.getJSON('setmap', function(list) {
var mapOptions = {
zoom: 2,
mapTypeId: new google.maps.MapTypeId.TERRAIN
};
$('.grid_12').append($("<div id='mapCanvas'></div>"));
var map = new google.maps.Map(mapCanvas, mapOptions);
if(list.length > 0)
{
for (var i = 0; i < list.length; i++)
{
var latLng = new google.maps.LatLng(list[i].latitude,list[i].longitude);
var marker = new google.maps.Marker({
position: latLng,
map: map
});
}
}
});
});
});
HTML
<article>
<section class="grid_12"></section>
</article>
答案 0 :(得分:1)
在这一行:
var map = new google.maps.Map(mapCanvas, mapOptions);
mapCanvas
未定义。它可能隐含在某些浏览器中工作,因为某些浏览器会为每个ID定义一个符号,但你真的不应该依赖它。我假设您想要在那里传递DOM元素(这就是谷歌地图想要的),所以你可以更明确地这样做:
var mapCanvas = ($("<div id='mapCanvas'></div>").appendTo('.grid_12'))[0];
var map = new google.maps.Map(mapCanvas, mapOptions);
由于您尚未提供可运行的演示,因此可能还存在其他错误。