0

我正在使用传单显示用户提交的点和多边形以显示多边形内提交的点的计数。

我与我们的系统分析师一起工作,他创建了一个服务,它将给我一个多边形的 json 对象。这是我到目前为止所拥有的,我可以访问数据并将其记录到控制台,但地图上没有显示任何内容

var testAreas = [];
$.getJSON("http://server/WildlifeServices/WildlifeMapStats.ashx",
    function(data){
        console.log(data);
        $.each(data.features,function(i,item){
            console.log(item.geometry.coordinates[0]);
            testAreas.push(L.MultiPolygon(item.geometry.coordinates[0]))
        });
    });
areaGroup = L.layerGroup(testAreas);
4

1 回答 1

1

$.getJSON()是异步的,这意味着脚本的执行将在调用 getJSON 之后继续执行,并且成功处理程序将在稍后加载 geoJSON 时调用。您的代码行:

areaGroup = L.layerGroup(testAreas);

在加载 JSON 之前执行。尝试将该行(以及依赖于该行的任何其他行)放入您的成功处理程序中:

var testAreas = [];
$.getJSON("http://server/WildlifeServices/WildlifeMapStats.ashx",
    function(data){
        console.log(data);
        $.each(data.features,function(i,item){
            console.log(item.geometry.coordinates[0]);
            testAreas.push(L.MultiPolygon(item.geometry.coordinates[0]))
        });
        areaGroup = L.layerGroup(testAreas);
        //additional leaflet related code here
    });
于 2013-03-27T19:59:47.217 回答