我写了一个不使用ajax的演示只是使用固定数据来绘制使用相同的功能,它的工作原理。但在这里,我检查了mapData,map和heatmap的数据,它们与简单的演示看起来相同,但我的谷歌地图上没有出现热图。我不知道如何处理,请帮忙...
CODE SNIPPET
function buildMap(month, day) {
var mapData = new Array();
$.ajax({
type: "GET",
url: 'checkAccident.php',
data: {
"month": month,
"day": day
},
dataType: 'json',
success: function(result) {
result = eval(result);
for (var o in result) {
var lat = result[o].LATITUDE;
var lng = result[o].LONGITUDE;
var latLng = new google.maps.LatLng(lat, lng);
mapData.push(latLng);
}
},
error: function(xhr, desc, err) {
console.log(err);
}
});
//console.log(mapData);
var heatmap = new google.maps.visualization.HeatmapLayer({ //draw
data: mapData,
dissipating: false,
radius: 50,
map: map
});
}
答案 0 :(得分:0)
尝试移动此代码:
var heatmap = new google.maps.visualization.HeatmapLayer({ //draw
data: mapData,
dissipating: false,
radius: 50,
map: map
});
使用ajax请求的结果填充mapData
数组后,进入ajax成功回调。
当前设置代码的方式是,将空数组(mapData
)传递给data
选项对象的HeatmapLayer
属性。您需要在从ajax请求收到数据后设置数据(该数据不是即时完成,而是将来的某个时间)。