Javascript 使用AJAX在传单上重新加载热图

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 © <

在第二次ajax调用后,我的热图没有重新加载,这是一个问题!确切地说,我打电话给服务器,它以与热图兼容的格式返回我想要的数据!第一次呼叫就像一个符咒,但在那之后,热图继续显示相同的数据!有人知道我做错了什么吗?这是我的js文件的代码片段

    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函数应该根据文档重新绘制地图,但它不起作用!再次提前感谢你们所有人