Javascript 使用AJAX在传单上重新加载热图
在第二次ajax调用后,我的热图没有重新加载,这是一个问题!确切地说,我打电话给服务器,它以与热图兼容的格式返回我想要的数据!第一次呼叫就像一个符咒,但在那之后,热图继续显示相同的数据!有人知道我做错了什么吗?这是我的js文件的代码片段Javascript 使用AJAX在传单上重新加载热图,javascript,jquery,ajax,leaflet,heatmap,Javascript,Jquery,Ajax,Leaflet,Heatmap,在第二次ajax调用后,我的热图没有重新加载,这是一个问题!确切地说,我打电话给服务器,它以与热图兼容的格式返回我想要的数据!第一次呼叫就像一个符咒,但在那之后,热图继续显示相同的数据!有人知道我做错了什么吗?这是我的js文件的代码片段 let mymap = L.map('mapid'); let osmUrl='https://tile.openstreetmap.org/{z}/{x}/{y}.png'; let osmAttrib='Map data © <
let mymap = L.map('mapid');
let osmUrl='https://tile.openstreetmap.org/{z}/{x}/{y}.png';
let osmAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
let osm = new L.TileLayer(osmUrl, {attribution: osmAttrib});
mymap.addLayer(osm);
//sintetagmenes kai zoom
mymap.setView([38.246242, 21.7350847], 12);
$(document).ready(function () {
$("#heatmap").submit(function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "getlocations.php",
dataType: 'JSON',
data: {
datefilter: $("#datefilter").val()
},
success: function (data) {
drawheatmap(data[0]);
drawpiechart(data[1]);
drawdaytable(data[2]);
drawhourtable(data[3]);
}
})
})
})
function drawheatmap(data) {
let myArray = [];
let cfg = {
// radius should be small ONLY if scaleRadius is true (or small radius is intended)
// if scaleRadius is false it will be the constant radius used in pixels
"radius": 40,
"maxOpacity": 0.8,
// scales the radius based on map zoom
"scaleRadius": false,
// if set to false the heatmap uses the global maximum for colorization
// if activated: uses the data maximum within the current map boundaries
// (there will always be a red spot with useLocalExtrema true)
"useLocalExtrema": false,
// which field name in your data represents the latitude - default "lat"
latField: 'lat',
// which field name in your data represents the longitude - default "lng"
lngField: 'lng',
// which field name in your data represents the data value - default "value"
};
$.each(data, function (i, object) {
myArray.push({"lat": object.lat, "lng": object.lng, "count": object.count})
});
var testData = {
max: 12,
data: myArray
};
let heatmapLayer = new HeatmapOverlay(cfg);
mymap.addLayer(heatmapLayer);
heatmapLayer.setData(testData);
}
让mymap=L.map('mapid');
让奥斯穆尔来吧https://tile.openstreetmap.org/{z} /{x}/{y}.png';
让osmAttrib='Map data©contributors';
设osm=newl.tillelayer(osmUrl,{归属:osmAttrib});
添加层(osm);
//辛特格米内斯酒店
mymap.setView([38.246242,21.7350847],12);
$(文档).ready(函数(){
$(“#热图”)。提交(功能(e){
e、 预防默认值();
$.ajax({
类型:“POST”,
url:“getlocations.php”,
数据类型:“JSON”,
数据:{
datefilter:$(“#datefilter”).val()
},
成功:功能(数据){
绘制热图(数据[0]);
图纸(数据[1]);
drawdaytable(数据[2]);
drawhourtable(数据[3]);
}
})
})
})
函数drawheatmap(数据){
让myArray=[];
设cfg={
//仅当scaleRadius为真(或预期为小半径)时,半径才应小
//如果scaleRadius为false,则为像素中使用的恒定半径
“半径”:40,
“最大不透明度”:0.8,
//根据地图缩放缩放半径
“scaleRadius”:错误,
//如果设置为false,热图将使用全局最大值进行着色
//如果激活:使用当前地图边界内的数据最大值
//(始终会有一个带有useLocalExtrema true的红点)
“useLocalExtrema”:false,
//数据中的哪个字段名表示纬度-默认“纬度”
拉特菲尔德:“拉特”,
//数据中的哪个字段名表示经度-默认值“lng”
lngField:“液化天然气”,
//数据中的哪个字段名表示数据值-默认值
};
$.each(数据、函数(i、对象){
push({“lat”:object.lat,“lng”:object.lng,“count”:object.count})
});
var testData={
最高:12,
数据:myArray
};
设heatmapLayer=新的HeatmapOverlay(cfg);
mymap.addLayer(heatmapLayer);
heatmapLayer.setData(testData);
}
setData函数应该根据文档重新绘制地图,但它不起作用!再次提前感谢你们所有人