Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环JSON对象并打印到映射_Javascript_Json_Heatmap_Esri_Arcgis Js Api - Fatal编程技术网

Javascript 循环JSON对象并打印到映射

Javascript 循环JSON对象并打印到映射,javascript,json,heatmap,esri,arcgis-js-api,Javascript,Json,Heatmap,Esri,Arcgis Js Api,我试图循环返回的JSON对象,并根据x和y坐标绘制热图。下面是我如何设置热图的: function getHeatMap() { heatLayer = new HeatmapLayer({ config: { "useLocalMaximum": true, "radius": 40, "gradient": { 0.45: "rgb(000,000,255)", 0.55: "rgb(00

我试图循环返回的JSON对象,并根据x和y坐标绘制热图。下面是我如何设置热图的:

function getHeatMap() {
heatLayer = new HeatmapLayer({
    config: {
        "useLocalMaximum": true,
        "radius": 40,
        "gradient": {
            0.45: "rgb(000,000,255)",
            0.55: "rgb(000,255,255)",
            0.65: "rgb(000,255,000)",
            0.95: "rgb(255,255,000)",
            1.00: "rgb(255,000,000)"
        }
    },
    "map": map,
    "domNodeId": "heatLayer",
    "opacity": 0.85
});

$.ajax({
    url: "index.aspx/getBusCommuter",
    type: "POST",
    data: "",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        var parsed = JSON.parse(data.d);
        var data = [];
        $.each(parsed, function (i, jsondata) {
            var coordXicon = jsondata.BusStopX;
            var coordYicon = jsondata.BusStopY;

            data = [
                {
                    attributes: {},
                    geometry: {
                        spatialReference: { wkid: 102100 },
                        type: "point",
                        x: coordXicon,
                        y: coordYicon
                    }
                }
           ];
        });
        heatLayer.setData(data);
        map.addLayer(heatLayer);
    },
    error: function (request, state, errors) {
    }
});
}

基本上,JSON对象只会循环到最后一组JSON对象,并只绘制最后一组而不是全部。我不知道我的逻辑哪一部分是错的

提前感谢。

问题在这里:

data = [
    {
        attributes: {},
        geometry: {
            spatialReference: {
                wkid: 102100
            },
            type: "point",
            x: coordXicon,
            y: coordYicon
        }
    }
];
当您可能只想将新元素推到末尾时,您正在为每个项目设置整个数据数组(覆盖所有旧数据)。请尝试以下方法:

data.push({ ... });